HDK
|
#include <PDG_EventEmitter.h>
Public Types | |
using | Filter = UT_ValArray< PDG_EventType > |
using | FilterMap = UT_ArrayMap< PDG_EventHandler *, Filter > |
using | HandlerSet = UT_ArraySet< PDG_EventHandler * > |
using | HandlerArray = UT_Array< PDG_EventHandler * > |
Public Member Functions | |
PDG_EventEmitter (PDG_EventQueue *eventQueue, bool block_destruction) | |
virtual | ~PDG_EventEmitter () |
virtual Filter & | supportedEventTypes () const =0 |
Returns the list of supported event types for this emitter. More... | |
int64 | getMemoryUsage (bool inclusive) const |
Returns memory usage for this event emitter instance. More... | |
bool | addEventHandler (PDG_EventHandler *handler) |
Adds an event handlers that listens for all types of events. More... | |
bool | addEventHandler (PDG_EventHandler *handler, PDG_EventType event) |
Adds an event handlers that listens for a specific event. More... | |
bool | addEventHandler (PDG_EventHandler *handler, const Filter &filter) |
void | removeEventHandler (PDG_EventHandler *handler) |
Removes an event handler from this emitter. More... | |
void | removeAllEventHandlers (bool user_handler_only=false) |
void | emitEvent (const PDG_Event &evt) const |
Emit an event to all handlers. More... | |
void | eventHandlers (HandlerArray &handlers) const |
void | setEventQueue (PDG_EventQueue *eventQueue) |
void | eventQueueDestroyed () |
Protected Attributes | |
HandlerSet | myHandlers |
FilterMap | myFilters |
UT_TBBSpinLock | myHandlersLock |
bool | myBeingDestroyedFlag = false |
Friends | |
class | PDG_EventQueue |
Definition at line 26 of file PDG_EventEmitter.h.
using PDG_EventEmitter::Filter = UT_ValArray<PDG_EventType> |
Definition at line 29 of file PDG_EventEmitter.h.
using PDG_EventEmitter::FilterMap = UT_ArrayMap<PDG_EventHandler *, Filter> |
Definition at line 30 of file PDG_EventEmitter.h.
Definition at line 32 of file PDG_EventEmitter.h.
Definition at line 31 of file PDG_EventEmitter.h.
PDG_EventEmitter::PDG_EventEmitter | ( | PDG_EventQueue * | eventQueue, |
bool | block_destruction | ||
) |
|
virtual |
bool PDG_EventEmitter::addEventHandler | ( | PDG_EventHandler * | handler | ) |
Adds an event handlers that listens for all types of events.
bool PDG_EventEmitter::addEventHandler | ( | PDG_EventHandler * | handler, |
PDG_EventType | event | ||
) |
Adds an event handlers that listens for a specific event.
bool PDG_EventEmitter::addEventHandler | ( | PDG_EventHandler * | handler, |
const Filter & | filter | ||
) |
Adds an event handler with a filter, so that it only listens for events in the specified list
void PDG_EventEmitter::eventHandlers | ( | HandlerArray & | handlers | ) | const |
Safely makes a copy of the list of handlers. If this emitter is currently being destroyed, the resulting array is empty
void PDG_EventEmitter::eventQueueDestroyed | ( | ) |
int64 PDG_EventEmitter::getMemoryUsage | ( | bool | inclusive | ) | const |
Returns memory usage for this event emitter instance.
void PDG_EventEmitter::removeAllEventHandlers | ( | bool | user_handler_only = false | ) |
Removes all event handlers from this emitter. If user_handler_only is true, only user-added event handlers are removed.
void PDG_EventEmitter::removeEventHandler | ( | PDG_EventHandler * | handler | ) |
Removes an event handler from this emitter.
void PDG_EventEmitter::setEventQueue | ( | PDG_EventQueue * | eventQueue | ) |
|
pure virtual |
Returns the list of supported event types for this emitter.
Implemented in PDG_Scheduler, PDG_GraphContext, PDG_Node, PDG_WorkItem, and PDG_ServiceManager.
|
friend |
Definition at line 88 of file PDG_EventEmitter.h.
|
protected |
Definition at line 79 of file PDG_EventEmitter.h.
|
protected |
Definition at line 77 of file PDG_EventEmitter.h.
|
protected |
Definition at line 76 of file PDG_EventEmitter.h.
|
mutableprotected |
Definition at line 78 of file PDG_EventEmitter.h.