61 static void asTrapWriteInit(
void)
77 if(pasTrapWritePvt==0) asTrapWriteInit();
79 plistener->
func = func;
91 if(pasTrapWritePvt==0)
return;
94 while(pwriteMessage) {
100 if(plistenerPvt->
plistener == plistener) {
104 plistenerPvt = pnext;
114 const char *userid,
const char *hostid,
void *addr,
115 int dbrType,
int no_elements,
void *data)
120 if (pasTrapWritePvt == 0 ||
148 return pwriteMessage;
156 if (pwriteMessage == 0 ||
157 pasTrapWritePvt == 0)
return;
161 while (plistenerPvt) {
169 plistenerPvt = pnext;
LIBCOM_API void *epicsStdCall freeListCalloc(void *pvt)
void * freeListWriteMessage
struct asTrapWritePvt asTrapWritePvt
int dbrType
Data type from ca/db_access.h, NOT dbFldTypes.h.
#define ellCount(PLIST)
Report the number of nodes in a list.
void * serverSpecific
A field for use by the server.
void * data
Might be NULL if no data is available.
#define epicsMutexMustCreate()
Create an epicsMutex semaphore for use from C code.
void * asTrapWriteId
An identifier needed to unregister an listener.
LIBCOM_API void epicsStdCall freeListInitPvt(void **ppvt, int size, int nmalloc)
void epicsStdCall epicsMutexUnlock(epicsMutexId pmutexNode)
Release the semaphore.
void * userPvt
A field for use by the asTrapWriteListener.
const char * hostid
Hostid of whoever orginated the request.
A doubly-linked list library.
void ellAdd(ELLLIST *pList, ELLNODE *pNode)
Adds a node to the end of a list.
#define ellNext(PNODE)
Find the next node in list.
void *epicsStdCall asTrapWriteBeforeWithData(const char *userid, const char *hostid, void *addr, int dbrType, int no_elements, void *data)
APIs for the epicsMutex mutual exclusion semaphore.
LIBCOM_API void epicsStdCall freeListFree(void *pvt, void *pmem)
struct listener * plistener
struct writeMessage writeMessage
void epicsStdCall asTrapWriteAfterWrite(void *pvt)
asTrapWriteMessage message
LIBCOM_API void * callocMustSucceed(size_t count, size_t size, const char *msg)
A calloc() that never returns NULL.
The message passed to registered listeners.
void epicsStdCall asTrapWriteUnregisterListener(asTrapWriteId id)
Unregister asTrapWriteListener.
const char * userid
Userid of whoever orginated the request.
struct listenerPvt listenerPvt
#define ellInit(PLIST)
Initialize a list type.
void(* asTrapWriteListener)(asTrapWriteMessage *pmessage, int after)
Pointer to a listener function.
void * freeListListenerPvt
Routines for code that can't continue or return after an error.
API for monitoring external put operations to an IOC.
#define epicsMutexMustLock(ID)
Claim a semaphore (see epicsMutexLock()).
int no_elements
Array length.
void ellDelete(ELLLIST *pList, ELLNODE *pNode)
Deletes a node from a list.
asTrapWriteId epicsStdCall asTrapWriteRegisterListener(asTrapWriteListener func)
Register function to be called on asTrapWriteListener.
#define ellFirst(PLIST)
Find the first node in list.