Hauptseite | Klassenhierarchie | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente | Zusätzliche Informationen

U_TIMER.H

gehe zur Dokumentation dieser Datei
00001 //############################################################################# 00002 // // 00003 // U_TIMER.H // 00004 // Subsystem: Utilities - Timer // 00005 // Benutzung durch andere Subsysteme erforderlich: JA // 00006 // Implementation: U_TIMER.CPP // 00007 //---------------------------------------------------------------------------// 00008 // Autoren: Thomas Kullmann, Günther Reinecker // 00009 // Stand: 01.12.2002 // 00010 // // 00011 //############################################################################# 00012 00013 #ifndef __U_TIMER_H 00014 #define __U_TIMER_H 00015 00016 #include "utils\u_values.h" 00017 #include "utils\u_lists.h" 00018 #include <mmreg.h> // <msacm.h> 00019 #include <msacm.h> // MMRESULT 00020 //ph 00021 00022 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||-- 00023 00024 //############################################################################## 00025 // TBasicTimer 00026 //############################################################################## 00027 00028 class _CURVECLASS TBasicTimer 00029 { // abstrakte Basisklasse für Timer, das systemabhängige Verhalten wird in TTimer16 und TTimerMM erweitert 00030 //----------------------------------------------------------------------------- 00031 // Konstruktor-Destruktor 00032 private: 00033 TBasicTimer ( TBasicTimer& ) {} // kein Copy-Konstruktor: leer implementiert 00034 00035 public: 00036 // initialisiert den Timer und setzt <aDelay> als Intervall [in Millisek.] in der das Event aufgerufen werden soll 00037 // der Timer wird noch NICHT gestartet 00038 TBasicTimer ( const UINT= 1000 ); 00039 00040 //----------------------------------------------------------------------------- 00041 // get/ set 00042 public: 00043 // ==> Intervall [in Millisek.] in der das Event aufgerufen wird 00044 UINT GetDelay ( void ); 00045 00046 // setzt <aDelay> als Intervall [in Millisek.] in der das Event aufgerufen werden soll 00047 // wird erst beim nächsten StartTimer-Aufruf übernommen (oder wenn das Event das nächste Mal aufgerufen wird) 00048 // ==> <m_Delay> ODER 0 00049 UINT SetDelay ( const UINT= 1000 ); 00050 00051 // ==> TRUE <--> Timer erfolgreich gestartet 00052 virtual BOOL IsStarted ( void )= 0; 00053 00054 //----------------------------------------------------------------------------- 00055 // start/ stop 00056 public: 00057 // started den Timer 00058 // ==> TRUE <--> Timer erfolgreich gestartet 00059 BOOL StartTimer ( void ); 00060 00061 // started den Timer und setzt <aDelay> als Intervall [in Millisek.] in der das Event aufgrufen wird 00062 // ==> TRUE <--> Timer erfolgreich gestartet 00063 BOOL StartTimer ( const UINT ); // kein Defaultparameter da sonst in Konflikt zu StartTimer(), wo <m_Delay> verwendet wird 00064 00065 // stoppt den Timer 00066 void StopTimer ( void ); 00067 00068 //----------------------------------------------------------------------------- 00069 // start/ stop ( + Ereignis sofort auslösen) 00070 public: 00071 // siehe StartTimer ( void ) 00072 BOOL StartTimerIm ( void ); 00073 00074 // siehe StartTimer ( const UINT ) 00075 BOOL StartTimerIm ( const UINT ); // kein Defaultparameter da sonst in Konflikt zu StartTimer(), wo <m_Delay> verwendet wird 00076 00077 // siehe StopTimer ( void ) 00078 void StopTimerIm ( void ); 00079 00080 // von Hand auslösen 00081 void Immediately ( void ); 00082 00083 //----------------------------------------------------------------------------- 00084 // event 00085 protected: 00086 // Event zum Überschreiben 00087 virtual void OnTimer ( TBasicTimer *const )= 0; 00088 00089 //----------------------------------------------------------------------------- 00090 // private 00091 protected: 00092 UINT m_Delay; // Intervall [in Millisek.] in der das Event aufgerufen wird ODER 0 00093 TIMECAPS m_Tc; // Intervallgrenzen für gültige Werte von <m_Delay> 00094 BOOL m_WantTimer; // haben Anwender ODER TimedEvent den Timer gestoppt? 00095 //------------------------------------ start/ stop ----------------------------- 00096 private: 00097 virtual BOOL Start ( void )= 0; 00098 virtual void Stop ( void )= 0; 00099 }; 00100 00101 //############################################################################## 00102 // TTimer16 00103 //############################################################################## 00104 00105 // Kommentare siehe TBasicTimer 00106 class _CURVECLASS TTimer16 : public TBasicTimer 00107 { // Win16 Anwendungen und Win3.11, 9x, Me 00108 //----------------------------------------------------------------------------- 00109 // Konstruktor-Destruktor 00110 public: 00111 TTimer16 ( const UINT= 1000 ); 00112 virtual ~TTimer16 ( void ); 00113 00114 //----------------------------------------------------------------------------- 00115 // get/ set 00116 public: 00117 virtual BOOL IsStarted ( void ); 00118 00119 //----------------------------------------------------------------------------- 00120 // start/ stop 00121 private: 00122 virtual BOOL Start ( void ); 00123 virtual void Stop ( void ); 00124 00125 //----------------------------------------------------------------------------- 00126 // ATTRIBUTE 00127 protected: 00128 UINT m_TimerID; // Identifikation des Timers 00129 00130 //----------------------------------------------------------------------------- 00131 // STATIC 00132 protected: 00133 static TIndList s_TimerList; // Liste der gestarteten Timer 00134 00135 private: 00136 // das Event das alle <m_Delay> Millisek. aufgerufen wird; muss static sein!!! 00137 static void CALLBACK TimedEvent( HWND, UINT, UINT, DWORD ); 00138 }; 00139 00140 //############################################################################## 00141 // TTimerMM 00142 //############################################################################## 00143 00144 // Kommentare siehe TBasicTimer 00145 class _CURVECLASS TTimerMM : public TBasicTimer 00146 { // Win32 Anwendungen und WinNT, 2k, XP (als allein verwendetes Betriebssystem!) 00147 //----------------------------------------------------------------------------- 00148 // Konstruktor-Destruktor 00149 public: 00150 TTimerMM ( const UINT= 1000 ); 00151 virtual ~TTimerMM ( void ); 00152 00153 //----------------------------------------------------------------------------- 00154 // get/ set 00155 public: 00156 virtual BOOL IsStarted ( void ); 00157 00158 //----------------------------------------------------------------------------- 00159 // start/ stop 00160 private: 00161 virtual BOOL Start ( void ); 00162 virtual void Stop ( void ); 00163 00164 //----------------------------------------------------------------------------- 00165 // ATTIBUTE 00166 protected: 00167 MMRESULT m_TimerID; //Identifikation des Timers 00168 00169 //----------------------------------------------------------------------------- 00170 // STATIC 00171 private: 00172 //das Event das alle <m_Delay> Millisek. aufgerufen wird; muss static sein!!! 00173 static void CALLBACK TimedEvent( UINT, UINT, DWORD, DWORD, DWORD ); 00174 }; 00175 00176 //############################################################################## 00177 // TTimer 00178 //############################################################################## 00179 00180 typedef TTimer16 TTimer; // Win32-Anwendungen oder Win98, WinMe, WinNT, Win2k, WinXP als Betriebsystem (unter Win3.1* und Win95: TTimerMM) 00181 00182 //############################################################################## 00183 // ITimer 00184 //############################################################################## 00185 00186 class TInterfaceTimer; // forward deklariert 00187 00188 class _CURVECLASS ITimer 00189 { //abstrakte Klasse bzw. Interface 00190 public: 00191 virtual void OnTimer ( TBasicTimer *const )= 0; 00192 }; 00193 00194 //############################################################################## 00195 // TInterfaceTimer 00196 //############################################################################## 00197 00198 class _CURVECLASS TInterfaceTimer : public TTimer 00199 { 00200 //----------------------------------------------------------------------------- 00201 // Konstruktor-Destruktor 00202 public: 00203 TInterfaceTimer ( ITimer*, const UINT= 1000 ); 00204 00205 //----------------------------------------------------------------------------- 00206 // EREIGNIS(SE) 00207 protected: 00208 virtual void OnTimer ( TBasicTimer *const ); 00209 00210 //----------------------------------------------------------------------------- 00211 // ATTRIBUTE 00212 private: 00213 ITimer *m_lnkInterface; 00214 }; 00215 00216 //############################################################################## 00217 // TWindowTimer 00218 //############################################################################## 00219 00220 class _CURVECLASS TWindowTimer : public TTimer 00221 { 00222 //----------------------------------------------------------------------------- 00223 // Konstruktor-Destruktor 00224 public: 00225 TWindowTimer ( HWND, const UINT= 1000 ); 00226 00227 //----------------------------------------------------------------------------- 00228 // EREIGNIS(SE) 00229 protected: 00230 virtual void OnTimer ( TBasicTimer *const ); 00231 00232 //----------------------------------------------------------------------------- 00233 // ATTRIBUTE 00234 private: 00235 HWND m_lnkWnd; 00236 }; 00237 00238 #endif //__U_TIMER_H 00239 00240 //############################################################################# 00241 // LASTLINE 00242 //#############################################################################

Erzeugt am Sat Nov 13 12:48:11 2004 für XCTL32 von doxygen 1.3.7