summaryrefslogtreecommitdiff
path: root/icetray/dryice
diff options
context:
space:
mode:
Diffstat (limited to 'icetray/dryice')
-rw-r--r--icetray/dryice/dryice.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/icetray/dryice/dryice.h b/icetray/dryice/dryice.h
index a934efa..237c31f 100644
--- a/icetray/dryice/dryice.h
+++ b/icetray/dryice/dryice.h
@@ -5,9 +5,10 @@
#include <IceBox/IceBox.h>
#include <visibility.h>
#include "icetrayService.h"
+#include "icecube.h"
namespace IceTray {
- class DLL_PUBLIC DryIce {
+ class DLL_PUBLIC DryIce : private Cube {
public:
DryIce(const Ice::StringSeq & = Ice::StringSeq());
DryIce(const DryIce &) = delete;
@@ -22,6 +23,14 @@ namespace IceTray {
void replace(const std::string &, const Ice::ObjectPtr &);
+ template<typename T, typename I, typename ... Args>
+ static auto replace(const Args & ... args)
+ {
+ pm()->remove<CubePlugIn>(typeid(T).name());
+ return add<T, I>(args...);
+ }
+
+
Ice::CommunicatorPtr ic;
IceTray::ServicePtr s;
};