Conduit Class Reference

#include <conduit.h>

List of all members.

Public Member Functions

 Conduit (void)
 Conduit (const char *_pv, ca_client_context *_ccc, bool _pyCafeFlag)
 Conduit constructor with flag for PyCafe API
.
virtual ~Conduit ()
bool getPyCafe () const
bool operator< (const Conduit &c) const
const char * getDevice (void) const
const char * getAttribute (void) const
const char * getHostName (void) const
bool isConnected (void) const
epicsTimeStamp getTimeStamp (void) const
short getAlarmStatus (void) const
short getAlarmSeverity (void) const
string getAlarmStatusAsString (void) const
string getAlarmSeverityAsString (void) const
unsigned short getAccessRead (void) const
unsigned short getAccessWrite (void) const
unsigned int getBeamEventNo (void) const
chid getChannelID (void) const
ChannelRegalia getChannelRegalia (void) const
ca_client_context * getClientContext (void) const
unsigned int getGroupHandle (void) const
unsigned int getHandle (void) const
const char * getPV (void) const
const char * getPVAlias (void) const
int getStatus (void) const
void * getUsrArgs (void) const
chtype getDataType (void) const
chtype getDbrDataType (void) const
CAFENUM::DBR_TYPE getCafeDbrType (void) const
db_access_val * getCtrlBuffer (void) const
db_access_val * getDataBuffer (void) const
db_access_val * getPutBuffer (void) const
int getPVDataHolder (PVDataHolder &) const
 Called from cafe.cc.
int getPVCtrlHolder (PVCtrlHolder &) const
 Called from cafe.cc.
ChannelGetCacheWaitPolicy getChannelGetCacheWaitPolicy (void) const
ChannelGetActionWhenMonitorPolicy getChannelGetActionWhenMonitorPolicy (void) const
ChannelTimeoutPolicy getChannelTimeoutPolicyGet (void) const
ChannelRequestPolicy getChannelRequestPolicyGet (void) const
ChannelRequestStatus getChannelRequestStatusGet (void) const
ChannelRequestPolicy getChannelRequestPolicyGetCtrl (void) const
ChannelRequestStatus getChannelRequestStatusGetCtrl (void) const
ChannelRequestStatus getChannelRequestStatusGetSTSACK (void) const
ChannelRequestStatus getChannelRequestStatusGetClassName (void) const
ChannelTimeoutPolicy getChannelTimeoutPolicyPut (void) const
ChannelRequestPolicy getChannelRequestPolicyPut (void) const
ChannelRequestStatus getChannelRequestStatusPut (void) const
ChannelRequestDataTypePolicy getChannelRequestDataTypePolicy (void) const
ChannelRequestMetaData getChannelRequestMetaData (void) const
ChannelRequestMetaDataClient getChannelRequestMetaDataClient (void) const
ChannelRequestMetaData getChannelRequestMetaCtrl (void) const
ChannelRequestMetaDataClient getChannelRequestMetaCtrlClient (void) const
ChannelRequestMetaData getChannelRequestMetaPrimitive (void) const
vector< MonitorPolicygetMonitorPolicyVector (void) const
vector< MonitorPolicygetMonitorPolicyInWaitingVector (void) const
vector< string > getMonitorAction (void) const
bool getHasNewData (void) const

Public Attributes

unsigned int groupHandle
unsigned int handle
chid channelID
std::string pv
std::string pvAlias
int status

Private Member Functions

int putWithCallback (pCallback callbackHandlerPut) const
 Called from Granules.cc
Sends data from the Conduit::putBuffer to the process variable. It does not wait to determine if the data was actually written or not.
int put (void) const
 Called from Granules.cc
Sends data from the Conduit::putBuffer to the process variable. It does not wait to determine if the data was actually written or not.
int get (void) const
 Called from Granules.cc
Retrieves PV data through channel access into the Conduit::dataBuffer.
int getWithCallback (pCallback) const
 Called from Granules.cc
Retrieves PV data through channel access into the Conduit::dataBuffer thru callbackHandlerGet.
int getCtrl (void) const
 Called from Granules.cc
Retrieves Ctrl data through channel access into the Conduit::ctrlBuffer.
int getCtrlWithCallback (pCallback) const
 Called from granules.cc and conduitConnectionHandersArgs.h
Retrieves Ctrl data through channel access into the Conduit::ctrlBuffer thru callbackHandlerCtrl.
int getSTSACKWithCallback (pCallback) const
 Called from Granules.cc and conduitConnectionHandersArgs.h
