FOX/ObjCryst++
1.10.X (development)
|
Object Registry. More...
Public Member Functions | |
ObjRegistry (const string &name) | |
void | Register (T &obj) |
Register a new object. Already registered objects are skipped. | |
void | DeRegister (T &obj) |
De-register an object. | |
void | DeRegister (const string &objName) |
De-register an object from its name. | |
void | DeRegisterAll () |
De-register all objects from the list. | |
void | DeleteAll () |
Delete all objects in the registry.. Use with caution !! | |
T & | GetObj (const unsigned int i) |
Get object #i in the registry. More... | |
const T & | GetObj (const unsigned int i) const |
Get object #i in the registry. More... | |
T & | GetObj (const string &objName) |
Get an object from its name in the registry. More... | |
const T & | GetObj (const string &objName) const |
Get an object from its name in the registry. More... | |
T & | GetObj (const string &objName, const string &className) |
Get an object from its name in the registry. More... | |
const T & | GetObj (const string &objName, const string &className) const |
Get an object from its name in the registry. More... | |
long | GetNb () const |
Get the index of an object in the registry, from its name Warning: it can change if an object is removed from the registry. | |
void | Print () const |
void | SetName (const string &) |
const string & | GetName () const |
long | Find (const string &objName) const |
Find the number of an object in the registry from its name (slow !) The search starts at the end of the registry. More... | |
long | Find (const string &objName, const string &className, const bool nothrow=false) const |
Find the number of an object in the registry from its name (slow !) The search starts at the end of the registry. More... | |
long | Find (const T &obj) const |
Find the number of an object in the registry The search starts at the end of the registry. More... | |
long | Find (const T *pobj) const |
Find the number of an object in the registry The search starts at the end of the registry. More... | |
const RefinableObjClock & | GetRegistryClock () const |
Last time an object was added or removed from the registry. | |
void | AutoUpdateUI (const bool autoup=true) |
Enable the UI automatic update, so that objects in the registry are automatically added to the UI. | |
void | UpdateUI () |
Manually update the UI, making sure all objects in the registry are displayed This is useful when the automatic adding of objects has been disabled. | |
Private Attributes | |
vector< T * > | mvpRegistry |
The registry of objects. | |
string | mName |
Name of this registry. | |
RefinableObjClock | mListClock |
Last time an object was added or removed. | |
bool | mAutoUpdateUI |
Enable the user interface update. More... | |
Object Registry.
This class is used to keep a list of all object of a given class at the global level, or inside another object. This is primarily aimed for the derivative of the RefinableObj class but it can be used for any class that has GetName() and GetClassName() function. This class now uses a vector<> approach from the STL.
Definition at line 643 of file RefinableObj.h.
long ObjCryst::ObjRegistry< T >::Find | ( | const string & | objName | ) | const |
Find the number of an object in the registry from its name (slow !) The search starts at the end of the registry.
Definition at line 1035 of file RefinableObj.cpp.
long ObjCryst::ObjRegistry< T >::Find | ( | const string & | objName, |
const string & | className, | ||
const bool | nothrow = false |
||
) | const |
Find the number of an object in the registry from its name (slow !) The search starts at the end of the registry.
Also check the class of the object (inheritance...). use nothrow=true to avoid having an exception thrown if no object is found (instead the index returned will be -1)
Definition at line 1057 of file RefinableObj.cpp.
long ObjCryst::ObjRegistry< T >::Find | ( | const T & | obj | ) | const |
Find the number of an object in the registry The search starts at the end of the registry.
Definition at line 1083 of file RefinableObj.cpp.
long ObjCryst::ObjRegistry< T >::Find | ( | const T * | pobj | ) | const |
Find the number of an object in the registry The search starts at the end of the registry.
Definition at line 1092 of file RefinableObj.cpp.
T & ObjCryst::ObjRegistry< T >::GetObj | ( | const unsigned int | i | ) |
Get object #i in the registry.
Use with caution. The order of the objects changes as objects are added and removed.
Definition at line 984 of file RefinableObj.cpp.
const T & ObjCryst::ObjRegistry< T >::GetObj | ( | const unsigned int | i | ) | const |
Get object #i in the registry.
Use with caution. The order of the objects changes as objects are added and removed.
Definition at line 989 of file RefinableObj.cpp.
T & ObjCryst::ObjRegistry< T >::GetObj | ( | const string & | objName | ) |
Get an object from its name in the registry.
The search starts at the end of the registry.
Definition at line 994 of file RefinableObj.cpp.
const T & ObjCryst::ObjRegistry< T >::GetObj | ( | const string & | objName | ) | const |
Get an object from its name in the registry.
The search starts at the end of the registry.
Definition at line 1000 of file RefinableObj.cpp.
T & ObjCryst::ObjRegistry< T >::GetObj | ( | const string & | objName, |
const string & | className | ||
) |
Get an object from its name in the registry.
The search starts at the end of the registry. Also check the class of the object.
Definition at line 1006 of file RefinableObj.cpp.
const T & ObjCryst::ObjRegistry< T >::GetObj | ( | const string & | objName, |
const string & | className | ||
) | const |
Get an object from its name in the registry.
The search starts at the end of the registry. Also check the class of the object.
Definition at line 1013 of file RefinableObj.cpp.
|
private |
Enable the user interface update.
If true, any time an object is added, it will be added to the user interface (wx...). If objects have not been added to the user interface, this can be done asynchronously using UpdateUI() which will go through the list of objects and add those not yet displayed.
This does not affect the removal of objects.
Definition at line 732 of file RefinableObj.h.