diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/Timer_Module.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/Timer_Module.h | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/Timer_Module.h b/TAO/orbsvcs/orbsvcs/Event/Timer_Module.h deleted file mode 100644 index 0f22e10b8cd..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/Timer_Module.h +++ /dev/null @@ -1,202 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -#ifndef TAO_EC_TIMER_MODULE_H -#define TAO_EC_TIMER_MODULE_H - -#include "ace/ACE.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/Event_Service_Constants.h" -#include "orbsvcs/orbsvcs/Event/RT_Task.h" - -class ACE_Command_Base; - -class TAO_ORBSVCS_Export TAO_EC_Timer_Module -{ - // = TITLE - // The timer managment module. - // - // = DESCRIPTION - // The Event Channel can use several strategies to dispatch - // timers, for instance, it can use the ORB reactor or a pool of - // reactors running at different priorities or a pool of - // Thread_Timer_Queue_Adapters running at different priorities - // also. - // This class is the abstract base class to abstract this - // strategies. - // -public: - virtual ~TAO_EC_Timer_Module (void); - // The dtor - - virtual void activate (void) = 0; - // Activate the threads, it waits until the threads are up and - // running. - - virtual void shutdown (void) = 0; - // Deactivate the threads, it waits until all the threads have - // terminated. - - virtual RtecScheduler::handle_t - rt_info (RtecScheduler::OS_Priority priority) = 0; - // The RT_Info handle for the "task" at <priority> - - virtual int schedule_timer (RtecScheduler::Preemption_Priority_t priority, - ACE_Command_Base* act, - const ACE_Time_Value& delta, - const ACE_Time_Value& interval) = 0; - // Add a timer at the given priority, returns the timer ID. - - virtual int cancel_timer (RtecScheduler::Preemption_Priority_t priority, - int id, - ACE_Command_Base*& act) = 0; - // Add a timer at the given priority. - - virtual int register_handler (RtecScheduler::Preemption_Priority_t priority, - ACE_Event_Handler* eh, - ACE_HANDLE handle) = 0; - // Register a handler????? - - virtual ACE_Reactor* reactor (RtecScheduler::Preemption_Priority_t priority) = 0; - // Obtain the reactor for the given priority. - // @@ This may prove tricky to implement with timer queues not based - // on reactors. -}; - -// **************************************************************** - -class TAO_ORBSVCS_Export TAO_EC_Timeout_Handler : public ACE_Event_Handler -{ - // = TITLE - // Event Service Timeout handler. - // - // = DESCRIPTION - // This is used by the Timer_Modules as an adaptor between the - // reactor (Event_Handler) and the Command objects. - // -public: - TAO_EC_Timeout_Handler (void); - // Default construction. - -private: - virtual int handle_timeout (const ACE_Time_Value &tv, - const void *act); - // Casts <act> to ACE_Command_Base and calls execute. -}; - -// **************************************************************** - -class TAO_ORBSVCS_Export TAO_EC_ST_Timer_Module : public TAO_EC_Timer_Module -{ - // = TITLE - // A single threaded implementation for the timer module. - // - // = DESCRIPTION - // This timer module uses a single Reactor to implement the timer, - // usually the ORB reactor is used for this purposes. - // -public: - TAO_EC_ST_Timer_Module (ACE_Reactor* reactor); - // The ctor. - - virtual ~TAO_EC_ST_Timer_Module (void); - // The dtor - - // = The TAO_EC_Timer_Module methods. - virtual void activate (void); - virtual void shutdown (void); - virtual RtecScheduler::handle_t - rt_info (RtecScheduler::Preemption_Priority_t priority); - virtual int schedule_timer (RtecScheduler::Preemption_Priority_t priority, - ACE_Command_Base* act, - const ACE_Time_Value& delta, - const ACE_Time_Value& interval); - virtual int cancel_timer (RtecScheduler::Preemption_Priority_t priority, - int id, - ACE_Command_Base*& act); - virtual int register_handler (RtecScheduler::Preemption_Priority_t priority, - ACE_Event_Handler* eh, - ACE_HANDLE handle); - virtual ACE_Reactor* reactor (RtecScheduler::Preemption_Priority_t priority); - -private: - ACE_Reactor* reactor_; - // The reactor. - - TAO_EC_Timeout_Handler timeout_handler_; - // To receive the timeouts. -}; - -// **************************************************************** - -class ACE_ES_Reactor_Task; - -class TAO_ORBSVCS_Export TAO_EC_RPT_Timer_Module : public TAO_EC_Timer_Module -{ - // - // = TITLE - // A timer module using reactor-per-thread. - // - // = DESCRIPTION - // This Timer Module uses a pool of ACE_ReactorTask to handle the - // dispatching of timeouts. In real-time multi-threaded enviroments - // each Reactor runs at a different priority. - // -public: - TAO_EC_RPT_Timer_Module (void); - // Create the Timer Module - - virtual ~TAO_EC_RPT_Timer_Module (void); - // The dtor also shutdowns the Task_Manager. - - typedef ACE_ES_Reactor_Task ReactorTask; - - ReactorTask* GetReactorTask(RtecScheduler::Preemption_Priority_t priority); - // Obtain the ReactorTask for the given priority. - // The Task must have been created already. - - ACE_RT_Thread_Manager* ThrMgr(); - // Returns a global ThreadManager for the Task pool. - - // = The TAO_EC_Timer_Module methods. - virtual void activate (void); - virtual void shutdown (void); - virtual RtecScheduler::handle_t - rt_info (RtecScheduler::Preemption_Priority_t priority); - virtual int schedule_timer (RtecScheduler::Preemption_Priority_t priority, - ACE_Command_Base* act, - const ACE_Time_Value& delta, - const ACE_Time_Value& interval); - virtual int cancel_timer (RtecScheduler::Preemption_Priority_t priority, - int id, - ACE_Command_Base*& act); - virtual int register_handler (RtecScheduler::Preemption_Priority_t priority, - ACE_Event_Handler* eh, - ACE_HANDLE handle); - virtual ACE_Reactor* reactor (RtecScheduler::Preemption_Priority_t priority); - -private: - int shutdown_; - // The reactors are shutdown, do not attempt to restart them. - - ReactorTask *reactorTasks[ACE_Scheduler_MAX_PRIORITIES]; - // The set of ReactorTasks - - ACE_RT_Thread_Manager thr_mgr; - // The thread manager. - - TAO_EC_Timeout_Handler timeout_handler_; - // To receive the timeouts. -}; - -#if defined (__ACE_INLINE__) -#include "Timer_Module.i" -#endif /* __ACE_INLINE__ */ - -#endif /* TAO_EC_TIMER_MODULE_H */ |