PvaClientChannelPut

s

pvaClientPut is a synchronous wrapper for the pvAccess::ChannelPut API, which is a callback based API. Thus it is easier to use than pvAccess::ChannelPut itself.

NOTE: Except for union fields pvaClientPut takes care of modifying the bitSet associated with the data sent to the server.

An instance of PvaClientPut is created via a call to one of the followimg:

class PvaClientChannel
...
{
...
    PvaClientPutPtr put(std::string const & request = "field(value,alarm,timeStamp)");
    PvaClientPutPtr createPut(std::string const & request = "");
    PvaClientPutPtr createPut(epics::pvData::PVStructurePtr const &  pvRequest);
...
};

An instance of PvaClientPut/b> connects to a single channel. PvaClientPut has both synchronous methods, which block, and non blocking methods.

PvaClientPut has methods:

connect             Calls issueConnect and then waitConnect.
issueConnect        issues a request to the server to create the server side of ChannelPut.
waitConnect         blocks until server responds that it has created the ChannelPut.
get                 Calls issueGet and then waitGet.
issueGet            issues a request to the server to get the latest data.
waitGet             waits until the server send a message that the get is complete.
put                 Calls issuePut and then waitPut.
issuePut            issues a put request to the server.
waitPut             waits until the server send a message that the put is complete.
getData             get the data.

Note that issueConnect, issueGet and issuePut do not block but all other methods do block.