Nebula
|
#include <threadsafedisplayeventhandler.h>
A thread-safe subclass of DisplayEventHandler.
Allows to receive DisplayEvents from a differnet thread then the render thread. The producer thread calls the PutEvent() method to push new events into the event handler, these events will be stored in a
(C) 2007 Radon Labs GmbH (C) 2013-2018 Individual contributors, see AUTHORS file
Inherits CoreGraphics::DisplayEventHandler.
Public Member Functions | |
ThreadSafeDisplayEventHandler () | |
constructor | |
virtual | ~ThreadSafeDisplayEventHandler () |
destructor | |
virtual bool | PutEvent (const DisplayEvent &event) |
called by DisplayDevice when an event happens | |
void | HandlePendingEvents () |
handle all pending events (called by consumer thread) | |
Public Member Functions inherited from CoreGraphics::DisplayEventHandler | |
DisplayEventHandler () | |
constructor | |
virtual | ~DisplayEventHandler () |
destructor | |
virtual void | OnAttach () |
called when the event handler is attached to the DisplayDevice | |
virtual void | OnRemove () |
called when the event handler is removed from the DisplayDevice | |
Public Member Functions inherited from Core::RefCounted | |
RefCounted () | |
constructor | |
int | GetRefCount () const |
get the current refcount | |
void | AddRef () |
increment refcount by one | |
void | Release () |
decrement refcount and destroy object if refcount is zero | |
bool | IsInstanceOf (const Rtti &rtti) const |
return true if this object is instance of given class | |
bool | IsInstanceOf (const Util::String &className) const |
return true if this object is instance of given class by string | |
bool | IsInstanceOf (const Util::FourCC &classFourCC) const |
return true if this object is instance of given class by fourcc | |
bool | IsA (const Rtti &rtti) const |
return true if this object is instance of given class, or a derived class | |
bool | IsA (const Util::String &rttiName) const |
return true if this object is instance of given class, or a derived class, by string | |
bool | IsA (const Util::FourCC &rttiFourCC) const |
return true if this object is instance of given class, or a derived class, by fourcc | |
const Util::String & | GetClassName () const |
get the class name | |
Util::FourCC | GetClassFourCC () const |
get the class FourCC code | |
Protected Member Functions | |
virtual bool | HandleEvent (const DisplayEvent &event) |
called when an event should be processed, override this method in your subclass | |
Protected Member Functions inherited from CoreGraphics::DisplayEventHandler | |
Protected Member Functions inherited from Core::RefCounted | |
virtual | ~RefCounted () |
destructor (called when refcount reaches zero) | |
Protected Attributes | |
Threading::SafeQueue< DisplayEvent > | eventQueue |
Util::Array< DisplayEvent > | tmpPendingEvents |
Private Member Functions | |
__DeclareClass (ThreadSafeDisplayEventHandler) | |
Additional Inherited Members | |
Static Public Member Functions inherited from Core::RefCounted | |
static void | DumpRefCountingLeaks () |
dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!) | |
CoreGraphics::ThreadSafeDisplayEventHandler::ThreadSafeDisplayEventHandler | ( | ) |
constructor
|
virtual |
destructor
|
private |
|
protectedvirtual |
called when an event should be processed, override this method in your subclass
Handle an event.
This method is called in the consumer thread context from the HandlePendingEvents() method for each pending event. Override this method in your subclass to process the event.
Reimplemented from CoreGraphics::DisplayEventHandler.
void CoreGraphics::ThreadSafeDisplayEventHandler::HandlePendingEvents | ( | ) |
handle all pending events (called by consumer thread)
Process pending events.
This method should be called frequently by the consumer thread. Pending events will be deqeued from the internel event queue and the HandleEvent() method will be called once per event.
|
virtual |
called by DisplayDevice when an event happens
Put an event into the event handler.
This method is called by the render thread's DisplayDevice. Events are queued until the consumer thread processes them by calling HandlePendingEvents().
Reimplemented from CoreGraphics::DisplayEventHandler.
|
protected |
|
protected |