#include <CAccessorFactoryContainer.h>
Public Types | |
typedef map< string, CContentElement > | CContent |
Typedef: The content is a map of string to content element In this map is noted, which accessors are open for the collection with the given ID. | |
Public Member Functions | |
CAccessorFactoryContainer () | |
construct this. | |
void | configure (CXMLElement *inConfigurationData) |
configure this | |
~CAccessorFactoryContainer () | |
The destructor destroys the CContentElements properly. | |
void | registerFactory (CAccessorFactory *inFactory, string inName) |
adding a factory to the content | |
CAccessor * | openAccessor (string inName, const CXMLElement &inCollectionElement) |
opening an accessor: if the accessor is already constructed, then simply give the pointer, otherwhise construct a new one using the appropriate factory | |
void | closeAccessor (string inName) |
closing an accessor. | |
bool | isPresentFactory (string inName) const |
Is a given factory present in the factory? Useful for building in order to avoid double registration and double dynamic linking. | |
Protected Attributes | |
CContent | mContent |
the content | |
Classes | |
class | CContentElement |
The use of this is to have an open-close-counter for all the factories which have been registered in this
New elements are only constructed if necessary.
CAccessorFactoryContainer::CAccessorFactoryContainer | ( | ) |
construct this.
In the case of static linking, this means the construction of factorys for all accessors.
void CAccessorFactoryContainer::configure | ( | CXMLElement * | inConfigurationData | ) |
configure this
In the case of dynamic linking we will scan libdir for plugins
CAccessor* CAccessorFactoryContainer::openAccessor | ( | string | inName, | |
const CXMLElement & | inCollectionElement | |||
) |
opening an accessor: if the accessor is already constructed, then simply give the pointer, otherwhise construct a new one using the appropriate factory
name | of the accessor to be created | |
inConfigurationData | the configuration data of the CXMLElement to be created |
void CAccessorFactoryContainer::closeAccessor | ( | string | inName | ) |
closing an accessor.
If there have been as many openAccessor as closeAccessor calls, the accessor will be delete-d.