mi::nservices::IEvent_context Class Reference
[Events]
Description
The event context. This is the central interface to the neuray services event system. Here we can register and remove event handlers and generate and trigger events.
Public Member Functions
- virtual IMap* get_attachments() const =0
- Retrieves the global attachment object. More...
- virtual IFactory* get_factory() const =0
- Returns a factory, may be used to create neuray services data and event objects. More...
- virtual Sint32 register_handler( base::Uuid event_type, const char* event_handler_name, const char* name, Sint32 priority) =0
- Registers an event handler. More...
- virtual Sint32 remove_handler( base::Uuid event_type, const char* name) =0
- Removes an existing event handler. More...
- virtual Sint32 send_event( IEvent* event) =0
- Send an event to all registered handlers. More...
Member Functions
- virtual IMap* mi::nservices::IEvent_context::get_attachments() const [pure virtual]
-
Retrieves the global attachment object.
Returns
an object with which to manipulate attachments
- virtual IFactory* mi::nservices::IEvent_context::get_factory() const [pure virtual]
-
Returns a factory, may be used to create neuray services data and event objects.
Returns
a factory
- virtual Sint32 mi::nservices::IEvent_context::register_handler( base::Uuid event_type, const char* event_handler_name, const char* name, Sint32 priority) [pure virtual]
-
Registers an event handler. Event handlers only exist for the lifetime of this event context. If multiple handlers are registered for an event they are triggered in priority order. Handlers at the same priority level are triggered in the order they were registered
Parameters
- event_type
- the event to handle
- event_handler_name
- the name of the event handler to register
- name
- the name to register the handler as
- priority
- the event priority. Events with lower priorities are executed before events with higher priorities. Note that negative priorites are reserved for internal use, users should always use a positive priority value.
Returns
- NRS_ERROR_NONE : success.
- NRS_ERROR_MEMORY : out of memory.
- NRS_ERROR_INVALID_PARAMETERS : a parameter is NULL.
- NRS_ERROR_INVALID_OPERATION : a handler called name is already registered.
- NRS_ERROR_EVENT_HANDLER_NAME_INVALID : event_handler_name is not a known event handler.
- virtual Sint32 mi::nservices::IEvent_context::remove_handler( base::Uuid event_type, const char* name) [pure virtual]
-
Removes an existing event handler.
Parameters
- event_type
- the event type we wish to remove
- name
- the name of the handler to remove
Returns
- NRS_ERROR_NONE : success.
- NRS_ERROR_INVALID_PARAMETERS : name is NULL.
- NRS_ERROR_INVALID_OPERATION : if name is not a registered handler.
- virtual Sint32 mi::nservices::IEvent_context::send_event( IEvent* event) [pure virtual]
-
Send an event to all registered handlers. This method will not return until all handlers have executed.
Parameters
- event
- the event to send
Returns
the return value of the last event handler or one of the following errors:
- NRS_ERROR_MEMORY : out of memory.
- NRS_ERROR_INVALID_PARAMETERS : event is NULL.
- NRS_ERROR_EVENT_NO_HANDLERS : no handlers registered for this event type.
- NRS_ERROR_FAILED : internal error.