Add support for RPC to pvDatabase

Add a new function to PVRecord which returns a service (from the
pvAccess RPC library) for a supplied pvRequest (defaults to returning
a null pointer).

Add an implementation of ChannelRPC which gets the service from the
record and is used by ChannelLocal.
This commit is contained in:
Dave Hickin
2015-12-08 10:37:37 +00:00
parent c717138c7d
commit a99b08fd02
2 changed files with 215 additions and 4 deletions

View File

@@ -23,6 +23,7 @@
#include <pv/pvData.h>
#include <pv/pvCopy.h>
#include <pv/pvTimeStamp.h>
#include <pv/rpcService.h>
#ifdef pvdatabaseEpicsExportSharedSymbols
# define epicsExportSharedSymbols
@@ -189,6 +190,17 @@ public:
bool removeListener(
PVListenerPtr const & pvListener,
epics::pvData::PVCopyPtr const & pvCopy);
/**
* Return a service corresponding to the specified request PVStructure.
* @param pvRequest The request PVStructure
* @return The corresponding service
*/
virtual epics::pvAccess::Service::shared_pointer getService(
epics::pvData::PVStructurePtr const & pvRequest)
{
return epics::pvAccess::Service::shared_pointer();
}
/**
* Begins a group of puts.
*/