#include <EC_MT_Dispatching.h>


Public Member Functions | |
| TAO_EC_MT_Dispatching (int nthreads, int thread_creation_flags, int thread_priority, int force_activate, TAO_EC_Queue_Full_Service_Object *queue_full_service_object_name) | |
| 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) |
| virtual void | push_nocopy (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info) |
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_EC_Dispatching_Task | task_ |
| The dispatching task. | |
| TAO_SYNCH_MUTEX | lock_ |
| Synchronize access to internal data. | |
| int | active_ |
| Are the threads running? | |
| TAO_EC_Queue_Full_Service_Object * | queue_full_service_object_ |
| Service Object information. | |
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.
| TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_EC_MT_Dispatching::TAO_EC_MT_Dispatching | ( | int | nthreads, | |
| int | thread_creation_flags, | |||
| int | thread_priority, | |||
| int | force_activate, | |||
| TAO_EC_Queue_Full_Service_Object * | queue_full_service_object_name | |||
| ) |
Constructor It will create nthreads servicing threads...
| void TAO_EC_MT_Dispatching::activate | ( | void | ) | [virtual] |
Initialize all the data structures, activate any internal threads, etc.
Implements 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 | |||
| ) | [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.
| void TAO_EC_MT_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.
| 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.
Implements TAO_EC_Dispatching.
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.
Service Object information.
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.
Use our own thread manager.
int TAO_EC_MT_Dispatching::thread_priority_ [private] |
The priority of the dispatching threads.
1.5.8