Retrieves STSACK data through channel access into the Conduit::STSACKBuffer thru callbackHandlerSTSACK.
int getClassNameWithCallback (pCallback) const
 Called from Granules.cc and conduitConnectionHandersArgs.h
Retrieves ClassName data through channel access into the Conduit::ClassNameBuffer thru callbackHandlerClassName.
int monitorStart (MonitorPolicy &mp) const
 Starts a monitor on the epics channel.
int monitorStop (evid eventID) const
 Stops a monitor on the epics channel.

Private Attributes

const char * epicsAlarmSeverityStrings [ALARM_SEVERITY_STRING_LENGTH]
const char * epicsAlarmConditionStrings [ALARM_STATUS_STRING_LENGTH]
ca_client_context * ccc
union db_access_val * dataBuffer
union db_access_val * ctrlBuffer
union db_access_val * putBuffer
union db_access_val * stsackBuffer
short alarmStatus
short alarmSeverity
epicsTimeStamp ts
void * usrArgs
chtype dataType
chtype dbrDataType
CAFENUM::DBR_TYPE cafeDbrType
unsigned int beamEventNo
bool pyCafeFlag
std::string deviceAttributeDeliminator
ChannelDeviceAttribute channelDeviceAttribute
ChannelEnumStrings channelEnumStrings
ChannelGetCacheWaitPolicy channelGetCacheWaitPolicy
ChannelGetActionWhenMonitorPolicy channelGetActionWhenMonitorPolicy
ChannelRequestDataTypePolicy channelRequestDataTypePolicy
ChannelRequestPolicy channelRequestPolicyPut
ChannelRequestStatus channelRequestStatusPut
ChannelRequestPolicy channelRequestPolicyGet
ChannelRequestStatus channelRequestStatusGet
ChannelRequestPolicy channelRequestPolicyGetCtrl
ChannelRequestStatus channelRequestStatusGetCtrl
ChannelRequestStatus channelRequestStatusGetSTSACK
ChannelRequestStatus channelRequestStatusGetClassName
ChannelTimeoutPolicy channelTimeoutPolicyGet
ChannelTimeoutPolicy channelTimeoutPolicyPut
ChannelRegalia channelRegalia
ChannelRequestMetaData channelRequestMetaData
ChannelRequestMetaDataClient channelRequestMetaDataClient
ChannelRequestMetaData channelRequestMetaCtrl
ChannelRequestMetaDataClient channelRequestMetaCtrlClient
ChannelRequestMetaData channelRequestMetaSTSACK
ChannelRequestMetaData channelRequestMetaPrimitive
vector< MonitorPolicympV
vector< MonitorPolicympInWaitingV
vector< std::string > monitorAction
bool hasNewData

Static Private Attributes

static unsigned int handleNext = 0

Friends

struct change_alarmStatus
struct change_alarmSeverity
struct change_epicsTimeStamp
struct change_accessRightsHandlerArgs
struct change_accessRead
struct change_accessWrite
struct change_channelDeviceAttribute
struct change_channelID
struct change_channelRegalia
struct change_channelGetCacheWaitPolicy
struct change_channelGetActionWhenMonitorPolicy
struct change_channelRequestDataTypePolicy
struct change_channelRequestMetaCtrl
struct change_channelRequestMetaCtrlClient
struct change_channelRequestMetaData
struct change_channelRequestMetaDataClient
struct change_channelRequestMetaPrimitive
struct change_channelRequestPolicyPut
struct change_channelRequestStatusPut
struct change_channelRequestPolicyGet
struct change_channelRequestStatusGet
struct change_channelRequestPolicyGetCtrl
struct change_channelRequestStatusGetCtrl
struct change_channelRequestStatusGetSTSACK
struct change_channelRequestStatusGetClassName
struct change_channelTimeoutPolicyGet
struct change_channelTimeoutPolicyPut
struct change_connectionHandlerArgs
struct change_dataBufferSize_PRIMITIVE
struct change_dataBufferSize_TIME
struct change_dataBufferSize_CTRL
struct change_dataBufferSize_STSACK
struct change_eventHandlerArgs
struct change_hasNewData
struct change_monitorAction
struct change_monitorActionClear
struct change_monitorActionErase
struct change_monitorPolicyErase
struct change_monitorPolicyInsert
struct change_monitorPolicyInWaitingErase
struct change_monitorPolicyInWaitingInsert
struct change_pvAlias
struct change_status
struct change_usrArgs
struct free_dataBuffers
class Connect
class CAFE
class Granules
class ChannelCreatePolicy
class ConduitGroup
class MonitorPolicy
std::ostream & operator<< (std::ostream &os, const Conduit &e)

