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

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

virtual void shutdown (void)
virtual void push (TAO_EC_ProxyPushSupplier* proxy, RtecEventComm::PushConsumer_ptr consumer, const RtecEventComm::EventSet& event, TAO_EC_QOS_Info& qos_info, CORBA::Environment& env)
virtual void push_nocopy (TAO_EC_ProxyPushSupplier* proxy, RtecEventComm::PushConsumer_ptr consumer, RtecEventComm::EventSet& event, TAO_EC_QOS_Info& qos_info, CORBA::Environment& env)

Private Attributes

ACE_Thread_Manager thread_manager_
 Use our own thread manager.

int nthreads_
 The number of active tasks.

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

int thread_priority_
 The priority of the dispatching threads.

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

TAO_EC_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_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,
CORBA::Environment & ACE_TRY_ENV ) [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.

void TAO_EC_MT_Dispatching::push_nocopy ( TAO_EC_ProxyPushSupplier * proxy,
RtecEventComm::PushConsumer_ptr consumer,
RtecEventComm::EventSet & event,
TAO_EC_QOS_Info & qos_info,
CORBA::Environment & ACE_TRY_ENV ) [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 at Fri Oct 5 08:22:42 2001 for TAO_RTEvent by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000