summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2017-07-21 20:34:19 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2017-07-21 20:34:19 +0100
commit3880140ce94a6551859f772a8d5df37c4f69768e (patch)
tree7470dff61c6bb0f6912acfa681b0ab4a0eece714
parentAdd support for binding a winder variety of types to SQL commands (diff)
downloadicetray-3880140ce94a6551859f772a8d5df37c4f69768e.tar.bz2
icetray-3880140ce94a6551859f772a8d5df37c4f69768e.tar.xz
icetray-3880140ce94a6551859f772a8d5df37c4f69768e.zip
Create a private adapter for the DryIceClient to use inside the same communicator as the service
-rw-r--r--icetray/dryice/dryice.cpp20
-rw-r--r--icetray/dryice/dryice.h6
2 files changed, 25 insertions, 1 deletions
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;
};
}