ot
class ObjectManager
#include "ot/base/ObjectManager.h"
Manages the lifetime of ManagedObject instances that need to exist for the duration of the application.
OpenTop contains several classes that use global objects which can be created by application code or internally within the library. To enable these objects (and others) to be deleted at system termination, they are registered with a singleton ObjectManager which is responsible for keeping a reference to them until the process terminates.
The task of deleting objects at process termination is seldom strictly required because the underlying operating system will free any resources held by the process upon termination. However, it is sometimes useful in a development environment to help to detect memory leaks in long-running processes.
- See also:
-
System::GetObjectManager()
enum DestructionOrder { |
Normal, |
/* Destroy objects in the reverse sequence to registration */ |
|
Late} |
/* Destroy late objects after all Normal objects */ |
registerObject
void registerObject(ManagedObject* pObject,
DestructionOrder order)
-
Registers an instance of ManagedObject with this ObjectManager.
The ObjectManager adds a reference to the passed object to its collection of object references. In so doing, the reference count of the passed object is incremented to prevent it from being destroyed until system termination or until the object is removed by calling unregisterObject().
- Parameters:
pObject -
pointer to a ManagedObject whose lifetime needs to be managed by the ObjectManager
order -
an enum specifying the destruction order during system termination.
- See also:
-
unregisterObject()
unregisterObject
void unregisterObject(ManagedObject* pObject)
-
Removes the reference to pObject from the managed collection of object references.
It is not an error if the object designated by pObject does not exist in the managed collection.
- Parameters:
pObject -
pointer to a ManagedObject which will be removed from the managed collection of object references
Found a bug or missing feature? Please email us at support@elcel.com