# pvaClientCPP Module This document summarizes the changes to the module between releases. ## Release 4.5.0 (EPICS 7.0.2.2, Apr 2019) Changes have been made for getDouble, putDouble, getDoubleArray, putDoubleArray, getString, putString, getStringArray, and putStringArray. 1) 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 pva->channel("PVRdumbPowerSupply")->putDouble(1.0,"power.value" ); 2) 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 pva->channel("PVRdouble")->putDouble(1.0 ); 3) getDoubleArray and putDoubleArray work with any numeric scalar array 4) getStringArray and putStringArray work with any scalar array. ## Release 4.4 (EPICS 7.0.2, Dec 2018) ### API changes to PvaClientMonitor The create method that had arguments for stateChangeRequester and monitorRequester no longer exists. ### API changes to PvaClientGet, ..., PvaClientMonitor Previously the pvaClientGet, ..., pvaClientMonitor classes all implemented PvaClientChannelStateChangeRequester(). This method was never called and has been removed. ## Release 4.3 (EPICS 7.0.1, Dec 2017) ### Requires pvDataCPP-7.0 and pvAccessCPP-6.0 versions This release will not work with older versions of these modules. ### Destroy methods removed All the destroy() methods have been removed, implementation is RAII compliant. ### API changes to PvaClientMonitor 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 ); ## Release 4.2 (EPICS V4.6, Aug 2016) * The examples are moved to exampleCPP. * Support for channelRPC is now available. * In PvaClientMultiChannel checkConnected() now throws an exception if connect fails. ## Release 4.1 (EPICS V4.5, Oct 2015) pvaClient is a synchronous API for pvAccess. This is the first release of pvaClientCPP. It provides an API that is similar to pvaClientJava.