ACE  6.1.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ACE_Proactor_Timer_Handler Class Reference

A Handler for timer. It helps in the management of timers registered with the Proactor. More...

Inheritance diagram for ACE_Proactor_Timer_Handler:
Inheritance graph
[legend]
Collaboration diagram for ACE_Proactor_Timer_Handler:
Collaboration graph
[legend]

Public Member Functions

 ACE_Proactor_Timer_Handler (ACE_Proactor &proactor)
 Constructor.
 
virtual ~ACE_Proactor_Timer_Handler (void)
 Destructor.
 
int destroy (void)
 
int signal (void)
 
- Public Member Functions inherited from ACE_Task< ACE_NULL_SYNCH >
 ACE_Task (ACE_Thread_Manager *thr_mgr=0, ACE_Message_Queue< ACE_SYNCH_USE, ACE_System_Time_Policy > *mq=0)
 
virtual ~ACE_Task (void)
 Destructor.
 
ACE_Message_Queue
< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
msg_queue (void)
 Gets the message queue associated with this task.
 
void msg_queue (ACE_Message_Queue< ACE_SYNCH_USE, ACE_System_Time_Policy > *)
 Sets the message queue associated with this task.
 
ACE_Time_Value_T
< ACE_System_Time_Policy
gettimeofday (void) const
 
void set_time_policy (ACE_System_Time_Policyconst &time_policy)
 
int putq (ACE_Message_Block *, ACE_Time_Value *timeout=0)
 
int getq (ACE_Message_Block *&mb, ACE_Time_Value *timeout=0)
 
int ungetq (ACE_Message_Block *, ACE_Time_Value *timeout=0)
 
int reply (ACE_Message_Block *mb, ACE_Time_Value *tv=0)
 
int put_next (ACE_Message_Block *msg, ACE_Time_Value *timeout=0)
 
const ACE_TCHARname (void) const
 
ACE_Task< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
next (void)
 Get next Task pointer.
 
void next (ACE_Task< ACE_SYNCH_USE, ACE_System_Time_Policy > *)
 Set next Task pointer.
 
ACE_Task< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
sibling (void)
 
ACE_Module< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
module (void) const
 Return the Task's Module if there is one, else returns 0.
 
int flush (u_long flag=ACE_Task_Flags::ACE_FLUSHALL)
 
void water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds, size_t)
 Manipulate watermarks.
 
void dump (void) const
 Dump the state of an object.
 
- Public Member Functions inherited from ACE_Task_Base
 ACE_Task_Base (ACE_Thread_Manager *=0)
 Constructor.
 
virtual ~ACE_Task_Base (void)
 Destructor.
 
virtual int open (void *args=0)
 Default ACE_Task open routine.
 
virtual int close (u_long flags=0)
 Default ACE_Task close routine.
 
virtual int module_closed (void)
 
virtual int put (ACE_Message_Block *, ACE_Time_Value *=0)
 Default ACE_Task put routine.
 
virtual int activate (long flags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, int n_threads=1, int force_active=0, long priority=ACE_DEFAULT_THREAD_PRIORITY, int grp_id=-1, ACE_Task_Base *task=0, ACE_hthread_t thread_handles[]=0, void *stack[]=0, size_t stack_size[]=0, ACE_thread_t thread_ids[]=0, const char *thr_name[]=0)
 
virtual int wait (void)
 Wait for all threads running in a task to exit.
 
virtual int suspend (void)
 Suspend a task.
 
virtual int resume (void)
 Resume a suspended task.
 
int grp_id (void) const
 Get the current group id.
 
void grp_id (int)
 Set the current group id.
 
ACE_Thread_Managerthr_mgr (void) const
 Get the thread manager associated with this Task.
 
void thr_mgr (ACE_Thread_Manager *)
 Set the thread manager associated with this Task.
 
int is_reader (void) const
 True if queue is a reader, else false.
 
int is_writer (void) const
 True if queue is a writer, else false.
 
size_t thr_count (void) const
 
ACE_thread_t last_thread (void) const
 
- Public Member Functions inherited from ACE_Service_Object
 ACE_Service_Object (ACE_Reactor *=0)
 Constructor.
 
virtual ~ACE_Service_Object (void)
 Destructor.
 
- Public Member Functions inherited from ACE_Event_Handler
virtual ~ACE_Event_Handler (void)
 Destructor is virtual to enable proper cleanup.
 
virtual ACE_HANDLE get_handle (void) const
 Get the I/O handle.
 
virtual void set_handle (ACE_HANDLE)
 Set the I/O handle.
 
virtual int priority (void) const
 
virtual void priority (int priority)
 Set the priority of the Event_Handler.
 
virtual int handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 Called when input events occur (e.g., connection or data).
 
virtual int handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 Called when an exceptional events occur (e.g., SIGURG).
 
virtual int handle_timeout (const ACE_Time_Value &current_time, const void *act=0)
 
virtual int handle_exit (ACE_Process *)
 Called when a process exits.
 
virtual int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
 
virtual int handle_signal (int signum, siginfo_t *=0, ucontext_t *=0)
 
