TAO_EC_TPC_Dispatching Class Reference

Dispatching strategy that isolates deliveries to a consumer from any other. More...

#include <EC_TPC_Dispatching.h>

Inheritance diagram for TAO_EC_TPC_Dispatching:

Inheritance graph
[legend]
Collaboration diagram for TAO_EC_TPC_Dispatching:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_EC_TPC_Dispatching (TAO_EC_Queue_Full_Service_Object *so)
 ~TAO_EC_TPC_Dispatching ()
virtual void activate (void)
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 ACE_ENV_ARG_DECL)
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)
int add_consumer (RtecEventComm::PushConsumer_ptr consumer ACE_ENV_ARG_DECL)
int remove_consumer (RtecEventComm::PushConsumer_ptr consumer ACE_ENV_ARG_DECL)

Private Types

typedef ACE_Hash_Map_Manager_Ex<
RtecEventComm::PushConsumer_ptr,
TAO_EC_Dispatching_Task *,
ACE_Pointer_Hash< RtecEventComm::PushConsumer_ptr >,
ACE_Equal_To< RtecEventComm::PushConsumer_ptr >,
ACE_Null_Mutex
MAPTYPE

Private Attributes

ACE_Thread_Manager thread_manager_
MAPTYPE consumer_task_map_
ACE_SYNCH_MUTEX lock_
TAO_EC_Queue_Full_Service_Objectqueue_full_service_object_

Detailed Description

Dispatching strategy that isolates deliveries to a consumer from any other.

This strategy uses a thread per consumer, and was specifically designed to isolate the effects of an ill-behaved consumer from affecting other consumers.


Member Typedef Documentation

typedef ACE_Hash_Map_Manager_Ex<RtecEventComm::PushConsumer_ptr,TAO_EC_Dispatching_Task*,ACE_Pointer_Hash<RtecEventComm::PushConsumer_ptr>,ACE_Equal_To<RtecEventComm::PushConsumer_ptr>,ACE_Null_Mutex> TAO_EC_TPC_Dispatching::MAPTYPE [private]
 


Constructor & Destructor Documentation

TAO_EC_TPC_Dispatching::TAO_EC_TPC_Dispatching TAO_EC_Queue_Full_Service_Object so  ) 
 

TAO_EC_TPC_Dispatching::~TAO_EC_TPC_Dispatching  ) 
 


Member Function Documentation

void TAO_EC_TPC_Dispatching::activate void   )  [virtual]
 

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

Implements TAO_EC_Dispatching.

int TAO_EC_TPC_Dispatching::add_consumer RtecEventComm::PushConsumer_ptr consumer  ACE_ENV_ARG_DECL  ) 
 

void TAO_EC_TPC_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).

Implements TAO_EC_Dispatching.

virtual void TAO_EC_TPC_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]
 

Implements TAO_EC_Dispatching.

int TAO_EC_TPC_Dispatching::remove_consumer RtecEventComm::PushConsumer_ptr consumer  ACE_ENV_ARG_DECL  ) 
 

void TAO_EC_TPC_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_EC_Dispatching.


Member Data Documentation

MAPTYPE TAO_EC_TPC_Dispatching::consumer_task_map_ [private]
 

ACE_SYNCH_MUTEX TAO_EC_TPC_Dispatching::lock_ [private]
 

TAO_EC_Queue_Full_Service_Object* TAO_EC_TPC_Dispatching::queue_full_service_object_ [private]
 

ACE_Thread_Manager TAO_EC_TPC_Dispatching::thread_manager_ [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:19:05 2005 for TAO_RTEvent by  doxygen 1.4.5