72 void release (
void * );
111 ca_uint32_t beaconNumber,
unsigned protocolRevision );
112 unsigned beaconAnomaliesSinceProgramStart (
121 void transferChanToVirtCircuit (
122 unsigned cid,
unsigned sid,
125 const epicsTime & currentTime );
129 void destroyChannel (
131 void initiateConnect (
133 nciu * lookupChannel (
154 void disconnectAllIO (
167 int status,
const char * pContext,
168 const char * pFileName,
unsigned lineNo );
171 void registerSearchDest (
173 bool findOrCreateVirtCircuit (
182 const char *pformat, ... )
const;
183 int varArgsPrintFormated (
185 const char *pformat, va_list args )
const;
191 const char * userNamePointer ()
const;
192 unsigned getInitializingThreadsPriority ()
const;
194 void attachToClientCtx ();
197 double beaconPeriod (
199 const nciu & chan )
const;
200 static unsigned lowestPriorityLevelAbove (
unsigned priority );
201 static unsigned highestPriorityLevelBelow (
unsigned priority );
202 void destroyIIU (
tcpiiu & iiu );
204 const char * pLocalHostName ();
229 freeListVirtualCircuit;
232 freeListReadNotifyIO;
235 freeListWriteNotifyIO;
238 freeListSubscription;
247 epicsTime programBeginTime;
259 void * tcpSmallRecvBufFreeList;
260 void * tcpLargeRecvBufFreeList;
263 unsigned initializingThreadsPriority;
264 unsigned maxRecvBytesTCP;
265 unsigned maxContigFrames;
266 unsigned beaconAnomalyCount;
267 unsigned short _serverPort;
268 unsigned iiuExistenceCount;
269 bool cacShutdownInProgress;
278 void disconnectChannel (
282 void ioExceptionNotify (
unsigned id,
int status,
284 void ioExceptionNotifyAndUninstall (
unsigned id,
int status,
288 const char * pChannelName,
const char * pAcc,
const char * pRej );
292 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
294 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
296 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
298 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
300 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
302 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
304 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
306 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
308 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
310 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
312 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
314 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
316 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
320 const epicsTime & currentTime,
const caHdrLargeArray &,
void *pMsgBdy );
323 bool defaultExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
324 const char *pCtx,
unsigned status );
325 bool eventAddExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
326 const char *pCtx,
unsigned status );
327 bool readExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
328 const char *pCtx,
unsigned status );
329 bool writeExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
330 const char *pCtx,
unsigned status );
331 bool clearChanExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
332 const char *pCtx,
unsigned status );
333 bool readNotifyExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
334 const char *pCtx,
unsigned status );
335 bool writeNotifyExcep ( callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
336 const char *pCtx,
unsigned status );
337 typedef bool (
cac::*pExcepProtoStubTCP ) (
338 callbackManager &, tcpiiu &iiu,
const caHdrLargeArray &hdr,
339 const char *pCtx,
unsigned status );
340 static const pExcepProtoStubTCP tcpExcepJumpTableCAC [];
343 cac & operator = (
const cac & );
350 return this->pUserName;
355 return this->initializingThreadsPriority;
365 const char *pformat, va_list args )
const 368 return this->notify.varArgsPrintFormated ( pformat, args );
373 this->notify.attachToClientCtx ();
380 return this->beaconAnomalyCount;
396 notifyGuard ( notify ), cbGuard ( callbackControl )
405 return this->chanTable.lookup ( idIn );
410 return _refLocalHostName->pointer ();
416 return maxContigFrames;
423 return this->connTMO;
426 #endif // ifndef INC_cac_H const char * pLocalHostName()
unsigned getInitializingThreadsPriority() const
virtual void recycleSubscription(epicsGuard< epicsMutex > &, netSubscription &io)=0
pvd::StructureConstPtr type
void assertIdenticalMutex(const T &) const
double connectionTimeout(epicsGuard< epicsMutex > &)
virtual void recycleWriteNotifyIO(epicsGuard< epicsMutex > &, netWriteNotifyIO &io)=0
unsigned short ca_uint16_t
virtual void recycleReadNotifyIO(epicsGuard< epicsMutex > &, netReadNotifyIO &io)=0
nciu * lookupChannel(epicsGuard< epicsMutex > &, const cacChannel::ioid &)
int varArgsPrintFormated(epicsGuard< epicsMutex > &callbackControl, const char *pformat, va_list args) const
unsigned maxContiguousFrames(epicsGuard< epicsMutex > &) const
char * allocate(unsigned int n)
APIs for the epicsEvent binary semaphore.
epicsGuard< epicsMutex > cbGuard
unsigned long arrayElementCount
callbackManager(cacContextNotify &, epicsMutex &callbackControl)
int(* pProtoStubTCP)(caHdrLargeArray *mp, void *pPayload, struct client *client)
virtual void callbackProcessingInitiateNotify()=0
Compiler specific declarations.
notifyGuard(cacContextNotify &)
unsigned beaconAnomaliesSinceProgramStart(epicsGuard< epicsMutex > &) const
const char * userNamePointer() const
virtual void callbackProcessingCompleteNotify()=0