summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2017-07-08 14:12:16 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2017-07-10 16:03:41 +0100
commit78ef4fe8ff4cf88b0359862061af081cf237cdd0 (patch)
tree78a8ac9cb105d123bef77ac32d4630596e0f8325
parentDelete logger if it is deemed unused (diff)
downloadicetray-78ef4fe8ff4cf88b0359862061af081cf237cdd0.tar.bz2
icetray-78ef4fe8ff4cf88b0359862061af081cf237cdd0.tar.xz
icetray-78ef4fe8ff4cf88b0359862061af081cf237cdd0.zip
Refactor setup/shutdown of logger into neater functions
-rw-r--r--icetray/icetray/icetrayService.cpp20
-rw-r--r--icetray/icetray/icetrayService.h3
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<Logging::LogWriterFactory>()) {
- 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;