Detailed Description

Principal constructor has:

Parameters:
_pv process variable
_ccc ca_client_context

Constructor & Destructor Documentation

Conduit::Conduit ( void   ) 
Conduit::Conduit ( const char *  _pv,
ca_client_context *  _ccc,
bool  _pyCafeFlag 
)
Conduit::~Conduit (  )  [virtual]

CAFEConduit destructor
Good place to clean up!


Member Function Documentation

int Conduit::get ( void   )  const [private]

Called from Granules.cc
Retrieves PV data through channel access into the Conduit::dataBuffer.

Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaData, dataBuffer, ChannelRequestMetaData::dbrDataType, and ChannelRequestMetaData::nelem.

unsigned short Conduit::getAccessRead ( void   )  const [inline]
unsigned short Conduit::getAccessWrite ( void   )  const [inline]
short Conduit::getAlarmSeverity ( void   )  const [inline]

References alarmSeverity.

string Conduit::getAlarmSeverityAsString ( void   )  const [inline]
short Conduit::getAlarmStatus ( void   )  const [inline]

References alarmStatus.

string Conduit::getAlarmStatusAsString ( void   )  const [inline]
const char* Conduit::getAttribute ( void   )  const [inline]
unsigned int Conduit::getBeamEventNo ( void   )  const [inline]

References beamEventNo.

CAFENUM::DBR_TYPE Conduit::getCafeDbrType ( void   )  const [inline]

References cafeDbrType.

ChannelGetActionWhenMonitorPolicy Conduit::getChannelGetActionWhenMonitorPolicy ( void   )  const [inline]
ChannelGetCacheWaitPolicy Conduit::getChannelGetCacheWaitPolicy ( void   )  const [inline]
chid Conduit::getChannelID ( void   )  const [inline]
ChannelRegalia Conduit::getChannelRegalia ( void   )  const [inline]

References channelRegalia.

ChannelRequestDataTypePolicy Conduit::getChannelRequestDataTypePolicy ( void   )  const [inline]
ChannelRequestMetaData Conduit::getChannelRequestMetaCtrl ( void   )  const [inline]
ChannelRequestMetaDataClient Conduit::getChannelRequestMetaCtrlClient ( void   )  const [inline]
ChannelRequestMetaData Conduit::getChannelRequestMetaData ( void   )  const [inline]
ChannelRequestMetaDataClient Conduit::getChannelRequestMetaDataClient ( void   )  const [inline]
ChannelRequestMetaData Conduit::getChannelRequestMetaPrimitive ( void   )  const [inline]
ChannelRequestPolicy Conduit::getChannelRequestPolicyGet ( void   )  const [inline]
ChannelRequestPolicy Conduit::getChannelRequestPolicyGetCtrl ( void   )  const [inline]
ChannelRequestPolicy Conduit::getChannelRequestPolicyPut ( void   )  const [inline]
ChannelRequestStatus Conduit::getChannelRequestStatusGet ( void   )  const [inline]
ChannelRequestStatus Conduit::getChannelRequestStatusGetClassName ( void   )  const [inline]
ChannelRequestStatus Conduit::getChannelRequestStatusGetCtrl ( void   )  const [inline]
ChannelRequestStatus Conduit::getChannelRequestStatusGetSTSACK ( void   )  const [inline]
ChannelRequestStatus Conduit::getChannelRequestStatusPut ( void   )  const [inline]
ChannelTimeoutPolicy Conduit::getChannelTimeoutPolicyGet ( void   )  const [inline]
ChannelTimeoutPolicy Conduit::getChannelTimeoutPolicyPut ( void   )  const [inline]
int Conduit::getClassNameWithCallback ( pCallback  callbackHandlerClassName  )  const [private]

Called from Granules.cc and conduitConnectionHandersArgs.h
Retrieves ClassName data through channel access into the Conduit::ClassNameBuffer thru callbackHandlerClassName.

Parameters:
callbackHandlerClassName input: pCallback
Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, and handle.

ca_client_context* Conduit::getClientContext ( void   )  const [inline]

References ccc.

int Conduit::getCtrl ( void   )  const [private]

Called from Granules.cc
Retrieves Ctrl data through channel access into the Conduit::ctrlBuffer.

Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaCtrl, ctrlBuffer, ChannelRequestMetaData::dbrDataType, and ChannelRequestMetaData::nelem.

db_access_val* Conduit::getCtrlBuffer ( void   )  const [inline]

References ctrlBuffer.

int Conduit::getCtrlWithCallback ( pCallback  callbackHandlerCtrl  )  const [private]

