ML Reference
|
RefCountedBase class adds intrusive reference counting support to the Base class. More...
#include <mlRefCountedBase.h>
Public Member Functions | |
RefCountedBase () | |
Constructor. More... | |
RefCountedBase (const RefCountedBase &) | |
Explicit copy constructor. More... | |
virtual void | incRefCount () const |
Increases the reference count. More... | |
virtual void | decRefCount () const |
Decreases the reference count (object will be deleted if the reference count is decremented to 0). More... | |
bool | isRefCountedBase () const override |
Returns whether the instance is derived from RefCountedBase. More... | |
![]() | |
EventSource () | |
EventSource (const EventSource &evSource) | |
~EventSource () override | |
void | addEventListener (BaseEventCallback *cb, void *userData) |
Adds event listener callback to this Base object. More... | |
void | removeEventListener (BaseEventCallback *cb, void *userData) |
Removes event listener callback from this Base object. More... | |
bool | hasEventListeners () const |
Checks whether any event listeners have been added to this Base object; this can be used to skip the sendEvent call and the potentially expensive building of the event object altogether. More... | |
![]() | |
Base () | |
Constructor. More... | |
virtual | ~Base () |
Destructor. More... | |
virtual Base * | deepCopy () const |
Creates a deep copy of the given object. More... | |
bool | isOfAllowedType (const std::vector< const RuntimeType * > &types) const |
Checks whether this object's type is equal to or derived from one of the types given in the argument. More... | |
virtual std::string | detailString () const |
Returns a string describing this object. More... | |
virtual bool | implementsPersistence (PersistenceInterface) const |
Override this method to declare which persistence interfaces are implemented by your derived class. More... | |
virtual std::string | persistentState () const |
Returns a string describing the object's internal state. More... | |
virtual void | setPersistentState (const std::string &state) |
Restores the object's internal state from a string that had been previously generated using persistentState(). More... | |
virtual void | addStateToTree (TreeNode *) const |
Attaches the object state as children of the given parent node. More... | |
virtual void | readStateFromTree (TreeNode *) |
Reads the object state from the children of the given parent node. More... | |
virtual void | writeTo (AbstractPersistenceOutputStream *) const |
Writes the objects state to the data stream object. More... | |
virtual void | readFrom (AbstractPersistenceInputStream *, int) |
Reads the objects state from the data stream object. More... | |
Static Public Member Functions | |
static void | updateReferenceCountingIfSupported (Base *oldValue, Base *newValue, bool &isRefCountedBase) |
Helper method that handles incrementing/decrementing of the reference count if base instances support it. More... | |
Protected Member Functions | |
~RefCountedBase () override | |
Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h. More... | |
![]() | |
void | sendEvent (BaseEvent *event, void *skipListener=nullptr) |
Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h. More... | |
Protected Attributes | |
std::atomic_int_least32_t | _refCount |
Reference count. More... | |
Additional Inherited Members | |
![]() | |
enum | PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream } |
This enum describes the different persistence interfaces available. More... | |
RefCountedBase class adds intrusive reference counting support to the Base class.
It should be used together with boost::intrusive_ptr and the ML_REFCOUNTED_PTR macro.
Definition at line 30 of file mlRefCountedBase.h.
ml::RefCountedBase::RefCountedBase | ( | ) |
Constructor.
ml::RefCountedBase::RefCountedBase | ( | const RefCountedBase & | ) |
Explicit copy constructor.
|
overrideprotected |
Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h.
Destructor.
|
virtual |
Decreases the reference count (object will be deleted if the reference count is decremented to 0).
|
virtual |
Increases the reference count.
|
inlineoverridevirtual |
Returns whether the instance is derived from RefCountedBase.
Reimplemented from ml::Base.
Definition at line 46 of file mlRefCountedBase.h.
|
static |
Helper method that handles incrementing/decrementing of the reference count if base instances support it.
It decrements the reference count of oldValue if supported and not NULL. It increments the reference count of newValue if supported and not NULL. isRefCountedBase
must indicate whether oldValue
supported reference counting. isRefCountedBase
will be set to true
if the newValue
supports reference counting.
|
mutableprotected |
Reference count.
Definition at line 64 of file mlRefCountedBase.h.