Nebula
Loading...
Searching...
No Matches
Messaging::RunThroughHandlerThread Class Reference

#include <runthroughhandlerthread.h>

Detailed Description

A simple handler thread class which "runs thru", and doesn't wait for messages.

This is the "old behaviour" of the N3 render thread.

Inherits Messaging::HandlerThreadBase.

Public Member Functions

 RunThroughHandlerThread ()
 constructor
 
virtual void AddMessage (const Ptr< Message > &msg)
 add a message to be handled (override in subclass!)
 
virtual void CancelMessage (const Ptr< Message > &msg)
 cancel a pending message (override in subclass!)
 
virtual void DoWork ()
 this method runs in the thread context
 
- Public Member Functions inherited from Messaging::HandlerThreadBase
 HandlerThreadBase ()
 constructor
 
void AttachHandler (const Ptr< Handler > &h)
 attach a message handler
 
void RemoveHandler (const Ptr< Handler > &h)
 dynamically remove a message handler
 
void ClearHandlers ()
 clear all attached message handlers
 
void WaitForHandlersOpened ()
 wait until handlers have been opened
 
virtual void WaitForMessage (const Ptr< Message > &msg)
 wait for message to be handled (optionally override in subclass!)
 

Private Member Functions

 __DeclareClass (RunThroughHandlerThread)
 

Private Attributes

Threading::SafeQueue< Ptr< Message > > msgQueue
 

Additional Inherited Members

- Protected Member Functions inherited from Messaging::HandlerThreadBase
void ThreadOpenHandlers ()
 open message handlers
 
void ThreadCloseHandlers ()
 close message handlers
 
void ThreadUpdateHandlers ()
 open dynamically added handlers, and call DoWork() on all attached handlers
 
bool ThreadUpdateDeferredMessages ()
 update deferred messages, return true if at least one message has been handled
 
void ThreadDiscardDeferredMessages ()
 clear leftover deferred messages
 
bool ThreadHandleMessages (const Util::Array< Ptr< Message > > &msgArray)
 handle messages in array, return true if at least one message has been handled
 
bool ThreadHandleSingleMessage (const Ptr< Message > &msg)
 handle a single message without deferred support, return if message has been handled
 
void ThreadSignalMessageHandled ()
 signal message handled event (only call if at least one message has been handled)
 
- Protected Attributes inherited from Messaging::HandlerThreadBase
Threading::Event msgHandledEvent
 
Threading::Event handlersOpenedEvent
 
Threading::CriticalSection handlersCritSect
 
Util::Array< Ptr< Handler > > handlers
 
Util::Array< Ptr< Message > > deferredMessages
 

Constructor & Destructor Documentation

◆ RunThroughHandlerThread()

Messaging::RunThroughHandlerThread::RunThroughHandlerThread ( )

constructor

Member Function Documentation

◆ __DeclareClass()

Messaging::RunThroughHandlerThread::__DeclareClass ( RunThroughHandlerThread )
private

◆ AddMessage()

void Messaging::RunThroughHandlerThread::AddMessage ( const Ptr< Message > & msg)
virtual

add a message to be handled (override in subclass!)

This adds a new message to the thread's message queue.

Reimplemented from Messaging::HandlerThreadBase.

◆ CancelMessage()

void Messaging::RunThroughHandlerThread::CancelMessage ( const Ptr< Message > & msg)
virtual

cancel a pending message (override in subclass!)

This removes a message from the thread's message queue, regardless of its state.

Reimplemented from Messaging::HandlerThreadBase.

◆ DoWork()

void Messaging::RunThroughHandlerThread::DoWork ( )
virtual

this method runs in the thread context

The message processing loop.

Member Data Documentation

◆ msgQueue

Threading::SafeQueue<Ptr<Message> > Messaging::RunThroughHandlerThread::msgQueue
private

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