TAO_CosEvent  2.0.7
Public Member Functions | Private Attributes
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.

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines