This is Unofficial EPICS BASE Doxygen Site
epicsTimer.h File Reference
#include <float.h>
#include "libComAPI.h"
#include "epicsTime.h"
#include "epicsThread.h"
+ Include dependency graph for epicsTimer.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct epicsTimerForCepicsTimerId
 
typedef void(* epicsTimerCallback) (void *pPrivate)
 
typedef struct epicsTimerQueueActiveForCepicsTimerQueueId
 
typedef struct epicsTimerQueuePassiveForCepicsTimerQueuePassiveId
 
typedef void(* epicsTimerQueueNotifyReschedule) (void *pPrivate)
 
typedef double(* epicsTimerQueueNotifyQuantum) (void *pPrivate)
 

Functions

LIBCOM_API epicsTimerQueueId epicsStdCall epicsTimerQueueAllocate (int okToShare, unsigned int threadPriority)
 
LIBCOM_API void epicsStdCall epicsTimerQueueRelease (epicsTimerQueueId)
 
LIBCOM_API epicsTimerId epicsStdCall epicsTimerQueueCreateTimer (epicsTimerQueueId queueid, epicsTimerCallback callback, void *arg)
 
LIBCOM_API void epicsStdCall epicsTimerQueueDestroyTimer (epicsTimerQueueId queueid, epicsTimerId id)
 
LIBCOM_API void epicsStdCall epicsTimerQueueShow (epicsTimerQueueId id, unsigned int level)
 
LIBCOM_API epicsTimerQueuePassiveId epicsStdCall epicsTimerQueuePassiveCreate (epicsTimerQueueNotifyReschedule, epicsTimerQueueNotifyQuantum, void *pPrivate)
 
LIBCOM_API void epicsStdCall epicsTimerQueuePassiveDestroy (epicsTimerQueuePassiveId)
 
LIBCOM_API epicsTimerId epicsStdCall epicsTimerQueuePassiveCreateTimer (epicsTimerQueuePassiveId queueid, epicsTimerCallback pCallback, void *pArg)
 
LIBCOM_API void epicsStdCall epicsTimerQueuePassiveDestroyTimer (epicsTimerQueuePassiveId queueid, epicsTimerId id)
 
LIBCOM_API double epicsStdCall epicsTimerQueuePassiveProcess (epicsTimerQueuePassiveId)
 
LIBCOM_API void epicsStdCall epicsTimerQueuePassiveShow (epicsTimerQueuePassiveId id, unsigned int level)
 
LIBCOM_API void epicsStdCall epicsTimerStartTime (epicsTimerId id, const epicsTimeStamp *pTime)
 
LIBCOM_API void epicsStdCall epicsTimerStartDelay (epicsTimerId id, double delaySeconds)
 
LIBCOM_API void epicsStdCall epicsTimerCancel (epicsTimerId id)
 
LIBCOM_API double epicsStdCall epicsTimerGetExpireDelay (epicsTimerId id)
 
LIBCOM_API void epicsStdCall epicsTimerShow (epicsTimerId id, unsigned int level)
 

Typedef Documentation

typedef void( * epicsTimerCallback) (void *pPrivate)

Definition at line 134 of file epicsTimer.h.

typedef struct epicsTimerForC* epicsTimerId

Definition at line 133 of file epicsTimer.h.

Definition at line 137 of file epicsTimer.h.

typedef double( * epicsTimerQueueNotifyQuantum) (void *pPrivate)

Definition at line 153 of file epicsTimer.h.

typedef void( * epicsTimerQueueNotifyReschedule) (void *pPrivate)

Definition at line 152 of file epicsTimer.h.

Definition at line 151 of file epicsTimer.h.

Function Documentation

LIBCOM_API void epicsStdCall epicsTimerCancel ( epicsTimerId  id)

Definition at line 260 of file epicsTimer.cpp.

261 {
262  pTmr->cancel ();
263 }
LIBCOM_API double epicsStdCall epicsTimerGetExpireDelay ( epicsTimerId  id)

Definition at line 265 of file epicsTimer.cpp.

266 {
267  return pTmr->getExpireDelay ();
268 }
LIBCOM_API epicsTimerQueueId epicsStdCall epicsTimerQueueAllocate ( int  okToShare,
unsigned int  threadPriority 
)

Definition at line 206 of file epicsTimer.cpp.

