TAO_CosEvent 4.0.0
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
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]

Public Member Functions

 TAO_CEC_MT_Dispatching (int nthreads, int thread_creation_flags, int thread_priority, int force_activate)
 
virtual void activate ()
 
virtual void shutdown ()
 
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)
 
- Public Member Functions inherited from TAO_CEC_Dispatching
virtual ~TAO_CEC_Dispatching ()
 destructor...
 

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

◆ activate()

void TAO_CEC_MT_Dispatching::activate ( )
virtual

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

Implements TAO_CEC_Dispatching.

◆ push()

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.

◆ push_nocopy()

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

Implements TAO_CEC_Dispatching.

◆ shutdown()

void TAO_CEC_MT_Dispatching::shutdown ( )
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

◆ active_

int TAO_CEC_MT_Dispatching::active_
private

Are the threads running?

◆ force_activate_

int TAO_CEC_MT_Dispatching::force_activate_
private

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

◆ lock_

TAO_SYNCH_MUTEX TAO_CEC_MT_Dispatching::lock_
private

Synchronize access to internal data.

◆ nthreads_

int TAO_CEC_MT_Dispatching::nthreads_
private

The number of active tasks.

◆ task_

TAO_CEC_Dispatching_Task TAO_CEC_MT_Dispatching::task_
private

The dispatching task.

◆ thread_creation_flags_

int TAO_CEC_MT_Dispatching::thread_creation_flags_
private

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

◆ thread_manager_

ACE_Thread_Manager TAO_CEC_MT_Dispatching::thread_manager_
private

Use our own thread manager.

◆ thread_priority_

int TAO_CEC_MT_Dispatching::thread_priority_
private

The priority of the dispatching threads.


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