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

Public Member Functions

 TAO_EC_TPC_Dispatching (int nthreads, int thread_creation_flags, int thread_priority, int force_activate, TAO_EC_Queue_Full_Service_Object *so)
 
 ~TAO_EC_TPC_Dispatching ()
 
virtual void activate ()
 
virtual void shutdown ()
 
virtual void push (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, const RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info)
 
virtual void push_nocopy (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info)
 
int add_consumer (RtecEventComm::PushConsumer_ptr consumer)
 
int remove_consumer (RtecEventComm::PushConsumer_ptr consumer)
 
- Public Member Functions inherited from TAO_EC_Dispatching
virtual ~TAO_EC_Dispatching ()
 Destructor...
 

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_MutexMAPTYPE
 

Private Attributes

ACE_Thread_Manager thread_manager_
 
int thread_creation_flags_
 
int thread_priority_
 The priority of the dispatching threads.
 
MAPTYPE consumer_task_map_
 
TAO_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

◆ MAPTYPE

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_TPC_Dispatching ( int nthreads,
int thread_creation_flags,
int thread_priority,
int force_activate,
TAO_EC_Queue_Full_Service_Object * so )

◆ ~TAO_EC_TPC_Dispatching()

TAO_EC_TPC_Dispatching::~TAO_EC_TPC_Dispatching ( )

Member Function Documentation

◆ activate()

void TAO_EC_TPC_Dispatching::activate ( )
virtual

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

Implements TAO_EC_Dispatching.

◆ add_consumer()

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

◆ push()

void TAO_EC_TPC_Dispatching::push ( TAO_EC_ProxyPushSupplier * proxy,
RtecEventComm::PushConsumer_ptr consumer,
const RtecEventComm::EventSet & event,
TAO_EC_QOS_Info & qos_info )
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.

◆ push_nocopy()

void TAO_EC_TPC_Dispatching::push_nocopy ( TAO_EC_ProxyPushSupplier * proxy,
RtecEventComm::PushConsumer_ptr consumer,
RtecEventComm::EventSet & event,
TAO_EC_QOS_Info & qos_info )
virtual

Implements TAO_EC_Dispatching.

◆ remove_consumer()

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

◆ shutdown()

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

Member Data Documentation

◆ consumer_task_map_

MAPTYPE TAO_EC_TPC_Dispatching::consumer_task_map_
private

◆ lock_

TAO_SYNCH_MUTEX TAO_EC_TPC_Dispatching::lock_
private

◆ queue_full_service_object_

TAO_EC_Queue_Full_Service_Object* TAO_EC_TPC_Dispatching::queue_full_service_object_
private

◆ thread_creation_flags_

int TAO_EC_TPC_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_EC_TPC_Dispatching::thread_manager_
private

◆ thread_priority_

int TAO_EC_TPC_Dispatching::thread_priority_
private

The priority of the dispatching threads.


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