diff options
Diffstat (limited to 'icetray/dryice')
-rw-r--r-- | icetray/dryice/dryice.cpp | 9 | ||||
-rw-r--r-- | icetray/dryice/dryice.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/icetray/dryice/dryice.cpp b/icetray/dryice/dryice.cpp index cdb11e1..744e0a6 100644 --- a/icetray/dryice/dryice.cpp +++ b/icetray/dryice/dryice.cpp @@ -3,6 +3,7 @@ #include <dlfcn.h> #include <factory.h> #include <Ice/Initialize.h> +#include <Ice/ObjectAdapter.h> namespace IceTray { typedef IceTray::Service *(* SetupFunction)(Ice::CommunicatorPtr); @@ -41,6 +42,14 @@ namespace IceTray { } } + void + DryIce::replace(const std::string & name, Ice::ObjectPtr replacement) + { + auto id = ic->stringToIdentity(name); + s->adp->remove(id); + s->adp->add(replacement, id); + } + DryIceClient::DryIceClient() { } diff --git a/icetray/dryice/dryice.h b/icetray/dryice/dryice.h index 998f76d..bd8443f 100644 --- a/icetray/dryice/dryice.h +++ b/icetray/dryice/dryice.h @@ -20,6 +20,8 @@ namespace IceTray { friend class DryIceClient; static DryIce * currentDryIce; + void replace(const std::string &, Ice::ObjectPtr); + Ice::CommunicatorPtr ic; IceTray::ServicePtr s; }; |