This is Unofficial EPICS BASE Doxygen Site
cacChannel Class Referenceabstract

#include "cacIO.h"

+ Inheritance diagram for cacChannel:

Classes

class  badEventSelection
 
class  badPriority
 
class  badString
 
class  badType
 
class  msgBodyCacheTooSmall
 
class  noReadAccess
 
class  notConnected
 
class  noWriteAccess
 
class  outOfBounds
 
class  requestTimedOut
 
class  unsupportedByService
 

Public Types

enum  ioStatus { iosSynch, iosAsynch }
 
typedef unsigned priLev
 
typedef unsigned ioid
 

Public Member Functions

 cacChannel (cacChannelNotify &)
 
virtual void destroy (CallbackGuard &callbackGuard, epicsGuard< epicsMutex > &mutualExclusionGuard)=0
 
cacChannelNotifynotify () const
 
virtual unsigned getName (epicsGuard< epicsMutex > &, char *pBuf, unsigned bufLen) const =0 throw ()
 
virtual const char * pName (epicsGuard< epicsMutex > &guard) const =0 throw ()
 
virtual void show (epicsGuard< epicsMutex > &, unsigned level) const =0
 
virtual void initiateConnect (epicsGuard< epicsMutex > &)=0
 
virtual unsigned requestMessageBytesPending (epicsGuard< epicsMutex > &mutualExclusionGuard)=0
 
virtual void flush (epicsGuard< epicsMutex > &mutualExclusionGuard)=0
 
virtual ioStatus read (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, cacReadNotify &, ioid *=0)=0
 
virtual void write (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, const void *pValue)=0
 
virtual ioStatus write (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, const void *pValue, cacWriteNotify &, ioid *=0)=0
 
virtual void subscribe (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, unsigned mask, cacStateNotify &, ioid *=0)=0
 
virtual void ioCancel (CallbackGuard &callbackGuard, epicsGuard< epicsMutex > &mutualExclusionGuard, const ioid &)=0
 
virtual void ioShow (epicsGuard< epicsMutex > &, const ioid &, unsigned level) const =0
 
virtual short nativeType (epicsGuard< epicsMutex > &) const =0
 
virtual arrayElementCount nativeElementCount (epicsGuard< epicsMutex > &) const =0
 
virtual caAccessRights accessRights (epicsGuard< epicsMutex > &) const
 
virtual unsigned searchAttempts (epicsGuard< epicsMutex > &) const
 
virtual double beaconPeriod (epicsGuard< epicsMutex > &) const
 
virtual double receiveWatchdogDelay (epicsGuard< epicsMutex > &) const
 
virtual bool ca_v42_ok (epicsGuard< epicsMutex > &) const
 
virtual bool connected (epicsGuard< epicsMutex > &) const
 
virtual unsigned getHostName (epicsGuard< epicsMutex > &, char *pBuf, unsigned bufLength) const throw ()
 
virtual const char * pHostName (epicsGuard< epicsMutex > &guard) const throw ()
 

Static Public Attributes

static const priLev priorityMax = 99u
 
static const priLev priorityMin = 0u
 
static const priLev priorityDefault = priorityMin
 
static const priLev priorityLinksDB = priorityMax
 
static const priLev priorityArchive = ( priorityMax - priorityMin ) / 2
 
static const priLev priorityOPI = priorityMin
 

Protected Member Functions

virtual ~cacChannel ()=0
 

Detailed Description

Definition at line 163 of file cacIO.h.

Member Typedef Documentation

typedef unsigned cacChannel::ioid

Definition at line 173 of file cacIO.h.

typedef unsigned cacChannel::priLev

Definition at line 165 of file cacIO.h.

Member Enumeration Documentation

Enumerator
iosSynch 
iosAsynch 

Definition at line 174 of file cacIO.h.

Constructor & Destructor Documentation

cacChannel::cacChannel ( cacChannelNotify notify)
inline

Definition at line 323 of file cacIO.h.

323  :
324  callback ( notify )
325 {
326 }
Definition: caget.c:48
cacChannel::~cacChannel ( )
protectedpure virtual

Definition at line 52 of file cacChannel.cpp.

53 {
54 }

Member Function Documentation

caAccessRights cacChannel::accessRights ( epicsGuard< epicsMutex > &  ) const
virtual

Definition at line 56 of file cacChannel.cpp.

58 {
59  static caAccessRights ar ( true, true );
60  return ar;
61 }
double cacChannel::beaconPeriod ( epicsGuard< epicsMutex > &  ) const
virtual

Definition at line 69 of file cacChannel.cpp.

71 {
72  return - DBL_MAX;
73 }
bool cacChannel::ca_v42_ok ( epicsGuard< epicsMutex > &  ) const
virtual

Definition at line 81 of file cacChannel.cpp.

83 {
84  return true;
85 }
bool cacChannel::connected ( epicsGuard< epicsMutex > &  ) const
virtual

Reimplemented in nciu.

Definition at line 87 of file cacChannel.cpp.

