15 #ifndef epicsTimerPrivate_h 16 #define epicsTimerPrivate_h 27 # define debugPrintf(ARGSINPAREN) printf ARGSINPAREN 29 # define debugPrintf(ARGSINPAREN) 37 void start (
class epicsTimerNotify &,
const epicsTime & );
38 void start (
class epicsTimerNotify &,
double delaySeconds );
41 void show (
unsigned int level )
const;
49 enum state { statePending = 45, stateActive = 56, stateLimbo = 78 };
52 epicsTimerNotify * pNotify;
53 void privateStart ( epicsTimerNotify & notify,
const epicsTime & );
60 void operator delete (
void * );
75 expireStatus expire ( const epicsTime &
currentTime );
82 void operator delete (
void * );
86 using
std :: type_info;
88 class timerQueue : public epicsTimerQueue {
91 virtual ~timerQueue ();
92 epicsTimer & createTimer ();
94 double process (
const epicsTime & currentTime );
95 void show (
unsigned int level )
const;
102 epicsTimerQueueNotify & notify;
105 epicsTime exceptMsgTimeStamp;
107 static const double exceptMsgMinPeriod;
108 void printExceptMsg (
const char * pName,
109 const type_info &
type );
111 timerQueue & operator = (
const timerQueue & );
113 friend struct epicsTimerForC;
122 unsigned referenceCount;
129 public epicsThreadRunable,
public epicsTimerQueueNotify,
135 epicsTimer & createTimer ();
137 void show (
unsigned int level )
const;
138 bool sharingOK ()
const;
139 unsigned threadPriority ()
const;
148 const double sleepQuantum;
155 void _printLastChanceExceptionMessage (
156 const char * pExceptionTypeName,
157 const char * pExceptionContext );
158 epicsTimerQueue & getEpicsTimerQueue ();
183 epicsTimer & createTimer ();
185 void show (
unsigned int level )
const;
190 epicsTimerQueue & getEpicsTimerQueue ();
215 public tsDLNode < epicsTimerQueueActiveForC > {
219 void *
operator new ( size_t );
220 void operator delete (
void * );
230 return this->okToShare;
235 return thread.getPriority ();
238 inline void * timer::operator
new (
size_t size,
241 return freeList.allocate ( size );
244 #ifdef CXX_PLACEMENT_DELETE 245 inline void timer::operator
delete (
void * pCadaver,
248 freeList.release ( pCadaver );
252 inline void * epicsTimerForC::operator
new (
size_t size,
255 return freeList.allocate ( size );
258 #ifdef CXX_PLACEMENT_DELETE 259 inline void epicsTimerForC::operator
delete (
void * pCadaver,
262 freeList.release ( pCadaver );
266 inline void * epicsTimerQueueActiveForC::operator
new (
size_t size )
268 return ::operator
new ( size );
271 inline void epicsTimerQueueActiveForC::operator
delete (
void * pCadaver )
273 ::operator
delete ( pCadaver );
276 #endif // epicsTimerPrivate_h void show(unsigned int level) const
pvd::StructureConstPtr type
unsigned threadPriority() const
epicsPlacementDeleteOperator((void *, tsFreeList< timer, 0x20 > &)) protecte ~timer)()
void(* epicsTimerCallback)(void *pPrivate)
double(* epicsTimerQueueNotifyQuantum)(void *pPrivate)
expireInfo getExpireInfo() const
char * allocate(unsigned int n)
epicsSingleton< timerQueueActiveMgr >::reference RefMgr
epicsSingleton< timerQueueActiveMgr > timerQueueMgrEPICS
Compiler specific declarations.
#define epicsThreadPriorityMin
void start(class epicsTimerNotify &, const epicsTime &)
epicsSingleton< timerQueueActiveMgr >::reference RefThis
void(* epicsTimerQueueNotifyReschedule)(void *pPrivate)