Called from granules.cc and conduitConnectionHandersArgs.h
Retrieves Ctrl data through channel access into the Conduit::ctrlBuffer thru callbackHandlerCtrl.

Parameters:
callbackHandlerCtrl input: pCallback
Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaCtrl, ChannelRequestMetaData::dbrDataType, handle, and ChannelRequestMetaData::nelem.

db_access_val* Conduit::getDataBuffer ( void   )  const [inline]

References dataBuffer.

chtype Conduit::getDataType ( void   )  const [inline]

References dataType.

chtype Conduit::getDbrDataType ( void   )  const [inline]

References dbrDataType.

const char* Conduit::getDevice ( void   )  const [inline]
unsigned int Conduit::getGroupHandle ( void   )  const [inline]

References groupHandle.

unsigned int Conduit::getHandle ( void   )  const [inline]

References handle.

bool Conduit::getHasNewData ( void   )  const [inline]

References hasNewData.

const char* Conduit::getHostName ( void   )  const [inline]
vector<string> Conduit::getMonitorAction ( void   )  const [inline]

References monitorAction.

vector<MonitorPolicy> Conduit::getMonitorPolicyInWaitingVector ( void   )  const [inline]

References mpInWaitingV.

vector<MonitorPolicy> Conduit::getMonitorPolicyVector ( void   )  const [inline]

References mpV.

db_access_val* Conduit::getPutBuffer ( void   )  const [inline]

References putBuffer.

const char* Conduit::getPV ( void   )  const [inline]

References pv.

const char* Conduit::getPVAlias ( void   )  const [inline]

References pvAlias.

int Conduit::getPVCtrlHolder ( PVCtrlHolder _pvc  )  const
int Conduit::getPVDataHolder ( PVDataHolder _pvd  )  const
bool Conduit::getPyCafe (  )  const [inline]

References pyCafeFlag.

int Conduit::getStatus ( void   )  const [inline]

References status.

int Conduit::getSTSACKWithCallback ( pCallback  callbackHandlerSTSACK  )  const [private]

Called from Granules.cc and conduitConnectionHandersArgs.h
Retrieves STSACK data through channel access into the Conduit::STSACKBuffer thru callbackHandlerSTSACK.

Parameters:
callbackHandlerSTSACK input: pCallback
Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaSTSACK, handle, and ChannelRequestMetaData::nelem.

epicsTimeStamp Conduit::getTimeStamp ( void   )  const [inline]

References ts.

void* Conduit::getUsrArgs ( void   )  const [inline]

References usrArgs.

int Conduit::getWithCallback ( pCallback  callbackHandlerGet  )  const [private]

Called from Granules.cc
Retrieves PV data through channel access into the Conduit::dataBuffer thru callbackHandlerGet.

Parameters:
callbackHandlerGet input: pCallback
Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaData, ChannelRequestMetaData::dbrDataType, handle, and ChannelRequestMetaData::nelem.

bool Conduit::isConnected ( void   )  const [inline]
int Conduit::monitorStart ( MonitorPolicy mp  )  const [private]

Starts a monitor on the epics channel.

Parameters:
mp input: MonitorPolicy class
mp.eventID output: evid identifying the monitor subscription
Returns:
ECA_NORMAL - normal sucessful completiom
ECA_BADCHID - corrupted chid
ECA_BADTYPE - invalid DBR_XXXX type
ECA_ALLOCMEM - a local database event add failed

References ChannelRegalia::channelID, channelRegalia, MonitorPolicy::getDbrDataType(), MonitorPolicy::getHandler(), MonitorPolicy::getMask(), MonitorPolicy::getNelem(), MonitorPolicy::getUserArgs(), MonitorPolicy::setEventID(), and status.

int Conduit::monitorStop ( evid  eventID  )  const [private]

Stops a monitor on the epics channel.

Parameters:
eventID input: evid
Returns:
ECA_NORMAL if OK else ECA_BADCHID (corrupted CHID)
bool Conduit::operator< ( const Conduit c  )  const [inline]

References handle.

int Conduit::put ( void   )  const [private]

Called from Granules.cc
Sends data from the Conduit::putBuffer to the process variable. It does not wait to determine if the data was actually written or not.

Returns:
ECA_NORMAL - Normal successful completion
ECA_BADCHID - Corrupted Channel Identifier (chid)
ECA_BADTYPE - Invalid DBR_XXX type
ECA_BADCOUNT - Requested count larger than native element count
ECA_NOWTACCESS - Write access denied
ECA_ALLOCMEM - Unable to allocate memory
ECA_DISCONN - Channel is disconnected

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaPrimitive, ChannelRequestMetaData::dbrDataType, ChannelRequestMetaData::nelem, and putBuffer.

