This document summarizes the changes to the module between releases.
valuefield (issue #56), and are more tolerant of other missing fields (issue #57).
Changes have been made for getDouble, putDouble, getDoubleArray, putDoubleArray, getString, putString, getStringArray, and putStringArray.
Previously each only had support for a top level field named value. Each now allows access to a single sub field that has the correct type. Thus pvRequest must select a single field. For example
PvaChannel now has a method for each of the above. For example instead of
PvaClientChannelPtr channel = pva->channel("PVRdouble"); PvaClientPutPtr clientPut = channel->put(); PvaClientPutDataPtr putData = clientPut->getData(); putData->putDouble(1.0); clientPut->put();
now it can be
getDoubleArray and putDoubleArray work with any numeric scalar array
getStringArray and putStringArray work with any scalar array.
The create method that had arguments for stateChangeRequester and monitorRequester no longer exists.
Previously the pvaClientGet, ..., pvaClientMonitor classes all implemented PvaClientChannelStateChangeRequester(). This method was never called and has been removed.
This release will not work with older versions of these modules.
All the destroy() methods have been removed, implementation is RAII compliant.
The second argument of method
static PvaClientMonitorPtr create( PvaClientPtr const &pvaClient, epics::pvAccess::Channel::shared_pointer const & channel, epics::pvData::PVStructurePtr const &pvRequest );
is now changed to
static PvaClientMonitorPtr create( PvaClientPtr const &pvaClient, PvaClientChannelPtr const & pvaClientChannel, epics::pvData::PVStructurePtr const &pvRequest );
A new method is also implemented
static PvaClientMonitorPtr create( PvaClientPtr const &pvaClient, std::string const & channelName, std::string const & providerName, std::string const & request, PvaClientChannelStateChangeRequesterPtr const & stateChangeRequester, PvaClientMonitorRequesterPtr const & monitorRequester );
pvaClient is a synchronous API for pvAccess.
This is the first release of pvaClientCPP. It provides an API that is similar to pvaClientJava.