pvaClientChannel is a synchronous wrapper for the pvAccess::Channel API, which is a callback based API. Thus it is easier to use than pvAccess::Channel itself.
An instance of PvaClientChannel connects to a single channel. An instance can only be created via class PvaClient which has both synchronous methods, which block, and non blocking methods. The synchrouous methods block until a connection is made to the channel and throw an exception if a timeout occurs while trying to make a connection. The non blocking methods leave connection to the caller.
PvaClientChannel has methods:
PvaClientField NOT IMPLEMENTED PvaClientProcess PvaClientGet PvaClientPut PvaClientPutGet PvaClientMonitor PvaClientArray NOT IMPLEMENTED PvaClientRPC
PvaClientChannel has methods:
PvaClientChannel has methods:
PvaClientGetPtr get(std::string const & request); PvaClientPutPtr put(std::string const & request);
Each of these caches. For example all calls to get with the same request will share the same PvaChannelGet
For example consider a client that makes multiple calls like:
double value; value = pva->channel(channelName)->get()->getData()->getDouble(); ... value = pva->channel(channelName)->get()->getData()->getDouble();
Only the first call creates a new PvaClientChannel and a new PvaClientGet. The second call reuses the cached PvaClientChannel and PvaClientGet.