From 8d8f64a447300a98db0449cf30c6d3fbc10e351a Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Wed, 12 Jul 2017 22:10:48 +0100 Subject: Assert there is only one service factory and use it regardless of name. Removes hardcoded requirement for a factory unintuatively called 'default' --- icetray/icetray/icetrayService.cpp | 4 +++- icetray/unittests/testService.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/icetray/icetray/icetrayService.cpp b/icetray/icetray/icetrayService.cpp index d206c57..518eeaa 100644 --- a/icetray/icetray/icetrayService.cpp +++ b/icetray/icetray/icetrayService.cpp @@ -29,7 +29,9 @@ namespace IceTray { Service * Service::create(Ice::CommunicatorPtr) { - return IceTray::ServiceFactory::createNew("default"); + auto serviceFactories = AdHoc::PluginManager::getDefault()->getAll(); + BOOST_ASSERT(serviceFactories.size() == 1); + return serviceFactories.begin()->get()->implementation()->create(); } void Service::start(const std::string & name, const Ice::CommunicatorPtr & ic, const Ice::StringSeq & args) diff --git a/icetray/unittests/testService.cpp b/icetray/unittests/testService.cpp index 88a61e9..8f678b0 100644 --- a/icetray/unittests/testService.cpp +++ b/icetray/unittests/testService.cpp @@ -8,5 +8,5 @@ TestService::addObjects(const std::string &, const Ice::CommunicatorPtr &, const IceTray::OptionsResolver myOpts; } -NAMEDFACTORY("default", TestService, IceTray::ServiceFactory); +FACTORY(TestService, IceTray::ServiceFactory); -- cgit v1.2.3