12 #ifdef epicsExportSharedSymbols
13 # define rpcClientEpicsExportSharedSymbols
14 # undef epicsExportSharedSymbols
16 #include <pv/pvData.h>
17 #include <pv/valueBuilder.h>
18 #ifdef rpcClientEpicsExportSharedSymbols
19 # define epicsExportSharedSymbols
20 # undef rpcClientEpicsExportSharedSymbols
23 #include <pv/rpcService.h>
27 #define RPCCLIENT_DEFAULT_TIMEOUT 5.0
51 static shared_pointer create(
const std::string & serviceName,
52 epics::pvData::PVStructure::shared_pointer
const & pvRequest = epics::pvData::PVStructure::shared_pointer());
55 epics::pvData::PVStructure::shared_pointer
const & pvRequest,
56 const ChannelProvider::shared_pointer& provider = ChannelProvider::shared_pointer(),
76 bool connect(
double timeout = RPCCLIENT_DEFAULT_TIMEOUT);
90 bool waitConnect(
double timeout = RPCCLIENT_DEFAULT_TIMEOUT);
102 epics::pvData::PVStructure::shared_pointer request(
103 epics::pvData::PVStructure::shared_pointer
const & pvArgument,
104 double timeout = RPCCLIENT_DEFAULT_TIMEOUT,
105 bool lastRequest =
false);
115 epics::pvData::PVStructure::shared_pointer
const & pvArgument,
116 bool lastRequest =
false);
124 epics::pvData::PVStructure::shared_pointer waitResponse(
double timeout = RPCCLIENT_DEFAULT_TIMEOUT);
129 ChannelProvider::shared_pointer m_provider;
130 Channel::shared_pointer m_channel;
131 ChannelRPC::shared_pointer m_rpc;
132 const epics::pvData::PVStructure::shared_pointer m_pvRequest;
135 std::tr1::shared_ptr<RPCRequester> m_rpc_requester;
complex< _Tp > & operator=(const _Tp &)
RPCClient is an interface class that is used by a service client.