ML Reference
|
EventSourceBase class adds event listener handling to Base. More...
#include <mlEventSource.h>
Public Member Functions | |
EventSource () | |
EventSource (const EventSource &evSource) | |
~EventSource () override | |
void | addEventListener (BaseEventCallback *cb, void *userData) |
add event listener callback to this Base object - the userData will be the first argument when the callback is called | |
void | removeEventListener (BaseEventCallback *cb, void *userData) |
remove event listener callback from this Base object - arguments must be the same as for the addEventListener call | |
bool | hasEventListeners () const |
check if 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 | |
Public Member Functions inherited from ml::Base | |
Base () | |
Constructor. | |
virtual | ~Base () |
Destructor. | |
virtual Base * | deepCopy () const |
Set addStateToTree version number that can be accessed via getAddStateVersion() | |
bool | isOfAllowedType (const std::vector< const RuntimeType * > &types) const |
Check if this object's type is equal to or derived from one of the types given in the argument. | |
virtual bool | isRefCountedBase () const |
Returns if the instance is derived from RefCountedBase. | |
virtual std::string | detailString () const |
Return a string describing this object. | |
virtual bool | implementsPersistence (PersistenceInterface) const |
Override this method to declare which persistence interfaces are implemented by your derived class. | |
virtual std::string | persistentState () const |
Returns a string describing the object's internal state. | |
virtual void | setPersistentState (const std::string &state) |
Restores the object's internal state from a string that had been previously generated using persistentState() . | |
virtual void | addStateToTree (TreeNode *) const |
Attaches the object state as children of the given parent node. | |
virtual void | readStateFromTree (TreeNode *) |
Reads the object state from the children of the given parent node. | |
virtual void | writeTo (AbstractPersistenceOutputStream *) const |
Write the objects state to the data stream object. | |
virtual void | readFrom (AbstractPersistenceInputStream *, int) |
Read the objects state from the data stream object. | |
Protected Member Functions | |
void | sendEvent (BaseEvent *event, void *skipListener=nullptr) |
Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h. | |
Additional Inherited Members | |
Public Types inherited from ml::Base | |
enum | PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream } |
This enum describes the different persistence interfaces available. More... | |
EventSourceBase class adds event listener handling to Base.
Events are derived from BaseEvent.
Definition at line 30 of file mlEventSource.h.
ml::EventSource::EventSource | ( | ) |
ml::EventSource::EventSource | ( | const EventSource & | evSource | ) |
|
override |
void ml::EventSource::addEventListener | ( | BaseEventCallback * | cb, |
void * | userData ) |
add event listener callback to this Base object - the userData will be the first argument when the callback is called
bool ml::EventSource::hasEventListeners | ( | ) | const |
check if 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
void ml::EventSource::removeEventListener | ( | BaseEventCallback * | cb, |
void * | userData ) |
remove event listener callback from this Base object - arguments must be the same as for the addEventListener call
|
protected |
Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h.
pass event object to all registered listeners, ownership stays with the sender (so you can create the event object on the stack). If skipListener is set to a non-NULL value, the event will not be sent to any listeners that have the same userData set, so you can avoid to be notified of your own changes.