#ifndef _M_DELAY_EXECUTOR_H #define _M_DELAY_EXECUTOR_H #include #include #include class DelayExecutor : protected ACE_Task_Base { public: DelayExecutor(); virtual ~DelayExecutor(); static DelayExecutor* instance(); int execute(ACE_Method_Request* new_req); int activate(int num_threads = 1, ACE_Method_Request* pre_svc_hook = NULL, ACE_Method_Request* post_svc_hook = NULL); int deactivate(); bool activated(); virtual int svc(); private: ACE_Activation_Queue queue_; ACE_Method_Request* pre_svc_hook_; ACE_Method_Request* post_svc_hook_; bool activated_; void activated(bool s); }; #endif // _M_DELAY_EXECUTOR_H