mrfioc2  2.3.0
Functions
evrGTIF.h File Reference
#include <epicsTypes.h>
#include <epicsTime.h>
#include <shareLib.h>
Include dependency graph for evrGTIF.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

epicsShareFunc int EVRInitTime ()
 
epicsShareFunc int EVRCurrentTime (epicsTimeStamp *pDest)
 
epicsShareFunc int EVREventTime (epicsTimeStamp *pDest, int event)
 

Function Documentation

◆ EVRCurrentTime()

epicsShareFunc int EVRCurrentTime ( epicsTimeStamp *  pDest)

Definition at line 95 of file evrGTIF.cpp.

96 {
97  return EVREventTime(pDest, epicsTimeEventCurrentTime);
98 }
int EVREventTime(epicsTimeStamp *pDest, int event)
Definition: evrGTIF.cpp:72

◆ EVREventTime()

epicsShareFunc int EVREventTime ( epicsTimeStamp *  pDest,
int  event 
)

Definition at line 72 of file evrGTIF.cpp.

73 {
74 try {
75  epicsMutexMustLock(lastLock);
76 
77  if(lastSrc) {
78  if(lastSrc->getTimeStamp(pDest, event)) {
79  epicsMutexUnlock(lastLock);
80  return epicsTimeOK;
81  }
82  }
83  priv p(pDest, event);
84  mrf::Object::visitObjects(&visitTime, (void*)&p);
85  epicsMutexUnlock(lastLock);
86  return p.ok;
87 } catch (std::exception& e) {
88  epicsMutexUnlock(lastLock);
89  epicsPrintf("EVREventTime failed: %s\n", e.what());
90  return S_time_unsynchronized;
91 }
92 }
static void visitObjects(bool(*)(Object *, void *), void *)
Definition: object.cpp:150
#define S_time_unsynchronized
Definition: evrGTIF.cpp:30
virtual bool getTimeStamp(epicsTimeStamp *ts, epicsUInt32 event)=0

◆ EVRInitTime()

epicsShareFunc int EVRInitTime ( )

Definition at line 45 of file evrGTIF.cpp.

46 {
47  if(lastLock)
48  return 0;
49 
50  lastLock = epicsMutexMustCreate();
51  return 0;
52 }