Public Member Functions | Private Attributes

RequestProcessorThread Class Reference

#include <acsRequest.h>

Inheritance diagram for RequestProcessorThread:
Inheritance graph
[legend]
Collaboration diagram for RequestProcessorThread:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 RequestProcessorThread (const ACE_CString &name, const ACS::TimeInterval &responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval &sleepTime=ThreadBase::defaultSleepTime)
 ~RequestProcessorThread ()
void onStart ()
void stop ()
void exit ()
void runLoop () throw ((CORBA::SystemException, ::ACSErrTypeCommon::BadParameterEx))
void process (Request *r)

Private Attributes

ACE_Thread_Mutex * m_mutex
ACE_Condition< ACE_Thread_Mutex > * m_wait
std::queue< Request * > pending
volatile bool running

Constructor & Destructor Documentation

RequestProcessorThread::RequestProcessorThread ( const ACE_CString &  name,
const ACS::TimeInterval &  responseTime = ThreadBase::defaultResponseTime,
const ACS::TimeInterval &  sleepTime = ThreadBase::defaultSleepTime 
)
RequestProcessorThread::~RequestProcessorThread (  ) 

Member Function Documentation

void RequestProcessorThread::exit (  )  [virtual]

Notify thread to exit thread worker function. Thread worker function should always exit when this notification was issued. See example of usage.

Reimplemented from ACS::ThreadBase.

void RequestProcessorThread::onStart (  )  [virtual]

Method which is executed before the body of the thread. It is the hook method for a user that wants to do some initialization before the thread execution (thread initialization), s/he has to override/implement this method in the implementation class. It is called by commonStart

Reimplemented from ACS::Thread.

void RequestProcessorThread::process ( Request r  ) 
void RequestProcessorThread::runLoop (  )  throw ((CORBA::SystemException, ::ACSErrTypeCommon::BadParameterEx)) [virtual]

Basic used hook to implement the thread functionality in a periodic loop. The method is executed in a loop until the thread is alive and every responseTime 100ns by the run method. The thread can be exited from the lop by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. If the run method is overridden than runLoop is not executed.

Reimplemented from ACS::Thread.

void RequestProcessorThread::stop (  ) 

Member Data Documentation

ACE_Thread_Mutex* RequestProcessorThread::m_mutex [private]
ACE_Condition<ACE_Thread_Mutex>* RequestProcessorThread::m_wait [private]
std::queue<Request*> RequestProcessorThread::pending [private]
volatile bool RequestProcessorThread::running [private]

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