# EventDispatcher

class `EventDispatcher` : public HPS::Object

  The EventDispatcher class is used for injecting any events and dealing with event handlers which handle those events.

  Public Functions

  bool `Equals`(EventDispatcher const &in_that) const

    Check if the source EventDispatcher is equivalent to this object.

    Parameters: | in_that – The source EventDispatcher to compare to this object.
    Returns: | true if the objects are equivalent, false otherwise.

  `EventDispatcher`()

    The default constructor creates an uninitialized EventDispatcher object which cannot be subscribed to.

    See also

    Database::CreateEventDispatcher()

  `EventDispatcher`(EventDispatcher &&in_that)

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

    Parameters: | in_that – An rvalue reference to a EventDispatcher to take the impl from.

  `EventDispatcher`(EventDispatcher const &in_that)

    The copy constructor creates an EventDispatcher object that points to the same underlying impl as the source EventDispatcher.

    Parameters: | in_that – The source EventHandler to point to.

  bool `InjectEvent`(Event const &in_event) const

    Inject the specified event and propagate it to all subscribed handlers in the order of subscription.

    Parameters: | in_event – Event to inject and propagate.
    Returns: | true if the event injection was successful, false otherwise.

  EventNotifier `InjectEventWithNotifier`(Event const &in_event) const

    Inject the specified event and propagate it to all subscribed handlers in the order of subscription and return an EventNotifier associated with the injected event.

    Parameters: | in_event – Event to inject and propagate.
    Returns: | An event notifier associated with the injected event.

  bool `IsShutdown`() const

    Query whether the asynchronous shutdown has completed.

    Returns: | true if the event dispatcher has shutdown, false 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.

  bool `operator!=`(EventDispatcher const &in_that) const

    Check if the source EventDispatcher is not equivalent to this object.

    Parameters: | in_that – The source EventDispatcher to compare to this object.
    Returns: | true if the objects are not equivalent, false otherwise.

  EventDispatcher &`operator=`(EventDispatcher &&in_that)

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

    Parameters: | in_that – An rvalue reference to an EventDispatcher to take the impl from.
    Returns: | A reference to this EventDispatcher.

  EventDispatcher &`operator=`(EventDispatcher const &in_that)

    Associate this EventDispatcher with the same underlying impl as the source EventDispatcher.

    Parameters: | in_that – The source EventDispatcher for the assignment.
    Returns: | A reference to this EventDispatcher.

  bool `operator==`(EventDispatcher const &in_that) const

    Check if the source EventDispatcher is equivalent to this object.

    Parameters: | in_that – The source EventDispatcher to compare to this object.
    Returns: | true if the objects are equivalent, false otherwise.

  void `SetName`(char const *in_name) const

    Sets the EventDispatcher’s name

    Parameters: | in_name – Name to set.

  void `ShowName`(UTF8 &out_name) const

    Shows the EventDispatcher’s name

    Parameters: | out_name – Current name of this EventDispatcher.

  void `Shutdown`() const

    Shutdown this EventDispatcher asynchronously. Any pending events injected into this EventDispatcher will be processed prior to shutdown, but no new events can be injected.

  bool `Subscribe`(EventHandler const &in_handler, intptr_t in_type) const

    Add the specified event handler to the list of subscribers for events of the specified type on this EventDispatcher.

    Parameters: | in_handler – Event handler to add to the subscriber list for events of the given type. in_type – Type of event to add the handler for.
    Returns: | true if the subscription was successful, false otherwise.

  bool `UnSubscribe`(EventHandler const &in_handler) const

    Remove the specified event handler from the list of subscribers for events of the specified type on this EventDispatcher.

    Parameters: | in_handler – Event handler to remove from the subscriber list for events of the given type. in_type – Type of event to remove the handler for.
    Returns: | true if the unsubscription was successful, false otherwise.

  bool `UnSubscribe`(EventHandler const &in_handler, intptr_t in_type) const

    Remove the specified event handler from the list of subscribers for events of the specified type on this EventDispatcher.

    Parameters: | in_handler – Event handler to remove from the subscriber list for events of the given type. in_type – Type of event to remove the handler for.
    Returns: | true if the unsubscription was successful, false otherwise.

  bool `UnSubscribe`(intptr_t in_type) const

    Remove the specified event handler from the list of subscribers for events of the specified type on this EventDispatcher.

    Parameters: | in_type – Type of event to remove the handler for.
    Returns: | true if the unsubscription was successful, false otherwise.

  virtual `~EventDispatcher`()

  Public Static Attributes

  static const HPS::Type `staticType` = HPS::Type::EventDispatcher

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize Desktop?
What are the latest release notes for HOOPS Visualize Desktop?
How do I start evaluating HOOPS Visualize Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...