From 78ef4fe8ff4cf88b0359862061af081cf237cdd0 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 8 Jul 2017 14:12:16 +0100 Subject: Refactor setup/shutdown of logger into neater functions --- icetray/icetray/icetrayService.cpp | 20 ++++++++++++++++---- icetray/icetray/icetrayService.h | 3 +++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/icetray/icetray/icetrayService.cpp b/icetray/icetray/icetrayService.cpp index 9e6044c..79d50bd 100644 --- a/icetray/icetray/icetrayService.cpp +++ b/icetray/icetray/icetrayService.cpp @@ -29,9 +29,17 @@ namespace IceTray { void Service::start(const std::string & name, const Ice::CommunicatorPtr & ic, const Ice::StringSeq & args) { adp = ic->createObjectAdapter(name); + configureLoggers(adp, ic->getProperties()); + addObjects(name, ic, args, adp); + adp->activate(); + } + + void + Service::configureLoggers(const Ice::ObjectAdapterPtr & adp, const Ice::PropertiesPtr & p) + { auto logManager = LOGMANAGER(); for (auto logWriterFactory : AdHoc::PluginManager::getDefault()->getAll()) { - auto logWriter = logWriterFactory->implementation()->create(ic->getProperties().get()); + auto logWriter = logWriterFactory->implementation()->create(p.get()); if (logWriter->lowestLevel()) { auto prx = Logging::LogWriterPrx::uncheckedCast(adp->addWithUUID(logWriter)); logWriters.insert(prx); @@ -41,16 +49,20 @@ namespace IceTray { delete logWriter; } } - addObjects(name, ic, args, adp); - adp->activate(); } - void Service::stop() + void + Service::shutdownLoggers() { auto logManager = LOGMANAGER(); for (auto prx : logWriters) { logManager->removeWriter(prx); } + } + + void Service::stop() + { + shutdownLoggers(); adp->deactivate(); adp->destroy(); } diff --git a/icetray/icetray/icetrayService.h b/icetray/icetray/icetrayService.h index d754bf9..23fee17 100644 --- a/icetray/icetray/icetrayService.h +++ b/icetray/icetray/icetrayService.h @@ -24,6 +24,9 @@ namespace IceTray { static Service * getCurrent(); private: + void configureLoggers(const Ice::ObjectAdapterPtr &, const Ice::PropertiesPtr &); + void shutdownLoggers(); + friend class DryIce; Ice::ObjectAdapterPtr adp; static Service * current; -- cgit v1.2.3