#include <granules.h>
Public Member Functions | |
Granules () | |
Private Member Functions | |
int | channelVerifyPut (const unsigned int, chtype) |
Contains methods that are used by Instant template: channelVerifyPut: preVerification of client's requested data. | |
int | channelPreparePut (const unsigned int) |
channelPreparePut: prepare client's requested data for ca call | |
int | channelExecutePut (const unsigned int) |
channelExecutePut: prepare client's requested data for ca call | |
int | waitForPutEvent (const unsigned int, double) |
waitForPutEvent: waits for put callback to complete | |
bool | isPutCallbackDone (const unsigned int _handle) |
isPutCallbackDone performs a ca_poll() and queries the Conduit data container to determine if the putWithCallback has been completed | |
int | channelVerifyGet (const unsigned int, chtype) |
Contains methods that are used by Instant template, namely verifyChannelGetMethod: preVerification of client's requested data. | |
int | channelPrepareGet (const unsigned int) |
channelPrepareGet: prepare client's requested data for ca call | |
int | channelExecuteGet (const unsigned int) |
channelExecuteGet: Executes ca_get method and wiats for response | |
int | channelExecuteGetNoWait (const unsigned int) |
channelExecuteGetNoWait: Executes ca_get method WITH CALLBACK! A channelRequestPolicyGet.getMethodKind()==WITHOUT_CALLBACK setting is ignored; getMethodKind()=WITH_DEFAULT_CALLBACK is then used | |
int | waitForManyGetEvents (const unsigned int *handleArray, unsigned int arrayLength, std::map< unsigned int, int > &bundleResponse) |
waitForManyGetEvents: waits for all get callback to complete | |
int | waitForGetEvent (const unsigned int, double) |
waitForGetEvent: waits for get callback to complete | |
bool | isGetCallbackDone (const unsigned int _handle) |
isGetCallbackDone performs a ca_poll() and queries the Conduit data container to determine if the getWithCallback has been completed | |
int | channelVerifyGetCtrl (const unsigned int, chtype) |
channelVerifyGetCtrl: preVerification of client's requested data | |
int | channelPrepareGetCtrl (const unsigned int) |
channelPrepareGetCtrl: prepare client's requested data for ca call | |
int | channelExecuteGetCtrl (const unsigned int) |
channelExecuteGetCtrl: Executes ca_get method | |
int | channelExecuteGetCtrlNoWait (const unsigned int _handle) |
channelExecuteGetCtrl: Executes ca_get method | |
int | waitForGetCtrlEvent (const unsigned int, double) |
waitForGetCtrlEvent: waits for get callback to complete | |
bool | isGetCtrlCallbackDone (const unsigned int _handle) |
isGetXtrlCallbackDone performs a ca_poll() and queries the Conduit data container to determine if the getCtrlWithCallback has been completed | |
chtype | convertMatrix (const chtype nativeType, const chtype clientT) |
convertMatrix determines datatype for message transmission. The datatype will be the smaller of the native datatype and that requested by client. | |
Private Attributes | |
HandleHelper | helper |
CAFEStatus | cafeStatus |
ChannelRequestDataTypePolicy | channelRequestDataTypePolicy |
ChannelRequestPolicyKind | methodKind |
ChannelRequestPolicy | channelRequestPolicyPut |
ChannelRequestStatus | channelRequestStatusPut |
ChannelRequestPolicy | channelRequestPolicyGet |
ChannelRequestStatus | channelRequestStatusGet |
ChannelRequestMetaDataClient | channelRequestMetaDataClient |
ChannelRequestMetaData | channelRequestMetaData |
ChannelRequestMetaData | channelRequestMetaPrimitive |
ChannelRequestPolicy | channelRequestPolicyGetCtrl |
ChannelRequestStatus | channelRequestStatusGetCtrl |
ChannelRequestMetaDataClient | channelRequestMetaCtrlClient |
ChannelRequestMetaData | channelRequestMetaCtrl |
ChannelTimeoutPolicy | channelTimeoutPolicyGet |
ChannelTimeoutPolicy | channelTimeoutPolicyPut |
int | status |
Friends | |
class | Instant |
class | CAFE |
Contains methods that are used by Instant template Among these are the Verify, Prepare, Execute
Granules::Granules | ( | ) | [inline] |
channelExecuteGet: Executes ca_get method and wiats for response
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestMetaData, channelRequestMetaDataClient, channelRequestPolicyGet, channelRequestStatusGet, channelTimeoutPolicyGet, cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, ChannelTimeoutPolicy::getDeltaTimeout(), ChannelRequestPolicy::getHandler(), ChannelRequestPolicy::getMethodKind(), ChannelTimeoutPolicy::getNtries(), ChannelRequestMetaData::getOffset(), ChannelTimeoutPolicy::getSelfGoverningTimeout(), ChannelTimeoutPolicy::getTimeout(), CALLBACK_CAFE::handlerGet(), helper, ICAFE_CS_DISCONN, ICAFE_NORMAL, MUTEX, HandleHelper::printHandle(), ChannelRequestStatus::setCallbackKind(), ChannelRequestStatus::setCallbackStatus(), ChannelRequestMetaData::setOffset(), ChannelRequestStatus::setPendStatus(), ChannelRequestStatus::setRequestStatus(), ChannelTimeoutPolicy::setSelfGoverningTimeout(), ChannelTimeoutPolicy::setTimeout(), status, waitForGetEvent(), CAFENUM::WITH_CALLBACK_DEFAULT, CAFENUM::WITH_CALLBACK_USER_SUPPLIED, and CAFENUM::WITHOUT_CALLBACK.
Referenced by Instant< CTYPE >::get(), and CAFE::get().
channelExecuteGetCtrl: Executes ca_get method
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestMetaCtrl, channelRequestMetaCtrlClient, channelRequestPolicyGetCtrl, channelRequestStatusGetCtrl, channelTimeoutPolicyGet, cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, ChannelTimeoutPolicy::getDeltaTimeout(), ChannelRequestPolicy::getHandler(), ChannelRequestPolicy::getMethodKind(), ChannelTimeoutPolicy::getNtries(), ChannelRequestMetaData::getOffset(), ChannelTimeoutPolicy::getSelfGoverningTimeout(), ChannelTimeoutPolicy::getTimeout(), CALLBACK_CAFE::handlerGetCtrl(), helper, ICAFE_CS_DISCONN, ICAFE_NORMAL, MUTEX, HandleHelper::printHandle(), ChannelRequestStatus::setCallbackKind(), ChannelRequestStatus::setCallbackStatus(), ChannelRequestMetaData::setOffset(), ChannelRequestStatus::setPendStatus(), ChannelRequestStatus::setRequestStatus(), ChannelTimeoutPolicy::setSelfGoverningTimeout(), ChannelTimeoutPolicy::setTimeout(), status, waitForGetCtrlEvent(), CAFENUM::WITH_CALLBACK_DEFAULT, CAFENUM::WITH_CALLBACK_USER_SUPPLIED, and CAFENUM::WITHOUT_CALLBACK.
Referenced by CAFE::getCtrl().
channelExecuteGetCtrl: Executes ca_get method
_handle | input: handle |
References __METHOD__, cafeMutex, cafeStatus, channelRequestMetaCtrl, channelRequestMetaCtrlClient, channelRequestPolicyGetCtrl, channelRequestStatusGetCtrl, cs, ECAFE_INVALID_HANDLE, ChannelRequestPolicy::getHandler(), ChannelRequestPolicy::getMethodKind(), ChannelRequestMetaData::getOffset(), CALLBACK_CAFE::handlerGetCtrl(), ICAFE_NORMAL, ICAFE_WAITING_FOR_PREV_CALLBACK, MUTEX, CAFENUM::PENDING, CAFEStatus::report(), ChannelRequestStatus::setCallbackKind(), ChannelRequestMetaData::setOffset(), ChannelRequestStatus::setRequestStatus(), status, CAFENUM::WITH_CALLBACK_DEFAULT, CAFENUM::WITH_CALLBACK_USER_SUPPLIED, and CAFENUM::WITHOUT_CALLBACK.
Referenced by CAFE::getCtrl().
channelExecuteGetNoWait: Executes ca_get method WITH CALLBACK!
A channelRequestPolicyGet.getMethodKind()==WITHOUT_CALLBACK setting is
ignored; getMethodKind()=WITH_DEFAULT_CALLBACK is then used
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestMetaData, channelRequestMetaDataClient, channelRequestPolicyGet, channelRequestStatusGet, cs, ECAFE_INVALID_HANDLE, ChannelRequestPolicy::getHandler(), ChannelRequestPolicy::getMethodKind(), ChannelRequestMetaData::getOffset(), CALLBACK_CAFE::handlerGet(), ICAFE_NORMAL, ICAFE_WAITING_FOR_PREV_CALLBACK, MUTEX, CAFENUM::PENDING, ChannelRequestStatus::setCallbackKind(), ChannelRequestMetaData::setOffset(), ChannelRequestStatus::setRequestStatus(), status, CAFENUM::WITH_CALLBACK_DEFAULT, CAFENUM::WITH_CALLBACK_USER_SUPPLIED, and CAFENUM::WITHOUT_CALLBACK.
Referenced by CAFE::get().
channelExecutePut: prepare client's requested data for ca call
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestMetaPrimitive, channelRequestPolicyPut, channelRequestStatusPut, channelTimeoutPolicyPut, CHECK_CONSISTENCY_CA_STATE, HandleHelper::checkConsistency(), cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, CAFENUM::FLUSH_DESIGNATED_TO_CLIENT, CAFENUM::FLUSH_NOW, ChannelTimeoutPolicy::getDeltaTimeout(), ChannelRequestPolicy::getHandler(), ChannelRequestPolicy::getMethodKind(), ChannelTimeoutPolicy::getNtries(), ChannelTimeoutPolicy::getSelfGoverningTimeout(), ChannelTimeoutPolicy::getTimeout(), ChannelRequestPolicy::getWaitKind(), ChannelRequestPolicy::getWhenToFlushSendBuffer(), CALLBACK_CAFE::handlerPut(), helper, ICAFE_CS_DISCONN, ICAFE_NORMAL, methodKind, MUTEX, CAFENUM::NO_WAIT, CAFENUM::PENDING, HandleHelper::printHandle(), ChannelRequestStatus::setCallbackKind(), ChannelRequestStatus::setCallbackStatus(), ChannelRequestStatus::setPendStatus(), ChannelRequestStatus::setRequestStatus(), ChannelTimeoutPolicy::setSelfGoverningTimeout(), ChannelTimeoutPolicy::setTimeout(), status, CAFENUM::WAIT, waitForPutEvent(), CAFENUM::WITH_CALLBACK_DEFAULT, CAFENUM::WITH_CALLBACK_USER_SUPPLIED, and CAFENUM::WITHOUT_CALLBACK.
Referenced by Instant< CTYPE >::set(), and CAFE::set().
channelPrepareGet: prepare client's requested data for ca call
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestDataTypePolicy, channelRequestMetaData, channelRequestMetaDataClient, convertMatrix(), cs, CAFENUM::DBR_CLASS, CAFENUM::DBR_CTRL, CAFENUM::DBR_GR, CAFENUM::DBR_NONE, CAFENUM::DBR_PRIMITIVE, CAFENUM::DBR_PUT, CAFENUM::DBR_STS, CAFENUM::DBR_STSACK, CAFENUM::DBR_TIME, ECAFE_INVALID_HANDLE, ChannelRequestMetaData::getCafeDbrType(), ChannelRequestMetaData::getDataType(), ChannelRequestMetaData::getNelem(), ChannelRequestMetaData::getOffset(), ChannelRequestDataTypePolicy::getRequestKind(), ICAFE_NORMAL, CAFENUM::LOWEST_DATATYPE, MUTEX, ChannelRequestMetaData::setCafeDbrType(), ChannelRequestMetaData::setDataType(), ChannelRequestMetaData::setDbrDataType(), and ChannelRequestMetaData::setNelem().
Referenced by Instant< CTYPE >::get(), CAFE::get(), and CAFE::groupGet().
channelPrepareGetCtrl: prepare client's requested data for ca call
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestDataTypePolicy, channelRequestMetaCtrl, channelRequestMetaCtrlClient, channelRequestMetaData, convertMatrix(), cs, CAFENUM::DBR_CTRL, CAFENUM::DBR_GR, ECAFE_INVALID_HANDLE, ChannelRequestMetaData::getCafeDbrType(), ChannelRequestMetaData::getDataType(), ChannelRequestMetaData::getNelem(), ChannelRequestDataTypePolicy::getRequestKind(), ICAFE_NORMAL, CAFENUM::LOWEST_DATATYPE, MAX_NELEM_FOR_CTRL_BUFFER, MUTEX, ChannelRequestMetaData::setCafeDbrType(), ChannelRequestMetaData::setDataType(), ChannelRequestMetaData::setDbrDataType(), and ChannelRequestMetaData::setNelem().
Referenced by CAFE::getCtrl().
channelPreparePut: prepare client's requested data for ca call
_handle | input: handle |
References __METHOD__, cafeMutex, channelRequestDataTypePolicy, channelRequestMetaDataClient, channelRequestMetaPrimitive, convertMatrix(), cs, CAFENUM::DBR_PRIMITIVE, CAFENUM::DBR_STS, CAFENUM::DBR_TIME, ECAFE_INVALID_HANDLE, ChannelRequestMetaData::getCafeDbrType(), ChannelRequestMetaData::getDataType(), ChannelRequestMetaData::getNelem(), ChannelRequestDataTypePolicy::getRequestKind(), ICAFE_NORMAL, CAFENUM::LOWEST_DATATYPE, MUTEX, ChannelRequestMetaData::setCafeDbrType(), ChannelRequestMetaData::setDataType(), ChannelRequestMetaData::setDbrDataType(), and ChannelRequestMetaData::setNelem().
Referenced by CAFE::groupSet(), Instant< CTYPE >::set(), and CAFE::set().
Contains methods that are used by Instant template, namely verifyChannelGetMethod: preVerification of client's requested data.
_handle | input: handle to Conduit Object | |
_dbrType | input: chtype |
References cafeMutex, channelRequestMetaDataClient, channelRequestStatusGet, CHECK_CONSISTENCY_CA_STATE, HandleHelper::checkConsistency(), Helper::convertToCAFEDbrTypeClass(), cs, ECAFE_INVALID_HANDLE, ECAFE_NORDACCESS, ChannelRequestMetaData::getDataType(), ChannelRequestMetaData::getDbrDataType(), helper, ICAFE_CA_OP_CONN_DOWN, ICAFE_CS_CLOSED, ICAFE_CS_NEVER_CONN, ICAFE_NORMAL, MUTEX, ChannelRequestMetaData::setCafeDbrType(), ChannelRequestMetaData::setDataType(), ChannelRequestMetaData::setDbrDataType(), ChannelRequestStatus::setPreRequestStatus(), and status.
Referenced by Instant< CTYPE >::get(), CAFE::get(), Instant< CTYPE >::getCache(), CAFE::getCache(), CAFE::getCacheNoWait(), and CAFE::groupGet().
channelVerifyGetCtrl: preVerification of client's requested data
_handle | input: handle | |
_dbrType | input: chtype |
References cafeMutex, channelRequestMetaCtrlClient, channelRequestStatusGetCtrl, CHECK_CONSISTENCY_CA_STATE, HandleHelper::checkConsistency(), Helper::convertToCAFEDbrTypeClass(), cs, ECAFE_INVALID_HANDLE, ECAFE_NORDACCESS, helper, ICAFE_CA_OP_CONN_DOWN, ICAFE_CS_CLOSED, ICAFE_CS_NEVER_CONN, ICAFE_NORMAL, MUTEX, ChannelRequestMetaData::setCafeDbrType(), ChannelRequestMetaData::setDataType(), ChannelRequestMetaData::setDbrDataType(), ChannelRequestStatus::setPreRequestStatus(), and status.
Referenced by CAFE::getCtrl(), and CAFE::getCtrlCache().
Contains methods that are used by Instant template: channelVerifyPut: preVerification of client's requested data.
_handle | input: handle to Conduit Object | |
_dbrType | input: chtype |
References cafeMutex, channelRequestMetaDataClient, channelRequestStatusPut, CHECK_CONSISTENCY_CA_STATE, HandleHelper::checkConsistency(), Helper::convertToCAFEDbrTypeClass(), cs, ECAFE_INVALID_HANDLE, ECAFE_NOWTACCESS, ChannelRequestMetaData::getDataType(), ChannelRequestMetaData::getDbrDataType(), helper, ICAFE_CA_OP_CONN_DOWN, ICAFE_CS_CLOSED, ICAFE_CS_NEVER_CONN, ICAFE_NORMAL, MUTEX, ChannelRequestMetaData::setCafeDbrType(), ChannelRequestMetaData::setDataType(), ChannelRequestMetaData::setDbrDataType(), ChannelRequestStatus::setPreRequestStatus(), and status.
Referenced by CAFE::groupSet(), Instant< CTYPE >::set(), and CAFE::set().
chtype Granules::convertMatrix | ( | const chtype | nativeType, | |
const chtype | clientT | |||
) | [private] |
convertMatrix determines datatype for message transmission. The datatype will be the smaller of the native datatype and that requested by client.
nativeType | input: native datatype | |
clientT | input: datatype is that requested by client |
References __METHOD__.
Referenced by channelPrepareGet(), channelPrepareGetCtrl(), and channelPreparePut().
bool Granules::isGetCallbackDone | ( | const unsigned int | _handle | ) | [private] |
isGetCallbackDone performs a ca_poll() and queries the Conduit data container to determine if the getWithCallback has been completed
_handle | input: handle |
References __METHOD__, cs, and CAFENUM::PENDING.
bool Granules::isGetCtrlCallbackDone | ( | const unsigned int | _handle | ) | [private] |
isGetXtrlCallbackDone performs a ca_poll() and queries the Conduit data container to determine if the getCtrlWithCallback has been completed
_handle | input: handle |
References __METHOD__, cs, and CAFENUM::PENDING.
bool Granules::isPutCallbackDone | ( | const unsigned int | _handle | ) | [private] |
isPutCallbackDone performs a ca_poll() and queries the Conduit data container to determine if the putWithCallback has been completed
_handle | input: handle |
References __METHOD__, cs, and CAFENUM::PENDING.
waitForGetCtrlEvent: waits for get callback to complete
_handle | input: handle | |
_timeout | input: wait time before method timeouts |
References channelRequestStatusGetCtrl, cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, ChannelRequestStatus::getCallbackProgressKind(), ChannelRequestStatus::getMessageStatus(), ICAFE_NORMAL, CAFENUM::PENDING, and status.
Referenced by channelExecuteGetCtrl(), and CAFE::getCtrlCache().
waitForGetEvent: waits for get callback to complete
_handle | input: handle | |
_timeout | input: wait time before method timeouts |
References __METHOD__, channelRequestStatusGet, cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, ChannelRequestStatus::getCallbackProgressKind(), ChannelRequestStatus::getMessageStatus(), ICAFE_NORMAL, CAFENUM::PENDING, and status.
Referenced by channelExecuteGet(), Instant< CTYPE >::getCache(), CAFE::getCache(), and CAFE::waitForGetEvent().
int Granules::waitForManyGetEvents | ( | const unsigned int * | handleArray, | |
unsigned int | arrayLength, | |||
std::map< unsigned int, int > & | bundleResponse | |||
) | [private] |
waitForManyGetEvents: waits for all get callback to complete
handleArray | input: array of handles | |
arrayLength | input: size of array of handles | |
bundleResponse | output: map<unsigned int, int> |
cout << nWaitActiveOver << " nWaitActiveOver// " << nWaitActive << endl;
cout << "No iterations << " << nIterations << endl; /if (nIterations>5000) break;
References __METHOD__, cafeMutex, channelRequestPolicyGet, channelRequestStatusGet, channelTimeoutPolicyGet, cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, ChannelTimeoutPolicy::getDeltaTimeout(), ChannelRequestStatus::getMessageStatus(), ChannelTimeoutPolicy::getNtries(), ChannelTimeoutPolicy::getTimeout(), ICAFE_NORMAL, MUTEX, CAFENUM::PENDING, ChannelRequestPolicy::setCallbackStatus(), ChannelTimeoutPolicy::setSelfGoverningTimeout(), and status.
Referenced by CAFE::get(), and CAFE::waitForBundledEvents().
waitForPutEvent: waits for put callback to complete
_handle | input: handle | |
_timeout | input: wait time before method timeouts |
References __METHOD__, channelRequestStatusPut, cs, ECAFE_INVALID_HANDLE, ECAFE_TIMEOUT, ChannelRequestStatus::getCallbackProgressKind(), ChannelRequestStatus::getMessageStatus(), ICAFE_NORMAL, CAFENUM::PENDING, and status.
Referenced by channelExecutePut(), and CAFE::waitForPut().
friend class CAFE [friend] |
friend class Instant [friend] |
CAFEStatus Granules::cafeStatus [private] |
Referenced by channelExecuteGetCtrlNoWait().
Referenced by channelPrepareGet(), channelPrepareGetCtrl(), and channelPreparePut().
Referenced by channelExecuteGetCtrl(), channelExecuteGetCtrlNoWait(), and channelPrepareGetCtrl().
Referenced by channelExecuteGetCtrl(), channelExecuteGetCtrlNoWait(), channelPrepareGetCtrl(), and channelVerifyGetCtrl().
Referenced by channelExecuteGet(), channelExecuteGetNoWait(), channelPrepareGet(), and channelPrepareGetCtrl().
Referenced by channelExecutePut(), and channelPreparePut().
Referenced by channelExecuteGet(), channelExecuteGetNoWait(), and waitForManyGetEvents().
Referenced by channelExecuteGetCtrl(), and channelExecuteGetCtrlNoWait().
Referenced by channelExecutePut().
Referenced by channelExecuteGet(), channelExecuteGetNoWait(), channelVerifyGet(), waitForGetEvent(), and waitForManyGetEvents().
Referenced by channelExecuteGetCtrl(), channelExecuteGetCtrlNoWait(), channelVerifyGetCtrl(), and waitForGetCtrlEvent().
Referenced by channelExecutePut(), channelVerifyPut(), and waitForPutEvent().
Referenced by channelExecuteGet(), channelExecuteGetCtrl(), and waitForManyGetEvents().
Referenced by channelExecutePut().
HandleHelper Granules::helper [private] |
ChannelRequestPolicyKind Granules::methodKind [private] |
Referenced by channelExecutePut().
int Granules::status [private] |