From 3880140ce94a6551859f772a8d5df37c4f69768e Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 21 Jul 2017 20:34:19 +0100 Subject: Create a private adapter for the DryIceClient to use inside the same communicator as the service --- icetray/dryice/dryice.cpp | 20 +++++++++++++++++++- icetray/dryice/dryice.h | 6 ++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/icetray/dryice/dryice.cpp b/icetray/dryice/dryice.cpp index 5223ca6..c75e536 100644 --- a/icetray/dryice/dryice.cpp +++ b/icetray/dryice/dryice.cpp @@ -13,6 +13,7 @@ namespace IceTray { Ice::StringSeq args; Ice::InitializationData id; id.properties = Ice::createProperties(); + id.properties->setProperty("DryIceClient.Endpoints", "default"); id.properties->setProperty("DryIce.Endpoints", "default"); id.properties->setProperty("DryIce.PoolProvider", "MockPool"); id.properties->parseCommandLineOptions("", cmdline); @@ -43,12 +44,29 @@ namespace IceTray { s->adp->add(replacement, id); } - DryIceClient::DryIceClient() + DryIceClient::DryIceClient() : + adapter(DryIce::currentDryIce->ic->createObjectAdapter("DryIceClient")) { } DryIceClient::~DryIceClient() { + adapter->deactivate(); + adapter->destroy(); + } + + ServicePtr + DryIceClient::getService() const + { + BOOST_ASSERT(DryIce::currentDryIce); + BOOST_ASSERT(DryIce::currentDryIce->s); + return DryIce::currentDryIce->s; + } + + Ice::ObjectAdapterPtr + DryIceClient::getAdapter() const + { + return adapter; } } diff --git a/icetray/dryice/dryice.h b/icetray/dryice/dryice.h index bd8443f..363956b 100644 --- a/icetray/dryice/dryice.h +++ b/icetray/dryice/dryice.h @@ -36,6 +36,12 @@ namespace IceTray { { return Prx::checkedCast(DryIce::currentDryIce->ic->stringToProxy(objectName)); } + + ServicePtr getService() const; + Ice::ObjectAdapterPtr getAdapter() const; + + private: + Ice::ObjectAdapterPtr adapter; }; } -- cgit v1.2.3