![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999-2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: splitContentTimer.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00011 00014 00015 #ifndef DtSplitContentTimer_H_ 00016 #define DtSplitContentTimer_H_ 00017 00018 #include "vrfutil/vrfutilDefines.h" 00019 00020 #include <map> 00021 #include <vlutil/vlTime.h> 00022 00023 class DtSplitMessageKey; 00024 00025 typedef void (*DtSplitContentExpiredFcn)(const DtSplitMessageKey& key, void *pUsr); 00026 00033 class DT_DLL_vrfutil DtSplitContentTimer 00034 { 00035 public: 00036 00038 typedef std::map<DtSplitMessageKey, DtTime> DtTimeoutMap; 00039 00040 public: 00041 00043 DtSplitContentTimer(); 00044 00046 virtual ~DtSplitContentTimer(); 00047 00050 virtual void addTimeoutEntry(const DtSplitMessageKey& key, DtTime startTime); 00051 00053 virtual void clear(); 00054 00060 virtual void evaluateTimeouts(DtTime timeNow, DtSplitContentExpiredFcn pFcn, void* pUsr); 00061 00063 virtual bool findEntry(const DtSplitMessageKey& key, DtTime& retTime); 00064 00067 virtual DtTime lastTimeoutCheckTime() const; 00068 virtual void setLastTimeoutCheckTime(DtTime nTime); 00070 00073 virtual DtTime timeoutCheckInterval() const; 00074 virtual void setTimeoutCheckInterval(DtTime nSecs); 00076 00079 virtual DtTime timeoutDuration() const; 00080 virtual void setTimeoutDuration(DtTime nSecs); 00082 00084 virtual void removeTimeoutEntry(const DtSplitMessageKey& key); 00085 00086 protected: 00087 00090 DtSplitContentTimer(const DtSplitContentTimer& orig); 00091 00092 const DtSplitContentTimer& operator=( 00093 const DtSplitContentTimer& orig); 00095 00096 protected: 00097 DtTime myLastTimeoutCheckTime; 00098 DtTime myTimeoutCheckInterval; 00099 DtTime myTimeoutDuration; 00100 DtTimeoutMap myTimeoutMap; 00101 00102 static const DtTime theDefaultTimeoutCheckInterval; 00103 static const DtTime theDefaultTimeoutDuration; 00104 }; 00105 00106 inline DtTime DtSplitContentTimer::lastTimeoutCheckTime() const 00107 { 00108 return (myLastTimeoutCheckTime); 00109 } 00110 00111 inline void DtSplitContentTimer::setLastTimeoutCheckTime(DtTime nTime) 00112 { 00113 myLastTimeoutCheckTime = nTime; 00114 } 00115 00116 inline DtTime DtSplitContentTimer::timeoutCheckInterval() const 00117 { 00118 return (myTimeoutCheckInterval); 00119 } 00120 00121 inline void DtSplitContentTimer::setTimeoutCheckInterval(DtTime nSecs) 00122 { 00123 myTimeoutCheckInterval = nSecs; 00124 } 00125 00126 inline DtTime DtSplitContentTimer::timeoutDuration() const 00127 { 00128 return (myTimeoutDuration); 00129 } 00130 00131 inline void DtSplitContentTimer::setTimeoutDuration(DtTime nSecs) 00132 { 00133 myTimeoutDuration = nSecs; 00134 } 00135 00136 #endif 00137 00138