Nebula
Loading...
Searching...
No Matches
CoreGraphics::ThreadSafeRenderEventHandler Class Reference

#include <threadsaferendereventhandler.h>

Detailed Description

A thread-safe subclass of RenderEventHandler.

Allows to receive RenderEvents 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::RenderEventHandler.

Public Member Functions

 ThreadSafeRenderEventHandler ()
 constructor
 
virtual ~ThreadSafeRenderEventHandler ()
 destructor
 
virtual bool PutEvent (const RenderEvent &event)
 called by RenderDevice when an event happens
 
void HandlePendingEvents ()
 handle all pending events (called by consumer thread)
 
- Public Member Functions inherited from CoreGraphics::RenderEventHandler
 RenderEventHandler ()
 constructor
 
virtual ~RenderEventHandler ()
 destructor
 
virtual void OnAttach ()
 called when the event handler is attached to the RenderDevice
 
virtual void OnRemove ()
 called when the event handler is removed from the RenderDevice
 
- 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::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Protected Member Functions

virtual bool HandleEvent (const RenderEvent &event)
 called when an event should be processed, override this method in your subclass
 
- Protected Member Functions inherited from CoreGraphics::RenderEventHandler
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Protected Attributes

Threading::SafeQueue< RenderEventeventQueue
 
Util::Array< RenderEventtmpPendingEvents
 

Private Member Functions

 __DeclareClass (ThreadSafeRenderEventHandler)
 

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!)
 

Constructor & Destructor Documentation

◆ ThreadSafeRenderEventHandler()

CoreGraphics::ThreadSafeRenderEventHandler::ThreadSafeRenderEventHandler ( )

constructor

◆ ~ThreadSafeRenderEventHandler()

CoreGraphics::ThreadSafeRenderEventHandler::~ThreadSafeRenderEventHandler ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

CoreGraphics::ThreadSafeRenderEventHandler::__DeclareClass ( ThreadSafeRenderEventHandler )
private

◆ HandleEvent()

bool CoreGraphics::ThreadSafeRenderEventHandler::HandleEvent ( const RenderEvent & e)
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::RenderEventHandler.

◆ HandlePendingEvents()

void CoreGraphics::ThreadSafeRenderEventHandler::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.

◆ PutEvent()

bool CoreGraphics::ThreadSafeRenderEventHandler::PutEvent ( const RenderEvent & e)
virtual

called by RenderDevice when an event happens

Put an event into the event handler.

This method is called by the render thread's RenderDevice. Events are queued until the consumer thread processes them by calling HandlePendingEvents().

Reimplemented from CoreGraphics::RenderEventHandler.

Member Data Documentation

◆ eventQueue

Threading::SafeQueue<RenderEvent> CoreGraphics::ThreadSafeRenderEventHandler::eventQueue
protected

◆ tmpPendingEvents

Util::Array<RenderEvent> CoreGraphics::ThreadSafeRenderEventHandler::tmpPendingEvents
protected

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