symmetric RPC
This commit is contained in:
@@ -267,8 +267,6 @@ class ChannelPutGetRequesterImpl : public ChannelPutGetRequester
|
||||
class ChannelRPCRequesterImpl : public ChannelRPCRequester
|
||||
{
|
||||
//ChannelRPC::shared_pointer m_channelRPC;
|
||||
epics::pvData::PVStructure::shared_pointer m_pvStructure;
|
||||
epics::pvData::BitSet::shared_pointer m_bitSet;
|
||||
|
||||
virtual String getRequesterName()
|
||||
{
|
||||
@@ -280,20 +278,11 @@ class ChannelRPCRequesterImpl : public ChannelRPCRequester
|
||||
std::cout << "[" << getRequesterName() << "] message(" << message << ", " << messageTypeName[messageType] << ")" << std::endl;
|
||||
}
|
||||
|
||||
virtual void channelRPCConnect(const epics::pvData::Status& status,ChannelRPC::shared_pointer const & channelRPC,
|
||||
epics::pvData::PVStructure::shared_pointer const & pvStructure,epics::pvData::BitSet::shared_pointer const & bitSet)
|
||||
virtual void channelRPCConnect(const epics::pvData::Status& status,ChannelRPC::shared_pointer const & channelRPC)
|
||||
{
|
||||
std::cout << "channelRPCConnect(" << status.toString() << ")" << std::endl;
|
||||
if (status.isSuccess())
|
||||
{
|
||||
String st;
|
||||
pvStructure->toString(&st);
|
||||
std::cout << st << std::endl;
|
||||
}
|
||||
|
||||
//m_channelRPC = channelRPC;
|
||||
m_pvStructure = pvStructure;
|
||||
m_bitSet = bitSet;
|
||||
}
|
||||
|
||||
virtual void requestDone(const epics::pvData::Status& status,epics::pvData::PVStructure::shared_pointer const & pvResponse)
|
||||
@@ -529,7 +518,8 @@ int main(int argc,char *argv[])
|
||||
PVStructure::shared_pointer pvRequest = getCreateRequest()->createRequest("record[]field(arguments)");
|
||||
ChannelRPC::shared_pointer channelRPC = channel->createChannelRPC(channelRPCRequesterImpl, pvRequest);
|
||||
epicsThreadSleep ( 1.0 );
|
||||
channelRPC->request(false);
|
||||
// for test simply use pvRequest as arguments
|
||||
channelRPC->request(pvRequest, false);
|
||||
epicsThreadSleep ( 1.0 );
|
||||
channelRPC->destroy();
|
||||
}
|
||||
|
||||
@@ -371,12 +371,10 @@ class MockChannelRPC : public ChannelRPC
|
||||
private:
|
||||
ChannelRPCRequester::shared_pointer m_channelRPCRequester;
|
||||
PVStructure::shared_pointer m_pvStructure;
|
||||
BitSet::shared_pointer m_bitSet;
|
||||
|
||||
protected:
|
||||
MockChannelRPC(ChannelRPCRequester::shared_pointer const & channelRPCRequester, PVStructure::shared_pointer const & pvStructure, PVStructure::shared_pointer const & pvRequest) :
|
||||
m_channelRPCRequester(channelRPCRequester), m_pvStructure(pvStructure),
|
||||
m_bitSet(new BitSet(pvStructure->getNumberFields()))
|
||||
m_channelRPCRequester(channelRPCRequester), m_pvStructure(pvStructure)
|
||||
{
|
||||
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelRPC);
|
||||
}
|
||||
@@ -386,7 +384,7 @@ class MockChannelRPC : public ChannelRPC
|
||||
{
|
||||
ChannelRPC::shared_pointer thisPtr(new MockChannelRPC(channelRPCRequester, pvStructure, pvRequest));
|
||||
// TODO pvRequest
|
||||
channelRPCRequester->channelRPCConnect(Status::OK, thisPtr, pvStructure, static_cast<MockChannelRPC*>(thisPtr.get())->m_bitSet);
|
||||
channelRPCRequester->channelRPCConnect(Status::OK, thisPtr);
|
||||
return thisPtr;
|
||||
}
|
||||
|
||||
@@ -395,7 +393,7 @@ class MockChannelRPC : public ChannelRPC
|
||||
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelRPC);
|
||||
}
|
||||
|
||||
virtual void request(bool lastRequest)
|
||||
virtual void request(epics::pvData::PVStructure::shared_pointer const & pvArgument, bool lastRequest)
|
||||
{
|
||||
m_channelRPCRequester->requestDone(Status::OK, m_pvStructure);
|
||||
if (lastRequest)
|
||||
|
||||
Reference in New Issue
Block a user