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.