207 {
208  try {
209  epicsSingleton < timerQueueActiveMgr > :: reference ref =
212  ref->allocate ( ref, okToShare ? true : false, threadPriority );
213  return &tmr;
214  }
215  catch ( ... ) {
216  return 0;
217  }
218 }
reference getReference()
epicsSingleton< timerQueueActiveMgr > timerQueueMgrEPICS
LIBCOM_API epicsTimerId epicsStdCall epicsTimerQueueCreateTimer ( epicsTimerQueueId  queueid,
epicsTimerCallback  callback,
void *  arg 
)

Definition at line 225 of file epicsTimer.cpp.

227 {
228  try {
229  return & pQueue->createTimerForC ( pCallback, pArg );
230  }
231  catch ( ... ) {
232  return 0;
233  }
234 }
LIBCOM_API void epicsStdCall epicsTimerQueueDestroyTimer ( epicsTimerQueueId  queueid,
epicsTimerId  id 
)

Definition at line 242 of file epicsTimer.cpp.

244 {
245  pTmr->destroy ();
246 }
LIBCOM_API epicsTimerQueuePassiveId epicsStdCall epicsTimerQueuePassiveCreate ( epicsTimerQueueNotifyReschedule  ,
epicsTimerQueueNotifyQuantum  ,
void *  pPrivate 
)

Definition at line 149 of file epicsTimer.cpp.

153 {
154  try {
155  return new epicsTimerQueuePassiveForC (
156  pRescheduleCallbackIn,
157  pSleepQuantumCallbackIn,
158  pPrivateIn );
159  }
160  catch ( ... ) {
161  return 0;
162  }
163 }
LIBCOM_API epicsTimerId epicsStdCall epicsTimerQueuePassiveCreateTimer ( epicsTimerQueuePassiveId  queueid,
epicsTimerCallback  pCallback,
void *  pArg 
)

Definition at line 182 of file epicsTimer.cpp.

184 {
185  try {
186  return & pQueue->createTimerForC ( pCallback, pArg );
187  }
188  catch ( ... ) {
189  return 0;
190  }
191 }
LIBCOM_API void epicsStdCall epicsTimerQueuePassiveDestroy ( epicsTimerQueuePassiveId  )

Definition at line 166 of file epicsTimer.cpp.

167 {
168  pQueue->destroy ();
169 }
LIBCOM_API void epicsStdCall epicsTimerQueuePassiveDestroyTimer ( epicsTimerQueuePassiveId  queueid,
epicsTimerId  id 
)

Definition at line 193 of file epicsTimer.cpp.

195 {
196  pTmr->destroy ();
197 }
LIBCOM_API double epicsStdCall epicsTimerQueuePassiveProcess ( epicsTimerQueuePassiveId  )

Definition at line 172 of file epicsTimer.cpp.

173 {
174  try {
175  return pQueue->process ( epicsTime::getCurrent() );
176  }
177  catch ( ... ) {
178  return 1.0;
179  }
180 }
LIBCOM_API void epicsStdCall epicsTimerQueuePassiveShow ( epicsTimerQueuePassiveId  id,
unsigned int  level 
)

Definition at line 199 of file epicsTimer.cpp.

201 {
202  pQueue->show ( level );
203 }
LIBCOM_API void epicsStdCall epicsTimerQueueRelease ( epicsTimerQueueId  )

Definition at line 220 of file epicsTimer.cpp.

221 {
222  pQueue->release ();
223 }
LIBCOM_API void epicsStdCall epicsTimerQueueShow ( epicsTimerQueueId  id,
unsigned int  level 
)

Definition at line 236 of file epicsTimer.cpp.

238 {
239  pQueue->show ( level );
240 }
LIBCOM_API void epicsStdCall epicsTimerShow ( epicsTimerId  id,
unsigned int  level 
)

Definition at line 270 of file epicsTimer.cpp.

272 {
273  pTmr->timer::show ( level );
274 }
LIBCOM_API void epicsStdCall epicsTimerStartDelay ( epicsTimerId  id,
double  delaySeconds 
)

Definition at line 254 of file epicsTimer.cpp.

256 {
257  pTmr->start ( *pTmr, delaySeconds );
258 }
LIBCOM_API void epicsStdCall epicsTimerStartTime ( epicsTimerId  id,
const epicsTimeStamp pTime 
)

Definition at line 248 of file epicsTimer.cpp.

250 {
251  pTmr->start ( *pTmr, *pTime );
252 }