Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
BT::SharedLibrary Class Reference

#include <shared_library.h>

List of all members.

Public Types

enum  Flags { SHLIB_GLOBAL = 1, SHLIB_LOCAL = 2 }

Public Member Functions

const std::string & getPath () const
void * getSymbol (const std::string &name)
bool hasSymbol (const std::string &name)
 Returns true iff a library has been loaded.
bool isLoaded () const
 Unloads a shared library.
void load (const std::string &path, int flags=0)
 SharedLibrary ()
 SharedLibrary (const std::string &path, int flags=0)
 Creates a SharedLibrary object.
void unload ()
virtual ~SharedLibrary ()

Static Public Member Functions

static std::string getOSName (const std::string &name)
static std::string prefix ()
static std::string suffix ()

Private Member Functions

void * findSymbol (const std::string &name)
SharedLibraryoperator= (const SharedLibrary &)
 SharedLibrary (const SharedLibrary &)

Private Attributes

void * _handle
std::mutex _mutex
std::string _path

Detailed Description

The SharedLibrary class dynamically loads shared libraries at run-time.

Definition at line 47 of file shared_library.h.


Member Enumeration Documentation

Enumerator:
SHLIB_GLOBAL 
SHLIB_LOCAL 

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().

Definition at line 52 of file shared_library.h.


Constructor & Destructor Documentation

Definition at line 8 of file shared_library_UNIX.cpp.

BT::SharedLibrary::SharedLibrary ( const std::string &  path,
int  flags = 0 
)

Creates a SharedLibrary object.

Definition at line 3 of file shared_library.cpp.

virtual BT::SharedLibrary::~SharedLibrary ( ) [virtual]

Creates a SharedLibrary object and loads a library from the given path, using the given flags. See the Flags enumeration for valid values.

Returns the platform-specific filename for shared libraries by prefixing and suffixing name with prefix() and suffix()


Member Function Documentation

void * BT::SharedLibrary::findSymbol ( const std::string &  name) [private]

Definition at line 47 of file shared_library_UNIX.cpp.

std::string BT::SharedLibrary::getOSName ( const std::string &  name) [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 22 of file shared_library.cpp.

const std::string & BT::SharedLibrary::getPath ( ) const

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 59 of file shared_library_UNIX.cpp.

void * BT::SharedLibrary::getSymbol ( const std::string &  name)

Returns true iff the loaded library contains a symbol with the given name.

Definition at line 8 of file shared_library.cpp.

bool BT::SharedLibrary::hasSymbol ( const std::string &  name)

Returns true iff a library has been loaded.

Definition at line 17 of file shared_library.cpp.

Unloads a shared library.

Definition at line 42 of file shared_library_UNIX.cpp.

void BT::SharedLibrary::load ( const std::string &  path,
int  flags = 0 
)

Destroys the SharedLibrary. The actual library remains loaded.

Definition at line 13 of file shared_library_UNIX.cpp.

SharedLibrary& BT::SharedLibrary::operator= ( const SharedLibrary ) [private]
std::string BT::SharedLibrary::prefix ( ) [static]

Returns the path of the library, as specified in a call to load() or the constructor.

Definition at line 64 of file shared_library_UNIX.cpp.

std::string BT::SharedLibrary::suffix ( ) [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 73 of file shared_library_UNIX.cpp.

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 31 of file shared_library_UNIX.cpp.


Member Data Documentation

void* BT::SharedLibrary::_handle [private]

Definition at line 137 of file shared_library.h.

std::mutex BT::SharedLibrary::_mutex [private]

Definition at line 138 of file shared_library.h.

std::string BT::SharedLibrary::_path [private]

Definition at line 136 of file shared_library.h.


The documentation for this class was generated from the following files:


behaviortree_cpp
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Sat Feb 2 2019 03:50:10