YARP
Yet Another Robot Platform
yarp::os::SharedLibraryFactory Class Reference

A wrapper for a named factory method in a named shared library. More...

#include <yarp/os/SharedLibraryFactory.h>

+ Inheritance diagram for yarp::os::SharedLibraryFactory:

Public Types

enum  {
  STATUS_NONE ,
  STATUS_OK = yarp::os::createVocab32('o', 'k') ,
  STATUS_LIBRARY_NOT_FOUND = yarp::os::createVocab32('f', 'o', 'u', 'n') ,
  STATUS_LIBRARY_NOT_LOADED = yarp::os::createVocab32('l', 'o', 'a', 'd') ,
  STATUS_FACTORY_NOT_FOUND = yarp::os::createVocab32('f', 'a', 'c', 't') ,
  STATUS_FACTORY_NOT_FUNCTIONAL = yarp::os::createVocab32('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 SharedLibraryClassApigetApi () 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...
 

Detailed Description

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 26 of file SharedLibraryFactory.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

The status of a factory can be:

  • STATUS_NONE: Not configured yet
  • STATUS_OK: Present and sane
  • STATUS_LIBRARY_NOT_FOUND: Named shared library was not found
  • STATUS_LIBRARY_NOT_LOADED: Named shared library failed to load
  • STATUS_FACTORY_NOT_FOUND: Named method wasn't present in library
  • STATUS_FACTORY_NOT_FUNCTIONAL: Named method is not working right
Enumerator
STATUS_NONE 

Not configured yet.

STATUS_OK 

Present and sane.

STATUS_LIBRARY_NOT_FOUND 

Named shared library was not found.

STATUS_LIBRARY_NOT_LOADED 

Named shared library failed to load.

STATUS_FACTORY_NOT_FOUND 

Named method wasn't present in library.

STATUS_FACTORY_NOT_FUNCTIONAL 

Named method is not working right.

Definition at line 38 of file SharedLibraryFactory.h.

Constructor & Destructor Documentation

◆ SharedLibraryFactory() [1/2]

yarp::os::SharedLibraryFactory::SharedLibraryFactory ( )
explicit

Constructor for unconfigured factory.

Definition at line 12 of file SharedLibraryFactory.cpp.

◆ SharedLibraryFactory() [2/2]

yarp::os::SharedLibraryFactory::SharedLibraryFactory ( const char *  dll_name,
const char *  fn_name = nullptr 
)

Constructor.

Parameters
dll_namename/path of shared library.
fn_namename of factory method, a symbol within the shared library.

Definition at line 20 of file SharedLibraryFactory.cpp.

◆ ~SharedLibraryFactory()

yarp::os::SharedLibraryFactory::~SharedLibraryFactory ( )
virtualdefault

Destructor.

Member Function Documentation

◆ addRef()

int yarp::os::SharedLibraryFactory::addRef ( )

Increment the reference count of this factory.

Returns
the current reference count of this factory, after increment.

Definition at line 114 of file SharedLibraryFactory.cpp.

◆ getApi()

const yarp::os::SharedLibraryClassApi & yarp::os::SharedLibraryFactory::getApi ( ) const

Get the factory API, which has creation/deletion methods.

Returns
the factory API

Definition at line 103 of file SharedLibraryFactory.cpp.

◆ getBaseClassName()

std::string yarp::os::SharedLibraryFactory::getBaseClassName ( ) const

Get the base type associated with this factory.

Returns
the base type associated with this factory.

Definition at line 136 of file SharedLibraryFactory.cpp.

◆ getClassName()

std::string yarp::os::SharedLibraryFactory::getClassName ( ) const

Get the type associated with this factory.

Returns
the type associated with this factory.

Definition at line 131 of file SharedLibraryFactory.cpp.

◆ getError()

std::string yarp::os::SharedLibraryFactory::getError ( ) const

Get the latest error of the factory.

Returns
the latest error.

Definition at line 98 of file SharedLibraryFactory.cpp.

◆ getName()

std::string yarp::os::SharedLibraryFactory::getName ( ) const

Get the name associated with this factory.

Returns
the name associated with this factory.

Definition at line 126 of file SharedLibraryFactory.cpp.

◆ getReferenceCount()

int yarp::os::SharedLibraryFactory::getReferenceCount ( ) const

Get the current reference count of this factory.

Returns
the current reference count of this factory.

Definition at line 108 of file SharedLibraryFactory.cpp.

◆ getStatus()

int yarp::os::SharedLibraryFactory::getStatus ( ) const

Get the status of the factory.

Returns
one of the SharedLibraryFactory::STATUS_* codes.

Definition at line 93 of file SharedLibraryFactory.cpp.

◆ isValid()

bool yarp::os::SharedLibraryFactory::isValid ( ) const

Check if factory is configured and present.

Returns
true iff factory is good to go.

Definition at line 73 of file SharedLibraryFactory.cpp.

◆ open()

bool yarp::os::SharedLibraryFactory::open ( const char *  dll_name,
const char *  fn_name = nullptr 
)

Configure the factory.

Parameters
dll_namename/path of shared library.
fn_namename of factory method, a symbol within the shared library.
Returns
true on success.

Definition at line 31 of file SharedLibraryFactory.cpp.

◆ removeRef()

int yarp::os::SharedLibraryFactory::removeRef ( )

Decrement the reference count of this factory.

Returns
the current reference count of this factory, after decrement.

Definition at line 120 of file SharedLibraryFactory.cpp.

◆ useFactoryFunction()

bool yarp::os::SharedLibraryFactory::useFactoryFunction ( void *  factory)

Specify function to use as factory.

Parameters
factoryfunction to use as factory.
Returns
true on success.

Definition at line 141 of file SharedLibraryFactory.cpp.


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