Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_EC_MT_Dispatching Class Reference

Dispatching strategy that minimizes mt inversion. More...

#include <EC_MT_Dispatching.h>

Inheritance diagram for TAO_EC_MT_Dispatching:

Inheritance graph
[legend]
Collaboration diagram for TAO_EC_MT_Dispatching:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_EC_MT_Dispatching (int nthreads, int thread_creation_flags, int thread_priority, int force_activate)
 Constructor It will create <nthreads> servicing threads... More...

virtual void activate (void)
 Initialize all the data structures, activate any internal threads, etc. More...

virtual void shutdown (void)
 Deactivate any internal threads and cleanup internal data structures, it should only return once the threads have finished their jobs. More...

virtual void push (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, const RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info ACE_ENV_ARG_DECL)
 The consumer represented by <proxy> should receive <event>. More...

virtual void push_nocopy (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info ACE_ENV_ARG_DECL)

Private Attributes

ACE_Thread_Manager thread_manager_
 Use our own thread manager. More...

int nthreads_
 The number of active tasks. More...

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

int thread_priority_
 The priority of the dispatching threads. More...

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

TAO_EC_Dispatching_Task task_
 The dispatching task. More...

TAO_SYNCH_MUTEX lock_
 Synchronize access to internal data. More...

int active_
 Are the threads running? More...


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_EC_MT_Dispatching::TAO_EC_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_EC_MT_Dispatching::activate void    [virtual]
 

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

Reimplemented from TAO_EC_Dispatching.

void TAO_EC_MT_Dispatching::push TAO_EC_ProxyPushSupplier   proxy,
RtecEventComm::PushConsumer_ptr    consumer,
const RtecEventComm::EventSet   event,
TAO_EC_QOS_Info &qos_info    ACE_ENV_ARG_DECL
[virtual]
 

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

It can use the information in <qos_info> to determine the event priority (among other things).

Reimplemented from TAO_EC_Dispatching.

virtual void TAO_EC_MT_Dispatching::push_nocopy TAO_EC_ProxyPushSupplier   proxy,
RtecEventComm::PushConsumer_ptr    consumer,
RtecEventComm::EventSet   event,
TAO_EC_QOS_Info &qos_info    ACE_ENV_ARG_DECL
[virtual]
 

Reimplemented from TAO_EC_Dispatching.

void TAO_EC_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.

Reimplemented from TAO_EC_Dispatching.


Member Data Documentation

int TAO_EC_MT_Dispatching::active_ [private]
 

Are the threads running?

int TAO_EC_MT_Dispatching::force_activate_ [private]
 

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

TAO_SYNCH_MUTEX TAO_EC_MT_Dispatching::lock_ [private]
 

Synchronize access to internal data.

int TAO_EC_MT_Dispatching::nthreads_ [private]
 

The number of active tasks.

TAO_EC_Dispatching_Task TAO_EC_MT_Dispatching::task_ [private]
 

The dispatching task.

int TAO_EC_MT_Dispatching::thread_creation_flags_ [private]
 

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

ACE_Thread_Manager TAO_EC_MT_Dispatching::thread_manager_ [private]
 

Use our own thread manager.

int TAO_EC_MT_Dispatching::thread_priority_ [private]
 

The priority of the dispatching threads.


The documentation for this class was generated from the following files:
Generated on Thu Oct 10 21:16:45 2002 for TAO_RTEvent by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001