A wrapper for a named factory method in a named shared library. More...
#include <yarp/os/SharedLibraryFactory.h>
Public Types | |
enum | { STATUS_NONE, STATUS_OK = yarp::os::createVocab('o', 'k'), STATUS_LIBRARY_NOT_FOUND = yarp::os::createVocab('f', 'o', 'u', 'n'), STATUS_LIBRARY_NOT_LOADED = yarp::os::createVocab('l', 'o', 'a', 'd'), STATUS_FACTORY_NOT_FOUND = yarp::os::createVocab('f', 'a', 'c', 't'), STATUS_FACTORY_NOT_FUNCTIONAL = yarp::os::createVocab('r', 'u', 'n') } |
The status of a factory can be: More... | |
Public Member Functions | |
SharedLibraryFactory () | |
Constructor for unconfigured factory. More... | |
SharedLibraryFactory (const char *dll_name, const char *fn_name=nullptr) | |
Constructor. More... | |
virtual | ~SharedLibraryFactory () |
Destructor. More... | |
bool | open (const char *dll_name, const char *fn_name=nullptr) |
Configure the factory. More... | |
bool | isValid () const |
Check if factory is configured and present. More... | |
int | getStatus () const |
Get the status of the factory. More... | |
std::string | getError () const |
Get the latest error of the factory. More... | |
const SharedLibraryClassApi & | getApi () const |
Get the factory API, which has creation/deletion methods. More... | |
int | getReferenceCount () const |
Get the current reference count of this factory. More... | |
int | addRef () |
Increment the reference count of this factory. More... | |
int | removeRef () |
Decrement the reference count of this factory. More... | |
std::string | getName () const |
Get the name associated with this factory. More... | |
std::string | getClassName () const |
Get the type associated with this factory. More... | |
std::string | getBaseClassName () const |
Get the base type associated with this factory. More... | |
bool | useFactoryFunction (void *factory) |
Specify function to use as factory. More... | |
A wrapper for a named factory method in a named shared library.
This wrapper will do some basic checks that the named method does indeed behave like a YARP plugin hook before offering access to it. This is to avoid accidents, it is not a security mechanism.
Definition at line 30 of file SharedLibraryFactory.h.
anonymous enum |
The status of a factory can be:
Definition at line 42 of file SharedLibraryFactory.h.
|
explicit |
Constructor for unconfigured factory.
Definition at line 15 of file SharedLibraryFactory.cpp.
yarp::os::SharedLibraryFactory::SharedLibraryFactory | ( | const char * | dll_name, |
const char * | fn_name = nullptr |
||
) |
Constructor.
dll_name | name/path of shared library. |
fn_name | name of factory method, a symbol within the shared library. |
Definition at line 23 of file SharedLibraryFactory.cpp.
|
virtualdefault |
Destructor.
int yarp::os::SharedLibraryFactory::addRef | ( | ) |
Increment the reference count of this factory.
Definition at line 117 of file SharedLibraryFactory.cpp.
const yarp::os::SharedLibraryClassApi & yarp::os::SharedLibraryFactory::getApi | ( | ) | const |
Get the factory API, which has creation/deletion methods.
Definition at line 106 of file SharedLibraryFactory.cpp.
std::string yarp::os::SharedLibraryFactory::getBaseClassName | ( | ) | const |
Get the base type associated with this factory.
Definition at line 139 of file SharedLibraryFactory.cpp.
std::string yarp::os::SharedLibraryFactory::getClassName | ( | ) | const |
Get the type associated with this factory.
Definition at line 134 of file SharedLibraryFactory.cpp.
std::string yarp::os::SharedLibraryFactory::getError | ( | ) | const |
Get the latest error of the factory.
Definition at line 101 of file SharedLibraryFactory.cpp.
std::string yarp::os::SharedLibraryFactory::getName | ( | ) | const |
Get the name associated with this factory.
Definition at line 129 of file SharedLibraryFactory.cpp.
int yarp::os::SharedLibraryFactory::getReferenceCount | ( | ) | const |
Get the current reference count of this factory.
Definition at line 111 of file SharedLibraryFactory.cpp.
int yarp::os::SharedLibraryFactory::getStatus | ( | ) | const |
Get the status of the factory.
Definition at line 96 of file SharedLibraryFactory.cpp.
bool yarp::os::SharedLibraryFactory::isValid | ( | ) | const |
Check if factory is configured and present.
Definition at line 76 of file SharedLibraryFactory.cpp.
bool yarp::os::SharedLibraryFactory::open | ( | const char * | dll_name, |
const char * | fn_name = nullptr |
||
) |
Configure the factory.
dll_name | name/path of shared library. |
fn_name | name of factory method, a symbol within the shared library. |
Definition at line 34 of file SharedLibraryFactory.cpp.
int yarp::os::SharedLibraryFactory::removeRef | ( | ) |
Decrement the reference count of this factory.
Definition at line 123 of file SharedLibraryFactory.cpp.
bool yarp::os::SharedLibraryFactory::useFactoryFunction | ( | void * | factory | ) |
Specify function to use as factory.
factory | function to use as factory. |
Definition at line 144 of file SharedLibraryFactory.cpp.