openMSX
Classes | Public Types | Public Member Functions | List of all members
openmsx::EventDistributor Class Reference

#include <EventDistributor.hh>

Public Types

enum  Priority {
  OTHER , HOTKEY , IMGUI , MSX ,
  LOWEST
}
 Priorities from high to low, higher priority listeners can block events for lower priority listeners. More...
 

Public Member Functions

 EventDistributor (Reactor &reactor)
 
void registerEventListener (EventType type, EventListener &listener, Priority priority=OTHER)
 Registers a given object to receive certain events.
 
void unregisterEventListener (EventType type, EventListener &listener)
 Unregisters a previously registered event listener.
 
void distributeEvent (Event &&event)
 Schedule the given event for delivery.
 
void deliverEvents ()
 This actually delivers the events.
 
bool sleep (unsigned us)
 Sleep for the specified amount of time, but return early when (another thread) called the distributeEvent() method.
 

Detailed Description

Definition at line 15 of file EventDistributor.hh.

Member Enumeration Documentation

◆ Priority

Priorities from high to low, higher priority listeners can block events for lower priority listeners.

Enumerator
OTHER 
HOTKEY 
IMGUI 
MSX 
LOWEST 

Definition at line 21 of file EventDistributor.hh.

Constructor & Destructor Documentation

◆ EventDistributor()

openmsx::EventDistributor::EventDistributor ( Reactor reactor)
explicit

Definition at line 15 of file EventDistributor.cc.

Member Function Documentation

◆ deliverEvents()

void openmsx::EventDistributor::deliverEvents ( )

◆ distributeEvent()

void openmsx::EventDistributor::distributeEvent ( Event &&  event)

◆ registerEventListener()

void openmsx::EventDistributor::registerEventListener ( EventType  type,
EventListener listener,
Priority  priority = OTHER 
)

◆ sleep()

bool openmsx::EventDistributor::sleep ( unsigned  us)

Sleep for the specified amount of time, but return early when (another thread) called the distributeEvent() method.

Parameters
usAmount of time to sleep, in micro seconds.
Returns
true if we return because time has passed false if we return because distributeEvent() was called

Definition at line 113 of file EventDistributor.cc.

◆ unregisterEventListener()

void openmsx::EventDistributor::unregisterEventListener ( EventType  type,
EventListener listener 
)

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