#include <ObjectFactory.h>
Classes | |
class | ClassEntry |
Record storing information about a class. More... | |
class | Creator |
Abstract interface of objects used to create instances of a given type. More... | |
Protected Attributes | |
ClassEntryMap | registry |
Main class registry. More... | |
OnCreateCallback | m_callbackOnCreate |
RegisteredPluginSet | m_registeredPluginSet |
Public Member Functions | |
~ObjectFactory () | |
ClassEntry & | getEntry (std::string classname) |
Get an entry given a class name (or alias) More... | |
bool | hasCreator (std::string classname) |
Test if a creator exists for a given classname. More... | |
std::string | shortName (std::string classname) |
void | getAllEntries (std::vector< ClassEntry::SPtr > &result, bool filterUnloadedPlugins=true) |
Fill the given vector with all the registered classes. More... | |
void | getEntriesFromTarget (std::vector< ClassEntry::SPtr > &result, std::string target) |
Fill the given vector with the registered classes from a given target. More... | |
std::string | listClassesFromTarget (std::string target, std::string separator=", ") |
Return the list of classes from a given target. More... | |
template<class BaseClass > | |
void | getEntriesDerivedFrom (std::vector< ClassEntry::SPtr > &result) const |
Fill the given vector with all the registered classes derived from BaseClass. More... | |
template<class BaseClass > | |
std::string | listClassesDerivedFrom (const std::string &separator=", ") const |
Return the list of classes derived from BaseClass as a string. More... | |
bool | addAlias (std::string name, std::string target, bool force=false, ClassEntry::SPtr *previous=nullptr) |
void | resetAlias (std::string name, ClassEntry::SPtr previous) |
objectmodel::BaseObject::SPtr | createObject (objectmodel::BaseContext *context, objectmodel::BaseObjectDescription *arg) |
Create an object given a context and a description. More... | |
void | dump (std::ostream &out=std::cout) |
Dump the content of the factory to a text stream. More... | |
void | dumpXML (std::ostream &out=std::cout) |
Dump the content of the factory to a XML stream. More... | |
void | dumpHTML (std::ostream &out=std::cout) |
Dump the content of the factory to a HTML stream. More... | |
void | setCallback (OnCreateCallback cb) |
bool | registerObjectsFromPlugin (const std::string &pluginName) |
bool | registerObjects (ObjectRegistrationData &ro) |
Static Public Member Functions | |
static ObjectFactory * | getInstance () |
Get the ObjectFactory singleton instance. More... | |
static objectmodel::BaseObject::SPtr | CreateObject (objectmodel::BaseContext *context, objectmodel::BaseObjectDescription *arg) |
Create an object given a context and a description. More... | |
static bool | AddAlias (std::string name, std::string result, bool force=false, ClassEntry::SPtr *previous=nullptr) |
static void | ResetAlias (std::string name, ClassEntry::SPtr previous) |
static bool | HasCreator (std::string classname) |
Test if a creator exists for a given classname. More... | |
static std::string | ShortName (std::string classname) |
|
protected |
|
protected |
|
protected |
Main class registry.
sofa::core::ObjectFactory::~ObjectFactory | ( | ) |
|
inlinestatic |
Add an alias name for an already registered class
name | name of the new alias |
target | class pointed to by the new alias |
force | set to true if this method should override any entry already registered for this name |
previous | (output) previous ClassEntry registered for this name |
bool sofa::core::ObjectFactory::addAlias | ( | std::string | name, |
std::string | target, | ||
bool | force = false , |
||
ClassEntry::SPtr * | previous = nullptr |
||
) |
Add an alias name for an already registered class
name | name of the new alias |
target | class pointed to by the new alias |
force | set to true if this method should override any entry already registered for this name |
previous | (output) previous ClassEntry registered for this name |
objectmodel::BaseObject::SPtr sofa::core::ObjectFactory::createObject | ( | objectmodel::BaseContext * | context, |
objectmodel::BaseObjectDescription * | arg | ||
) |
Create an object given a context and a description.
|
inlinestatic |
Create an object given a context and a description.
void sofa::core::ObjectFactory::dump | ( | std::ostream & | out = std::cout | ) |
Dump the content of the factory to a text stream.
void sofa::core::ObjectFactory::dumpHTML | ( | std::ostream & | out = std::cout | ) |
Dump the content of the factory to a HTML stream.
void sofa::core::ObjectFactory::dumpXML | ( | std::ostream & | out = std::cout | ) |
Dump the content of the factory to a XML stream.
void sofa::core::ObjectFactory::getAllEntries | ( | std::vector< ClassEntry::SPtr > & | result, |
bool | filterUnloadedPlugins = true |
||
) |
Fill the given vector with all the registered classes.
void sofa::core::ObjectFactory::getEntriesDerivedFrom | ( | std::vector< ClassEntry::SPtr > & | result | ) | const |
Fill the given vector with all the registered classes derived from BaseClass.
void sofa::core::ObjectFactory::getEntriesFromTarget | ( | std::vector< ClassEntry::SPtr > & | result, |
std::string | target | ||
) |
Fill the given vector with the registered classes from a given target.
ObjectFactory::ClassEntry & sofa::core::ObjectFactory::getEntry | ( | std::string | classname | ) |
Get an entry given a class name (or alias)
|
static |
Get the ObjectFactory singleton instance.
bool sofa::core::ObjectFactory::hasCreator | ( | std::string | classname | ) |
Test if a creator exists for a given classname.
|
inlinestatic |
Test if a creator exists for a given classname.
std::string sofa::core::ObjectFactory::listClassesDerivedFrom | ( | const std::string & | separator = ", " | ) | const |
Return the list of classes derived from BaseClass as a string.
std::string sofa::core::ObjectFactory::listClassesFromTarget | ( | std::string | target, |
std::string | separator = ", " |
||
) |
Return the list of classes from a given target.
bool sofa::core::ObjectFactory::registerObjects | ( | ObjectRegistrationData & | ro | ) |
bool sofa::core::ObjectFactory::registerObjectsFromPlugin | ( | const std::string & | pluginName | ) |
void sofa::core::ObjectFactory::resetAlias | ( | std::string | name, |
ClassEntry::SPtr | previous | ||
) |
Reset an alias to a previous state
name | name of the new alias |
previous | previous ClassEntry that need to be registered back for this name |
|
inlinestatic |
Reset an alias to a previous state
name | name of the new alias |
previous | previous ClassEntry that need to be registered back for this name |
|
inline |
std::string sofa::core::ObjectFactory::shortName | ( | std::string | classname | ) |
Return the shortname for this classname. Empty string if no creator exists for this classname.
|
inlinestatic |