89 {
90  return true;
91 }
virtual void cacChannel::destroy ( CallbackGuard callbackGuard,
epicsGuard< epicsMutex > &  mutualExclusionGuard 
)
pure virtual
virtual void cacChannel::flush ( epicsGuard< epicsMutex > &  mutualExclusionGuard)
pure virtual
unsigned cacChannel::getHostName ( epicsGuard< epicsMutex > &  ,
char *  pBuf,
unsigned  bufLength 
) const
throw (
)
virtual

Reimplemented in nciu.

Definition at line 120 of file cacChannel.cpp.

123 {
124  if ( bufLength ) {
125  epicsThreadOnce ( & cacChannelIdOnce, cacChannelSetup, 0);
126  return pCACChannelPrivate->getHostName ( pBuf, bufLength );
127  }
128  return 0u;
129 }
unsigned getHostName(char *pBuf, unsigned bufLength)
Definition: cacChannel.cpp:100
void cacChannelSetup(void *)
Definition: cacChannel.cpp:114
LIBCOM_API void epicsStdCall epicsThreadOnce(epicsThreadOnceId *id, EPICSTHREADFUNC, void *arg)
virtual unsigned cacChannel::getName ( epicsGuard< epicsMutex > &  ,
char *  pBuf,
unsigned  bufLen 
) const
throw (
)
pure virtual

Implemented in nciu.

virtual void cacChannel::initiateConnect ( epicsGuard< epicsMutex > &  )
pure virtual
virtual void cacChannel::ioCancel ( CallbackGuard callbackGuard,
epicsGuard< epicsMutex > &  mutualExclusionGuard,
const ioid  
)
pure virtual
virtual void cacChannel::ioShow ( epicsGuard< epicsMutex > &  ,
const ioid ,
unsigned  level 
) const
pure virtual
virtual arrayElementCount cacChannel::nativeElementCount ( epicsGuard< epicsMutex > &  ) const
pure virtual
virtual short cacChannel::nativeType ( epicsGuard< epicsMutex > &  ) const
pure virtual
cacChannelNotify & cacChannel::notify ( ) const
inline

Definition at line 328 of file cacIO.h.

329 {
330  return this->callback;
331 }
Definition: caget.c:48
const char * cacChannel::pHostName ( epicsGuard< epicsMutex > &  guard) const
throw (
)
virtual

Definition at line 132 of file cacChannel.cpp.

134 {
135  epicsThreadOnce ( & cacChannelIdOnce, cacChannelSetup, 0);
136  return pCACChannelPrivate->pHostName ();
137 }
void cacChannelSetup(void *)
Definition: cacChannel.cpp:114
const char * pHostName()
Definition: cacChannel.cpp:106
LIBCOM_API void epicsStdCall epicsThreadOnce(epicsThreadOnceId *id, EPICSTHREADFUNC, void *arg)
virtual const char* cacChannel::pName ( epicsGuard< epicsMutex > &  guard) const
throw (
)
pure virtual

Implemented in nciu.

virtual ioStatus cacChannel::read ( epicsGuard< epicsMutex > &  ,
unsigned  type,
arrayElementCount  count,
cacReadNotify ,
ioid = 0 
)
pure virtual
double cacChannel::receiveWatchdogDelay ( epicsGuard< epicsMutex > &  ) const
virtual

Definition at line 75 of file cacChannel.cpp.

77 {
78  return - DBL_MAX;
79 }
virtual unsigned cacChannel::requestMessageBytesPending ( epicsGuard< epicsMutex > &  mutualExclusionGuard)
pure virtual
unsigned cacChannel::searchAttempts ( epicsGuard< epicsMutex > &  ) const
virtual

Definition at line 63 of file cacChannel.cpp.

65 {
66  return 0u;
67 }
virtual void cacChannel::show ( epicsGuard< epicsMutex > &  ,
unsigned  level 
) const
pure virtual

Implemented in nciu.

virtual void cacChannel::subscribe ( epicsGuard< epicsMutex > &  ,
unsigned  type,
arrayElementCount  count,
unsigned  mask,
cacStateNotify ,
ioid = 0 
)
pure virtual
virtual void cacChannel::write ( epicsGuard< epicsMutex > &  ,
unsigned  type,
arrayElementCount  count,
const void *  pValue 
)
pure virtual
virtual ioStatus cacChannel::write ( epicsGuard< epicsMutex > &  ,
unsigned  type,
arrayElementCount  count,
const void *  pValue,
cacWriteNotify ,
ioid = 0 
)
pure virtual

Member Data Documentation

const cacChannel::priLev cacChannel::priorityArchive = ( priorityMax - priorityMin ) / 2
static

Definition at line 170 of file cacIO.h.

const cacChannel::priLev cacChannel::priorityDefault = priorityMin
static

Definition at line 168 of file cacIO.h.

const cacChannel::priLev cacChannel::priorityLinksDB = priorityMax
static

Definition at line 169 of file cacIO.h.

const cacChannel::priLev cacChannel::priorityMax = 99u
static

Definition at line 166 of file cacIO.h.

const cacChannel::priLev cacChannel::priorityMin = 0u
static

Definition at line 167 of file cacIO.h.

const cacChannel::priLev cacChannel::priorityOPI = priorityMin
static

Definition at line 171 of file cacIO.h.


The documentation for this class was generated from the following files: