EventHandler

class HPS::EventHandler : public HPS::Object

The EventHandler class is the base class for any event handler that can be created. All custom event handlers should inherit from this.

Public Types

enum HandleResult

Enumeration of the values the EventHandler uses to indicate if it handled an event.

Values:

enumerator Handled

The event was handled by this EventHandler. Consume the event if possible.

enumerator NotHandled

The event was not handled by this EventHandler. Pass to the next handler if any or if possible.

Public Functions

EventHandler()

The default constructor creates an EventHandler object not subscribed to any event.

EventHandler(EventHandler &&in_that)

The move constructor creates an EventHandler by transferring the underlying impl of the rvalue reference to this EventHandler thereby avoiding a copy and allocation.

Parameters

in_that – An rvalue reference to an EventHandler to take the impl from.

EventHandler(EventHandler const &in_that)

The copy constructor creates a new EventHandler object that points to the same underlying impl as the source EventHandler.

Parameters

in_that – The source EventHandler to point to.

inline virtual HandleResult Handle(Event const *in_event)

Function that gets triggered if this EventHandler receives an event it is subscribed to. This should be overridden by subclasses of EventHandler to perform any custom behavior.

Parameters

in_eventEvent which was triggered.

Returns

Handled if the event was handled, NotHandled otherwise.

inline virtual HPS::Type ObjectType() const

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns

The declared type of the object in question, which may differ from the true, underlying type.

EventHandler &operator=(EventHandler &&in_that)

The move assignment operator transfers the underlying impl of the rvalue reference to this EventHandler thereby avoiding a copy.

Parameters

in_that – An rvalue reference to an EventHandler to take the impl from.

Returns

A reference to this EventHandler.

EventHandler &operator=(EventHandler const &in_that)

Share the underlying smart-pointer of the EventHandler source.

Parameters

in_that – The EventHandler source of the assignment.

Returns

A reference to this EventHandler.

inline virtual void Reset()

Resets this object to its initial, uninitialized state.

void Shutdown()

Notifies the EventDispatcher that this handler is being invalidated and no further events should be dispatched to it. This method must be called in any derived class destructors.

bool Subscribe(EventDispatcher const &in_dispatcher, intptr_t in_type) const

Add this EventHandler object to the list of subscribers for events of the specified type on the specified EventDispatcher.

Parameters
  • in_dispatcher – Dispatcher from which to receive events of the given type.

  • in_type – Type of event to receive from the dispatcher.

Returns

true if the subscription was successful, false otherwise.

bool UnSubscribe(EventDispatcher const &in_dispatcher) const

Remove this EventHandler object from the list of subscribers for all events on the specified EventDispatcher.

Parameters

in_dispatcher – Dispatcher from which to no longer receive events.

Returns

true if the unsubscription was successful, false otherwise.

bool UnSubscribe(EventDispatcher const &in_dispatcher, intptr_t in_type) const

Remove this EventHandler object from the list of subscribers for events of the specified type on the specified EventDispatcher.

Parameters
  • in_dispatcher – Dispatcher from which to no longer receive events of the given type.

  • in_type – Type of event to no longer receive from the dispatcher.

Returns

true if the unsubscription was successful, false otherwise.

void UnSubscribeEverything() const

Remove this EventHandler object from all events on all EventDispatchers.

virtual ~EventHandler()

Public Static Attributes

static const HPS::Type staticType = HPS::Type::EventHandler