Ring Daemon
16.0.0
Loading...
Searching...
No Matches
pluginloader.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2004-2025 Savoir-faire Linux Inc.
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <https://www.gnu.org/licenses/>.
16
*/
17
18
#include "
pluginloader.h
"
19
20
namespace
jami
{
21
22
Plugin*
23
Plugin::load
(
const
std::string& path, std::string& error)
24
{
25
if
(path.empty()) {
26
error =
"Empty path"
;
27
return
nullptr
;
28
}
29
30
// Clear any existing error
31
::dlerror
();
32
33
void
* handle =
::dlopen
(path.c_str(),
RTLD_NOW
);
34
if
(!handle) {
35
error +=
"Failed to load \""
+ path +
'"'
;
36
37
std::string
dlError
=
::dlerror
();
38
if
(
dlError
.size())
39
error +=
" ("
+
dlError
+
")"
;
40
return
nullptr
;
41
}
42
43
return
new
DLPlugin
(handle, path);
44
}
45
}
// namespace jami
jami::DLPlugin
This class is used after a plugin library is successfully loaded.
Definition
pluginloader.h:60
jami::Plugin::load
static Plugin * load(const std::string &path, std::string &error)
Load plugin's library.
Definition
pluginloader.cpp:23
jami
Definition
account.cpp:61
jami::emitSignal
void emitSignal(Args... args)
Definition
ring_signal.h:64
pluginloader.h
src
plugin
pluginloader.cpp
Generated on Thu Jun 19 2025 15:50:37 for Ring Daemon by
1.9.8