25 #ifndef INC_virtualCircuit_H 26 #define INC_virtualCircuit_H 59 const char * pName,
unsigned int stackSize,
unsigned int priority );
63 bool exitWait (
double delay );
64 void interruptSocketRecv ();
65 void show (
unsigned level )
const;
74 bool validFillStatus (
82 class tcpiiu & iiuIn,
const char * pName,
83 unsigned int stackSize,
unsigned int priority );
87 void interruptSocketSend ();
88 void show (
unsigned level )
const;
99 const char * pbuf,
size_t len );
101 void setCircuit (
tcpiiu * );
116 const char * pbuf,
size_t len );
126 void responsiveCircuitNotify (
129 void sendTimeoutNotify (
132 void receiveTimeoutNotify(
135 void beaconAnomalyNotify (
137 void beaconArrivalNotify (
139 void probeResponseNotify (
144 unsigned requestMessageBytesPending (
149 void show (
unsigned level )
const;
150 bool setEchoRequestPending (
152 void requestRecvProcessPostponedFlush (
154 void clearChannelRequest (
167 unsigned getHostName (
169 char *pBuf,
unsigned bufLength )
const throw ();
174 bool receiveThreadIsBusy (
180 const char *pformat, ... );
181 unsigned channelCount (
183 void disconnectAllChannels (
186 void unlinkAllChannels (
189 void installChannel (
197 void searchRespNotify (
201 void *
operator new (
size_t size,
203 epicsPlacementDeleteOperator ((
void *,
232 unsigned minorProtocolVersion;
260 bool processIncoming (
262 unsigned sendBytes (
const void *pBuf,
263 unsigned nBytesInBuf,
const epicsTime &
currentTime );
266 const char * pHostName (
268 double receiveWatchdogDelay (
270 void unresponsiveCircuitNotify (
273 void initiateCleanShutdown (
275 void initiateAbortShutdown (
277 void disconnectNotify (
279 bool bytesArePendingInOS () const;
280 void decrementBlockingForFlushCount (
282 bool isNameService () const;
287 void versionMessage (
289 void disableFlowControlRequest (
291 void enableFlowControlRequest (
293 void hostNameSetRequest (
295 void userNameSetRequest (
297 void createChannelRequest (
302 void writeNotifyRequest (
306 void readNotifyRequest (
310 void subscriptionRequest (
313 void subscriptionUpdateRequest (
316 void subscriptionCancelRequest (
319 void flushIfRecvProcessRequested (
321 bool sendThreadFlush (
325 void uninstallChanDueToSuccessfulSearchResponse (
326 epicsGuard < epicsMutex > &, nciu &, const class epicsTime & );
329 const
char * pName,
unsigned nameLength );
335 tcpiiu & operator = ( const tcpiiu & );
336 void operator delete (
void * );
339 inline
void * tcpiiu::operator new (
size_t size,
342 return mgr.allocate ( size );
345 #ifdef CXX_PLACEMENT_DELETE 346 inline void tcpiiu::operator
delete (
void * pCadaver,
349 mgr.release ( pCadaver );
356 return CA_V41 ( this->minorProtocolVersion );
362 return CA_V44 ( this->minorProtocolVersion );
368 return CA_V49 ( this->minorProtocolVersion );
374 return ( this->state == iiucs_connecting ||
375 this->state == iiucs_connected );
381 return ( this->state == iiucs_connecting );
388 return this->_receiveThreadIsBusy;
395 this->recvDog.beaconAnomalyNotify ( guard );
402 this->recvDog.beaconArrivalNotify ( guard );
408 this->recvDog.probeResponseNotify ( cbGuard );
413 return ( this->pSearchDest !=
NULL );
421 #endif // ifdef INC_virtualCircuit_H
void searchRequest(epicsGuard< epicsMutex > &guard, const char *pbuf, size_t len)
bool ca_v44_ok(epicsGuard< epicsMutex > &) const
LIBCA_API int epicsStdCall ca_v42_ok(chid chan)
epicsEvent flushBlockEvent
pvd::StructureConstPtr type
bool connecting(epicsGuard< epicsMutex > &) const
void assertIdenticalMutex(const T &) const
unsigned blockingForFlush
unsigned short ca_uint16_t
bool recvProcessPostponedFlush
bool isNameService() const
unsigned unacknowledgedSendBytes
bool alive(epicsGuard< epicsMutex > &) const
unsigned socketLibrarySendBufferSize
bool ca_v41_ok(epicsGuard< epicsMutex > &) const
void beaconArrivalNotify(epicsGuard< epicsMutex > &)
epicsEvent sendThreadFlushEvent
unsigned contigRecvMsgCount
unsigned long arrayElementCount
void setCircuit(tcpiiu *)
bool discardingPendingData
bool receiveThreadIsBusy(epicsGuard< epicsMutex > &)
void beaconAnomalyNotify(epicsGuard< epicsMutex > &)
bool ca_v49_ok(epicsGuard< epicsMutex > &) const
Compiler specific declarations.
bool oldMsgHeaderAvailable
void probeResponseNotify(epicsGuard< epicsMutex > &)
bool _receiveThreadIsBusy