HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PDG_EventEmitter Class Referenceabstract

#include <PDG_EventEmitter.h>

+ Inheritance diagram for PDG_EventEmitter:

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 FiltersupportedEventTypes () 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
 

Detailed Description

Definition at line 26 of file PDG_EventEmitter.h.

Member Typedef Documentation

using PDG_EventEmitter::Filter = UT_ValArray<PDG_EventType>

Definition at line 29 of file PDG_EventEmitter.h.

Constructor & Destructor Documentation

PDG_EventEmitter::PDG_EventEmitter ( PDG_EventQueue eventQueue,
bool  block_destruction 
)
virtual PDG_EventEmitter::~PDG_EventEmitter ( )
virtual

Member Function Documentation

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::emitEvent ( const PDG_Event evt) const

Emit an event to all handlers.

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)
virtual Filter& PDG_EventEmitter::supportedEventTypes ( ) const
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.

Friends And Related Function Documentation

friend class PDG_EventQueue
friend

Definition at line 88 of file PDG_EventEmitter.h.

Member Data Documentation

bool PDG_EventEmitter::myBeingDestroyedFlag = false
protected

Definition at line 79 of file PDG_EventEmitter.h.

FilterMap PDG_EventEmitter::myFilters
protected

Definition at line 77 of file PDG_EventEmitter.h.

HandlerSet PDG_EventEmitter::myHandlers
protected

Definition at line 76 of file PDG_EventEmitter.h.

UT_TBBSpinLock PDG_EventEmitter::myHandlersLock
mutableprotected

Definition at line 78 of file PDG_EventEmitter.h.


The documentation for this class was generated from the following file: