#include <EC_TPC_Dispatching.h>
Inheritance diagram for TAO_EC_TPC_Dispatching:
This strategy uses a thread per consumer, and was specifically designed to isolate the effects of an ill-behaved consumer from affecting other consumers.
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] |
TAO_EC_TPC_Dispatching::TAO_EC_TPC_Dispatching | ( | TAO_EC_Queue_Full_Service_Object * | so | ) |
TAO_EC_TPC_Dispatching::~TAO_EC_TPC_Dispatching | ( | ) |
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.
ACE_SYNCH_MUTEX TAO_EC_TPC_Dispatching::lock_ [private] |