60 typedef unsigned long arrayElementCount;
69 virtual void exception (
71 int status,
const char * pContext,
72 unsigned type, arrayElementCount count ) = 0;
80 virtual void completion (
82 arrayElementCount count,
const void * pData ) = 0;
84 virtual void exception (
86 const char * pContext,
unsigned type,
87 arrayElementCount count ) = 0;
95 virtual void current (
97 arrayElementCount count,
const void * pData ) = 0;
99 virtual void exception (
101 const char *pContext,
unsigned type,
102 arrayElementCount count ) = 0;
108 bool readPermit =
false,
109 bool writePermit =
false,
110 bool operatorConfirmationRequest =
false);
111 void setReadPermit ();
112 void setWritePermit ();
113 void setOperatorConfirmationRequest ();
114 void clrReadPermit ();
115 void clrWritePermit ();
116 void clrOperatorConfirmationRequest ();
117 bool readPermit ()
const;
118 bool writePermit ()
const;
119 bool operatorConfirmationRequest ()
const;
122 bool f_writePermit:1;
123 bool f_operatorConfirmationRequest:1;
131 virtual void serviceShutdownNotify (
133 virtual void accessRightsNotify (
135 virtual void exception (
138 virtual void readException (
140 unsigned type, arrayElementCount count,
void *pValue ) = 0;
142 virtual void writeException (
144 unsigned type, arrayElementCount count ) = 0;
166 typedef unsigned priLev;
167 static const priLev priorityMax;
168 static const priLev priorityMin;
169 static const priLev priorityDefault;
170 static const priLev priorityLinksDB;
171 static const priLev priorityArchive;
172 static const priLev priorityOPI;
174 typedef unsigned ioid;
175 enum ioStatus { iosSynch, iosAsynch };
178 virtual void destroy (
182 virtual unsigned getName (
184 char * pBuf,
unsigned bufLen )
const throw () = 0;
186 virtual const char * pName (
190 unsigned level )
const = 0;
191 virtual void initiateConnect (
193 virtual unsigned requestMessageBytesPending (
197 virtual ioStatus read (
199 unsigned type, arrayElementCount count,
203 unsigned type, arrayElementCount count,
204 const void *pValue ) = 0;
205 virtual ioStatus write (
207 unsigned type, arrayElementCount count,
209 virtual void subscribe (
220 virtual void ioCancel (
224 virtual void ioShow (
226 const ioid &,
unsigned level )
const = 0;
227 virtual short nativeType (
229 virtual arrayElementCount nativeElementCount (
233 virtual unsigned searchAttempts (
235 virtual double beaconPeriod (
237 virtual double receiveWatchdogDelay (
239 virtual bool ca_v42_ok (
241 virtual bool connected (
243 virtual unsigned getHostName (
245 char * pBuf,
unsigned bufLength )
const throw ();
247 virtual const char * pHostName (
278 cacChannel::priLev = cacChannel::priorityDefault ) = 0;
281 virtual unsigned circuitCount (
283 virtual void selfTest (
285 virtual unsigned beaconAnomaliesSinceProgramStart (
297 virtual void exception (
299 const char * pFileName,
unsigned lineNo ) = 0;
301 virtual int varArgsPrintFormated (
const char * pformat, va_list args )
const = 0;
303 virtual void attachToClientCtx () = 0;
304 virtual void callbackProcessingInitiateNotify () = 0;
305 virtual void callbackProcessingCompleteNotify () = 0;
320 LIBCA_API
void epicsStdCall caInstallDefaultService (
cacService & service );
331 return this->callback;
334 inline caAccessRights::caAccessRights (
335 bool readPermit,
bool writePermit,
bool operatorConfirmationRequest) :
336 f_readPermit ( readPermit ), f_writePermit ( writePermit ),
337 f_operatorConfirmationRequest ( operatorConfirmationRequest ) {}
339 inline void caAccessRights::setReadPermit ()
341 this->f_readPermit =
true;
344 inline void caAccessRights::setWritePermit ()
346 this->f_writePermit =
true;
349 inline void caAccessRights::setOperatorConfirmationRequest ()
351 this->f_operatorConfirmationRequest =
true;
354 inline void caAccessRights::clrReadPermit ()
356 this->f_readPermit =
false;
359 inline void caAccessRights::clrWritePermit ()
361 this->f_writePermit =
false;
364 inline void caAccessRights::clrOperatorConfirmationRequest ()
366 this->f_operatorConfirmationRequest =
false;
369 inline bool caAccessRights::readPermit ()
const
371 return this->f_readPermit;
374 inline bool caAccessRights::writePermit ()
const
376 return this->f_writePermit;
379 inline bool caAccessRights::operatorConfirmationRequest ()
const
381 return this->f_operatorConfirmationRequest;
384 #endif // ifndef INC_cacIO_H
Provides classes for RAII style locking and unlocking of mutexes.
C++ and C descriptions for a thread.
The C++ API for an epicsMutex.
struct epicsThreadPrivateOSD * epicsThreadPrivateId
APIs for the epicsMutex mutual exclusion semaphore.