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.