Garmin Fleet Management Controller  2.19.0
TimerManager.cpp
Go to the documentation of this file.
1 /*********************************************************************
2 *
3 * MODULE NAME:
4 * TimerManager.cpp
5 *
6 * Copyright 2008-2009 by Garmin Ltd. or its subsidiaries.
7 *---------------------------------------------------------------------
8 * $NoKeywords$
9 *********************************************************************/
10 
11 #include "stdafx.h"
12 #include <cassert>
13 #include "TimerManager.h"
14 
16 
17 //----------------------------------------------------------------------
21 //----------------------------------------------------------------------
23 {
24  if( sInstance == NULL )
25  {
26  sInstance = new TimerManager;
28  }
29  return sInstance;
30 }
31 
32 //----------------------------------------------------------------------
35 //----------------------------------------------------------------------
37 {
38  delete sInstance;
39  sInstance = NULL;
40 }
41 
42 //----------------------------------------------------------------------
44 //----------------------------------------------------------------------
46 {
47 }
48 
49 //----------------------------------------------------------------------
51 //----------------------------------------------------------------------
53 {
54 }
55 
56 //----------------------------------------------------------------------
59 //----------------------------------------------------------------------
61  (
62  TimerListener * aListener
63  )
64 {
65  getInstance()->instanceAddListener( aListener );
66 }
67 
68 //----------------------------------------------------------------------
71 //----------------------------------------------------------------------
73  (
74  TimerListener * aListener
75  )
76 {
77  assert( aListener != NULL );
78  mListeners.push_back( aListener );
79 }
80 
81 //----------------------------------------------------------------------
84 //----------------------------------------------------------------------
86  (
87  TimerListener * aListener
88  )
89 {
90  getInstance()->instanceRemoveListener( aListener );
91 }
92 
93 //----------------------------------------------------------------------
96 //----------------------------------------------------------------------
98  (
99  TimerListener * aListener
100  )
101 {
102  assert( aListener != NULL );
103  mListeners.remove( aListener );
104 }
105 
106 //----------------------------------------------------------------------
110 //----------------------------------------------------------------------
112 {
114 }
115 
116 //----------------------------------------------------------------------
120 //----------------------------------------------------------------------
122 {
123  std::list<TimerListener *>::iterator iter;
124 
125  for( iter = mListeners.begin(); iter != mListeners.end(); iter++ )
126  {
127  (*iter)->onTimer();
128  }
129 }
static void addListener(TimerListener *aListener)
Register a listener to receive periodic callbacks.
void instanceTick()
Timer tick.
static void removeListener(TimerListener *aListener)
Remove a TimerListener from the list that is called.
std::list< TimerListener * > mListeners
List of objects that will get periodic notifications.
Definition: TimerManager.h:61
static TimerManager * getInstance()
Get the TimerManager instance.
Manages timer (periodic) events.
Definition: TimerManager.h:25
static TimerManager * sInstance
Pointer to the one and only TimerManager instance.
Definition: TimerManager.h:58
TimerManager()
Constructor.
virtual ~TimerManager()
Destructor.
static void destroyInstance()
Destroy the TimerManager instance.
void instanceRemoveListener(TimerListener *aListener)
Remove a TimerListener from the list that is called.
Abstract base class for objects that need to do something periodically.
Definition: TimerListener.h:21
void instanceAddListener(TimerListener *aListener)
Register a listener to receive periodic callbacks.
static void tick()
Timer tick.