|
|
A reference counted object. Whenever using multiple inheritance you should inherit this class virtually.
| RefObject ()
| RefObject |
The constructor initializes the reference counter to 1! Use deref() to destruct the object when safe
| ~RefObject ()
| ~RefObject |
[virtual]
Destructor.
| void* getObject (const String& name)
| getObject |
[const virtual]
Get a pointer to a derived class given that class name
Parameters:
| name | Name of the class we are asking for |
Returns: Pointer to the requested class or NULL if this object doesn't implement it
Reimplemented from GenObject.
| bool alive ()
| alive |
[const virtual]
Check if the object is still referenced and safe to access. Note that you should not trust this result unless the object is locked by other means.
Returns: True if the object is referenced and safe to access
Reimplemented from GenObject.
| bool ref ()
| ref |
Increments the reference counter if not already zero
Returns: True if the object was successfully referenced and is safe to access
| bool deref ()
| deref |
Decrements the reference counter, destroys the object if it reaches zero
// Deref this object, return quickly if the object was deleted if (deref()) return; |
Returns: True if the object may have been deleted, false if it still exists and is safe to access
| inline int refcount ()
| refcount |
[const]
Get the current value of the reference counter
Returns: The value of the reference counter
| void destruct ()
| destruct |
[virtual]
Refcounted objects should just have the counter decremented. That will destroy them only when the refcount reaches zero.
Reimplemented from GenObject.
| bool efficientIncDec ()
| efficientIncDec |
[static]
Check if reference counter manipulations are efficient on this platform. If platform does not support atomic operations a mutex pool is used.
Returns: True if refcount uses atomic integer operations
| void zeroRefs ()
| zeroRefs |
[protected virtual]
This method is called when the reference count reaches zero after unlocking the mutex if the call to zeroRefsTest() returned true. The default behaviour is to delete the object.
| bool resurrect ()
| resurrect |
[protected]
Bring the object back alive by setting the reference counter to one. Note that it works only if the counter was zero previously
Returns: True if the object was resurrected - its name may be Lazarus ;-)
| void destroyed ()
| destroyed |
[protected virtual]
Pre-destruction notification, called just before the object is deleted. Unlike in the destructor it is safe to call virtual methods here. Reimplementing this method allows to perform any object cleanups.
| Generated by: paulc on bussard on Fri May 8 12:37:22 2015, using kdoc 2.0a54. |