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

[legend]
Collaboration diagram for TAO_EC_MT_Dispatching:

[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:

- EC_MT_Dispatching.h
- EC_MT_Dispatching.cpp