diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h b/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h deleted file mode 100644 index 121e9bdc452..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// ORBSVCS Real-time Event Channel -// -// = FILENAME -// EC_Priority_Dispatching -// -// = AUTHOR -// Carlos O'Ryan (coryan@cs.wustl.edu) -// -// = CREDITS -// Based on previous work by Tim Harrison (harrison@cs.wustl.edu) -// and other members of the DOC group. -// More details can be found in: -// http://www.cs.wustl.edu/~schmidt/oopsla.ps.gz -// http://www.cs.wustl.edu/~schmidt/JSAC-98.ps.gz -// -// -// ============================================================================ - -#ifndef TAO_EC_PRIORITY_DISPATCHING_H -#define TAO_EC_PRIORITY_DISPATCHING_H - -#include "orbsvcs/RtecSchedulerC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "EC_Dispatching.h" - -class TAO_EC_Dispatching_Task; -class TAO_EC_Event_Channel; - -class TAO_ORBSVCS_Export TAO_EC_Priority_Dispatching : public TAO_EC_Dispatching -{ - // = TITLE - // Dispatching strategy that minimizes priority inversion. - // - // = DESCRIPTION - // This strategy uses multiple queues, each serviced by a thread - // at different priority. This minimizes priority inversion - // because the consumers at higher priority are serviced before - // consumers at lower priority. - // It is more flexible than using the supplier thread to dispatch - // because it allows high-priority suppliers to push events to - // low-priority consumers (and vice-versa). - // It also isolates the supplier threads from the time spent on - // upcalls to the consumer objects, making the system easier to - // analyze and schedule. - // -public: - TAO_EC_Priority_Dispatching (TAO_EC_Event_Channel* ec); - // The scheduler is used to find the range of priorities and similar - // info. - - // = The EC_Dispatching methods. - virtual void activate (void); - virtual void shutdown (void); - virtual void push (TAO_EC_ProxyPushSupplier* proxy, - const RtecEventComm::EventSet& event, - TAO_EC_QOS_Info& qos_info, - CORBA::Environment& env); - virtual void push_nocopy (TAO_EC_ProxyPushSupplier* proxy, - RtecEventComm::EventSet& event, - TAO_EC_QOS_Info& qos_info, - CORBA::Environment& env); - -private: - ACE_Thread_Manager thread_manager_; - // Use our own thread manager. - - int ntasks_; - // The number of active tasks - - TAO_EC_Dispatching_Task** tasks_; - // The tasks.. - - RtecScheduler::Scheduler_var scheduler_; - // The scheduler -}; - -#if defined (__ACE_INLINE__) -#include "EC_Priority_Dispatching.i" -#endif /* __ACE_INLINE__ */ - -#endif /* TAO_EC_PRIORITY_DISPATCHING_H */ |