TAO_CEC_MT_Dispatching Class Reference

Dispatching strategy that minimizes mt inversion. More...

#include <CEC_MT_Dispatching.h>

Inheritance diagram for TAO_CEC_MT_Dispatching:

Inheritance graph
[legend]
Collaboration diagram for TAO_CEC_MT_Dispatching:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_CEC_MT_Dispatching (int nthreads, int thread_creation_flags, int thread_priority, int force_activate)
virtual void activate (void)
virtual void shutdown (void)
virtual void push (TAO_CEC_ProxyPushSupplier *proxy, const CORBA::Any &event)
 The consumer represented by <proxy> should receive <event>.
virtual void push_nocopy (TAO_CEC_ProxyPushSupplier *proxy, CORBA::Any &event)

Private Attributes

ACE_Thread_Manager thread_manager_
 Use our own thread manager.
int nthreads_
 The number of active tasks.
int thread_creation_flags_
int thread_priority_
 The priority of the dispatching threads.
int force_activate_
TAO_CEC_Dispatching_Task task_
 The dispatching task.
TAO_SYNCH_MUTEX lock_
 Synchronize access to internal data.
int active_
 Are the threads running?


Detailed Description

Dispatching strategy that minimizes mt inversion.

This strategy uses a single queue, serviced by one or more threads. It's main purpose is to decouple the suppliers from the client execution time, specially in the collocated case.


Constructor & Destructor Documentation

TAO_CEC_MT_Dispatching::TAO_CEC_MT_Dispatching ( int  nthreads,
int  thread_creation_flags,
int  thread_priority,
int  force_activate 
)

Constructor It will create <nthreads> servicing threads...


Member Function Documentation

void TAO_CEC_MT_Dispatching::activate ( void   )  [virtual]

Initialize all the data structures, activate any internal threads, etc.

Implements TAO_CEC_Dispatching.

void TAO_CEC_MT_Dispatching::push ( TAO_CEC_ProxyPushSupplier proxy,
const CORBA::Any &  event 
) [virtual]

The consumer represented by <proxy> should receive <event>.

Implements TAO_CEC_Dispatching.

void TAO_CEC_MT_Dispatching::push_nocopy ( TAO_CEC_ProxyPushSupplier proxy,
CORBA::Any &  event 
) [virtual]

Implements TAO_CEC_Dispatching.

void TAO_CEC_MT_Dispatching::shutdown ( void   )  [virtual]

Deactivate any internal threads and cleanup internal data structures, it should only return once the threads have finished their jobs.

Implements TAO_CEC_Dispatching.


Member Data Documentation

Are the threads running?

If activation at the requested priority fails then we fallback on the defaults for thread activation.

TAO_SYNCH_MUTEX TAO_CEC_MT_Dispatching::lock_ [private]

Synchronize access to internal data.

The number of active tasks.

The dispatching task.

The flags (THR_BOUND, THR_NEW_LWP, etc.) used to create the dispatching threads.

Use our own thread manager.

The priority of the dispatching threads.


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

Generated on Thu Jul 23 03:10:58 2009 for TAO_CosEvent by  doxygen 1.5.8