Event Handling Subsystem Overview

EHS provides functionality to perform Event-driven programming. EventTable's are used to post/store/handle events. EventTable is derived from EventTableBase, which interfaces all EventTable objects with main loop, latter of which is located in EventMain class. All EventTable objects are registred with EventMain on construction and de-registred on destruction. Whenever there are events, EventTableBase::HandleEvents() function is called on each and every registred EventTableBase objects.

Since one of the most logical way to use this functionality is in multi-threaded environment, where threads submit events and main thread handles them, everything in here must be 100% thread-safe.

Customizability: New classes can be derived from EventTableBase (or even from EventTable) to further customize this functionality.