virtual int resume_handler (void)
 
virtual int handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE)
 
virtual int handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE)
 
virtual void reactor (ACE_Reactor *reactor)
 Set the event demultiplexors.
 
virtual ACE_Reactorreactor (void) const
 Get the event demultiplexors.
 
virtual
ACE_Reactor_Timer_Interface
reactor_timer_interface (void) const
 Get only the reactor's timer related interface.
 
virtual Reference_Count add_reference (void)
 Increment reference count on the handler.
 
virtual Reference_Count remove_reference (void)
 Decrement reference count on the handler.
 
Reference_Counting_Policyreference_counting_policy (void)
 Current Reference_Counting_Policy.
 
- Public Member Functions inherited from ACE_Shared_Object
 ACE_Shared_Object (void)
 Constructor.
 
virtual ~ACE_Shared_Object (void)
 Destructor.
 
virtual int init (int argc, ACE_TCHAR *argv[])
 Initializes object when dynamic linking occurs.
 
virtual int fini (void)
 Terminates object when dynamic unlinking occurs.
 
virtual int info (ACE_TCHAR **info_string, size_t length=0) const
 Returns information on a service object.
 

Protected Member Functions

virtual int svc (void)
 

Protected Attributes

ACE_Auto_Event timer_event_
 Event to wait on.
 
ACE_Proactorproactor_
 Proactor.
 
int shutting_down_
 Flag used to indicate when we are shutting down.
 

Additional Inherited Members

- Public Types inherited from ACE_Event_Handler
enum  {
  LO_PRIORITY = 0, HI_PRIORITY = 10, NULL_MASK = 0, READ_MASK = (1 << 0),
  WRITE_MASK = (1 << 1), EXCEPT_MASK = (1 << 2), ACCEPT_MASK = (1 << 3), CONNECT_MASK = (1 << 4),
  TIMER_MASK = (1 << 5), QOS_MASK = (1 << 6), GROUP_QOS_MASK = (1 << 7), SIGNAL_MASK = (1 << 8),
  ALL_EVENTS_MASK, RWE_MASK, DONT_CALL = (1 << 9)
}
 
enum  { ACE_EVENT_HANDLER_NOT_RESUMED = -1, ACE_REACTOR_RESUMES_HANDLER = 0, ACE_APPLICATION_RESUMES_HANDLER }
 
typedef long Reference_Count
 Reference count type.
 
- Static Public Member Functions inherited from ACE_Task_Base
static ACE_THR_FUNC_RETURN svc_run (void *)
 Routine that runs the service routine as a daemon thread.
 
static void cleanup (void *object, void *params)
 
- Public Attributes inherited from ACE_Task< ACE_NULL_SYNCH >
ACE_Message_Queue
< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
msg_queue_
 Queue of messages on the ACE_Task..
 
bool delete_msg_queue_
 true if should delete Message_Queue, false otherwise.
 
ACE_Module< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
mod_
 Back-pointer to the enclosing module.
 
ACE_Task< ACE_SYNCH_USE,
ACE_System_Time_Policy > * 
next_
 Pointer to adjacent ACE_Task.
 
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 
- Protected Types inherited from ACE_Event_Handler
typedef ACE_Atomic_Op
< ACE_SYNCH_MUTEX,
Reference_Count
Atomic_Reference_Count
 Typedef for implementation of reference counting.
 

Detailed Description

A Handler for timer. It helps in the management of timers registered with the Proactor.

This object has a thread that will wait on the earliest time in a list of timers and an event. When a timer expires, the thread will post a completion event on the port and go back to waiting on the timer queue and event. If the event is signaled, the thread will refresh the time it is currently waiting on (in case the earliest time has changed).

Constructor & Destructor Documentation

ACE_Proactor_Timer_Handler::ACE_Proactor_Timer_Handler ( ACE_Proactor proactor)

Constructor.

ACE_Proactor_Timer_Handler::~ACE_Proactor_Timer_Handler ( void  )
virtual

Destructor.

Member Function Documentation

int ACE_Proactor_Timer_Handler::destroy ( void  )

Proactor calls this to shut down the timer handler gracefully. Just calling the destructor alone doesnt do what <destroy> does. <destroy> make sure the thread exits properly.

int ACE_Proactor_Timer_Handler::signal ( void  )

Proactor calls this to refresh the timer event thread, to wake up the thread from a sleep. This is needed to make the thread recompute its sleep time after changes to the timer queue.

int ACE_Proactor_Timer_Handler::svc ( void  )
protectedvirtual

Run by a daemon thread to handle deferred processing. In other words, this method will do the waiting on the earliest timer and event.

Reimplemented from ACE_Task_Base.

Member Data Documentation

ACE_Proactor& ACE_Proactor_Timer_Handler::proactor_
protected

Proactor.

int ACE_Proactor_Timer_Handler::shutting_down_
protected

Flag used to indicate when we are shutting down.

ACE_Auto_Event ACE_Proactor_Timer_Handler::timer_event_
protected

Event to wait on.


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