The Nebula Device 3: CoreGraphics::ThreadSafeDisplayEventHandler Class Reference

The Nebula Device 3

CoreGraphics::ThreadSafeDisplayEventHandler Class Reference

#include <threadsafedisplayeventhandler.h>

Inheritance diagram for CoreGraphics::ThreadSafeDisplayEventHandler:

CoreGraphics::DisplayEventHandler Core::RefCounted Win32::Win32InputDisplayEventHandler

Detailed Description

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

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)
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
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::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Protected Member Functions

virtual bool HandleEvent (const DisplayEvent &event)
 called when an event should be processed, override this method in your subclass

Member Function Documentation

bool CoreGraphics::ThreadSafeDisplayEventHandler::PutEvent ( const DisplayEvent e  )  [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.

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.

bool CoreGraphics::ThreadSafeDisplayEventHandler::HandleEvent ( const DisplayEvent e  )  [protected, virtual]

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.

Reimplemented in Win32::Win32InputDisplayEventHandler.

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.