#include <shared_library.h>
|
static std::string | getOSName (const std::string &name) |
|
static std::string | prefix () |
|
static std::string | suffix () |
|
The SharedLibrary class dynamically loads shared libraries at run-time.
Definition at line 47 of file shared_library.h.
◆ Flags
Enumerator |
---|
SHLIB_GLOBAL | On platforms that use dlopen(), use RTLD_GLOBAL. This is the default if no flags are given.
This flag is ignored on platforms that do not use dlopen().
|
SHLIB_LOCAL | On platforms that use dlopen(), use RTLD_LOCAL instead of RTLD_GLOBAL. Note that if this flag is specified, RTTI (including dynamic_cast and throw) will
not work for types defined in the shared library with GCC and possibly other
compilers as well. See http://gcc.gnu.org/faq.html#dso for more information.
This flag is ignored on platforms that do not use dlopen().
|
Definition at line 52 of file shared_library.h.
◆ SharedLibrary() [1/3]
BT::SharedLibrary::SharedLibrary |
( |
| ) |
|
◆ SharedLibrary() [2/3]
BT::SharedLibrary::SharedLibrary |
( |
const std::string & |
path, |
|
|
int |
flags = 0 |
|
) |
| |
Creates a SharedLibrary object and loads a library from the given path, using the given flags. See the Flags enumeration for valid values.
Definition at line 4 of file shared_library.cpp.
◆ ~SharedLibrary()
virtual BT::SharedLibrary::~SharedLibrary |
( |
| ) |
|
|
virtualdefault |
◆ SharedLibrary() [3/3]
◆ findSymbol()
void * BT::SharedLibrary::findSymbol |
( |
const std::string & |
name | ) |
|
|
private |
◆ getOSName()
std::string BT::SharedLibrary::getOSName |
( |
const std::string & |
name | ) |
|
|
static |
◆ getPath()
const std::string & BT::SharedLibrary::getPath |
( |
| ) |
const |
◆ getSymbol()
void * BT::SharedLibrary::getSymbol |
( |
const std::string & |
name | ) |
|
Returns the address of the symbol with the given name. For functions, this is the entry point of the function. Throws a NotFoundException if the symbol does not exist.
Definition at line 9 of file shared_library.cpp.
◆ hasSymbol()
bool BT::SharedLibrary::hasSymbol |
( |
const std::string & |
name | ) |
|
Returns true iff the loaded library contains a symbol with the given name.
Definition at line 18 of file shared_library.cpp.
◆ isLoaded()
bool BT::SharedLibrary::isLoaded |
( |
| ) |
const |
◆ load()
void BT::SharedLibrary::load |
( |
const std::string & |
path, |
|
|
int |
flags = 0 |
|
) |
| |
Loads a shared library from the given path, using the given flags. See the Flags enumeration for valid values. Throws a LibraryAlreadyLoadedException if a library has already been loaded. Throws a LibraryLoadException if the library cannot be loaded.
Definition at line 14 of file shared_library_UNIX.cpp.
◆ operator=()
◆ prefix()
std::string BT::SharedLibrary::prefix |
( |
| ) |
|
|
static |
Returns the platform-specific filename prefix for shared libraries. Most platforms would return "lib" as prefix, while on Cygwin, the "cyg" prefix will be returned.
Definition at line 65 of file shared_library_UNIX.cpp.
◆ suffix()
std::string BT::SharedLibrary::suffix |
( |
| ) |
|
|
static |
Returns the platform-specific filename suffix for shared libraries (including the period). In debug mode, the suffix also includes a "d" to specify the debug version of a library.
Definition at line 74 of file shared_library_UNIX.cpp.
◆ unload()
void BT::SharedLibrary::unload |
( |
| ) |
|
◆ _handle
void* BT::SharedLibrary::_handle = nullptr |
|
private |
◆ _mutex
◆ _path
std::string BT::SharedLibrary::_path |
|
private |
The documentation for this class was generated from the following files: