summaryrefslogtreecommitdiff
path: root/ace/Timer_Queue.h
blob: 42bf2fb5248877fcf30c4a01abc9957295772b1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/* -*- C++ -*- */
// $Id$

// ============================================================================
//
// = LIBRARY
//    ace
// 
// = FILENAME
//    Timer_Queue.h
//
// = AUTHOR
//    Doug Schmidt and Irfan Pyarali
// 
// ============================================================================

#if !defined (ACE_TIMER_QUEUE_H)
#define ACE_TIMER_QUEUE_H

#include "ace/Synch.h"
#include "ace/Timer_Queue_T.h"

class ACE_Export ACE_Event_Handler_Handle_Timeout_Upcall
  // = TITLE 
  //      Functor for Timer_Queues.
  //
  // = DESCRIPTION
  //      This class implements the functor required by the Timer
  //      Queue to call <handle_timeout> on ACE_Event_Handlers.
{
public:
  typedef ACE_Timer_Queue_T<ACE_Event_Handler *, 
                            ACE_Event_Handler_Handle_Timeout_Upcall, 
                            ACE_SYNCH_RECURSIVE_MUTEX> 
          TIMER_QUEUE;
  
  int timeout (TIMER_QUEUE &timer_queue,
	       ACE_Event_Handler *handler,
	       const void *arg,
	       const ACE_Time_Value &cur_time);
  // This method is called when the timer expires
  
  int cancellation (TIMER_QUEUE &timer_queue,
		    ACE_Event_Handler *handler);
  // This method is called when the timer is canceled
};

// The following typedef are here for ease of use and backward
// compatibility.

typedef ACE_Timer_Node_T<ACE_Event_Handler *, 
	                 ACE_Event_Handler_Handle_Timeout_Upcall, 
                         ACE_SYNCH_RECURSIVE_MUTEX>
	ACE_Timer_Node;

typedef ACE_Timer_Queue_T<ACE_Event_Handler *, 
	                  ACE_Event_Handler_Handle_Timeout_Upcall, 
                          ACE_SYNCH_RECURSIVE_MUTEX> 
	ACE_Timer_Queue;

typedef ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, 
                                   ACE_Event_Handler_Handle_Timeout_Upcall, 
                                   ACE_SYNCH_RECURSIVE_MUTEX> 
	ACE_Timer_Queue_Iterator;

#endif /* ACE_TIMER_QUEUE_H */