int Conduit::putWithCallback ( pCallback  callbackHandlerPut  )  const [private]

Called from Granules.cc
Sends data from the Conduit::putBuffer to the process variable. It does not wait to determine if the data was actually written or not.

Parameters:
callbackHandlerPut input: pCallback
Returns:
ECA_NORMAL if OK else ECA error

References ChannelRegalia::channelID, channelRegalia, channelRequestMetaPrimitive, ChannelRequestMetaData::dbrDataType, handle, ChannelRequestMetaData::nelem, and putBuffer.


Friends And Related Function Documentation

friend class CAFE [friend]
friend struct change_accessRead [friend]
friend struct change_accessRightsHandlerArgs [friend]
friend struct change_accessWrite [friend]
friend struct change_alarmSeverity [friend]
friend struct change_alarmStatus [friend]
friend struct change_channelDeviceAttribute [friend]
friend struct change_channelGetCacheWaitPolicy [friend]
friend struct change_channelID [friend]
friend struct change_channelRegalia [friend]
friend struct change_channelRequestDataTypePolicy [friend]
friend struct change_channelRequestMetaCtrl [friend]
friend struct change_channelRequestMetaCtrlClient [friend]
friend struct change_channelRequestMetaData [friend]
friend struct change_channelRequestMetaDataClient [friend]
friend struct change_channelRequestMetaPrimitive [friend]
friend struct change_channelRequestPolicyGet [friend]
friend struct change_channelRequestPolicyGetCtrl [friend]
friend struct change_channelRequestPolicyPut [friend]
friend struct change_channelRequestStatusGet [friend]
friend struct change_channelRequestStatusGetCtrl [friend]
friend struct change_channelRequestStatusGetSTSACK [friend]
friend struct change_channelRequestStatusPut [friend]
friend struct change_channelTimeoutPolicyGet [friend]
friend struct change_channelTimeoutPolicyPut [friend]
friend struct change_connectionHandlerArgs [friend]
friend struct change_dataBufferSize_CTRL [friend]
friend struct change_dataBufferSize_PRIMITIVE [friend]
friend struct change_dataBufferSize_STSACK [friend]
friend struct change_dataBufferSize_TIME [friend]
friend struct change_epicsTimeStamp [friend]
friend struct change_eventHandlerArgs [friend]
friend struct change_hasNewData [friend]
friend struct change_monitorAction [friend]
friend struct change_monitorActionClear [friend]
friend struct change_monitorActionErase [friend]
friend struct change_monitorPolicyErase [friend]
friend struct change_monitorPolicyInsert [friend]
friend struct change_monitorPolicyInWaitingErase [friend]
friend struct change_monitorPolicyInWaitingInsert [friend]
friend struct change_pvAlias [friend]
friend struct change_status [friend]
friend struct change_usrArgs [friend]
friend class ChannelCreatePolicy [friend]
friend class ConduitGroup [friend]
friend class Connect [friend]
friend struct free_dataBuffers [friend]
friend class Granules [friend]
friend class MonitorPolicy [friend]
std::ostream& operator<< ( std::ostream &  os,
const Conduit e 
) [friend]

Member Data Documentation

short Conduit::alarmSeverity [private]
short Conduit::alarmStatus [private]
unsigned int Conduit::beamEventNo [private]
ca_client_context* Conduit::ccc [private]

Referenced by Conduit(), and getClientContext().

union db_access_val* Conduit::ctrlBuffer [write, private]
union db_access_val* Conduit::dataBuffer [write, private]
chtype Conduit::dataType [private]
chtype Conduit::dbrDataType [private]
std::string Conduit::deviceAttributeDeliminator [private]

Referenced by Conduit().

Referenced by Conduit(), and getAlarmStatusAsString().

unsigned int Conduit::handle
unsigned int Conduit::handleNext = 0 [static, private]
bool Conduit::hasNewData [private]
vector<std::string> Conduit::monitorAction [private]
vector<MonitorPolicy> Conduit::mpV [private]
union db_access_val* Conduit::putBuffer [write, private]
std::string Conduit::pv
std::string Conduit::pvAlias
bool Conduit::pyCafeFlag [private]

Referenced by Conduit(), and getPyCafe().

union db_access_val* Conduit::stsackBuffer [write, private]
epicsTimeStamp Conduit::ts [private]
void* Conduit::usrArgs [private]

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

Generated on 3 May 2017 for CAFE by  doxygen 1.6.1