From a11e56067f43bf9c4be672bc94a3ec98a14ccccb Mon Sep 17 00:00:00 2001 From: Auke Klazema <klazema@astron.nl> Date: Wed, 8 Mar 2017 13:03:49 +0000 Subject: [PATCH] Task #10253: Placed construction in constructors --- MAC/WinCCServices/src/Program.cc | 14 ++++++++------ MAC/WinCCServices/src/Program.h | 5 +++-- MAC/WinCCServices/src/WinCCPublisherMain.cc | 2 -- MAC/WinCCServices/src/WinCCWrapper.h | 1 - MAC/WinCCServices/src/WinCCWrapperImpl.cc | 5 +++-- MAC/WinCCServices/src/WinCCWrapperImpl.h | 5 +++-- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/MAC/WinCCServices/src/Program.cc b/MAC/WinCCServices/src/Program.cc index 85682eb6b4c..2a87d676697 100644 --- a/MAC/WinCCServices/src/Program.cc +++ b/MAC/WinCCServices/src/Program.cc @@ -29,7 +29,7 @@ namespace LOFAR { using namespace std; -void Program::init() +Program::Program() { try { @@ -42,24 +42,26 @@ void Program::init() HotLinkWaitForAnswerFactoryImpl factory(*toBus, dataPointNameResolver); winCCWrapper.reset(new WinCCWrapperImpl(factory)); - winCCWrapper->init(); + winCCWrapper->connect_datapoints(publisherResources.getDataPoints()); } catch (std::exception &e) { std::cerr << e.what() << std::endl; Manager::exit(0); + + throw; } } -void Program::run() +Program::~Program() { - winCCWrapper->run(); + Manager::exit(0); } -void Program::exit() +void Program::run() { - Manager::exit(0); + winCCWrapper->run(); } } // namespace WINCCSERVICES diff --git a/MAC/WinCCServices/src/Program.h b/MAC/WinCCServices/src/Program.h index 1dca3b180e9..0a939bd14db 100644 --- a/MAC/WinCCServices/src/Program.h +++ b/MAC/WinCCServices/src/Program.h @@ -33,9 +33,10 @@ namespace LOFAR { class Program { public: - void init(); + Program(); + ~Program(); + void run(); - void exit(); private: ConfigReaderImpl configReader; DataPointNameResolverImpl dataPointNameResolver; diff --git a/MAC/WinCCServices/src/WinCCPublisherMain.cc b/MAC/WinCCServices/src/WinCCPublisherMain.cc index 4ac2853149f..93c93549808 100644 --- a/MAC/WinCCServices/src/WinCCPublisherMain.cc +++ b/MAC/WinCCServices/src/WinCCPublisherMain.cc @@ -25,9 +25,7 @@ int main() { Program program; - program.init(); program.run(); - program.exit(); return 0; } \ No newline at end of file diff --git a/MAC/WinCCServices/src/WinCCWrapper.h b/MAC/WinCCServices/src/WinCCWrapper.h index eff52c744b5..fcada8698fb 100644 --- a/MAC/WinCCServices/src/WinCCWrapper.h +++ b/MAC/WinCCServices/src/WinCCWrapper.h @@ -31,7 +31,6 @@ namespace LOFAR { class WinCCWrapper { public: - virtual void init() = 0; virtual bool connect_datapoints(const std::vector<std::string> &datapoints) = 0; virtual void run() = 0; }; diff --git a/MAC/WinCCServices/src/WinCCWrapperImpl.cc b/MAC/WinCCServices/src/WinCCWrapperImpl.cc index f50eba6028c..9e87aa30447 100644 --- a/MAC/WinCCServices/src/WinCCWrapperImpl.cc +++ b/MAC/WinCCServices/src/WinCCWrapperImpl.cc @@ -26,12 +26,13 @@ namespace LOFAR { using namespace std; -PVSSboolean WinCCWrapperImpl::doExit = PVSS_FALSE; +bool WinCCWrapperImpl::doExit = false; WinCCWrapperImpl::WinCCWrapperImpl(HotLinkWaitForAnswerFactory &factory) : Manager(ManagerIdentifier(API_MAN, Resources::getManNum())), factory(factory) { + init(); } void WinCCWrapperImpl::init() @@ -113,7 +114,7 @@ void WinCCWrapperImpl::signalHandler(int sig) { if ((sig == SIGINT) || (sig == SIGTERM)) { - WinCCWrapperImpl::doExit = PVSS_TRUE; + WinCCWrapperImpl::doExit = true; } else { diff --git a/MAC/WinCCServices/src/WinCCWrapperImpl.h b/MAC/WinCCServices/src/WinCCWrapperImpl.h index 52a3d728980..2b171765f2d 100644 --- a/MAC/WinCCServices/src/WinCCWrapperImpl.h +++ b/MAC/WinCCServices/src/WinCCWrapperImpl.h @@ -36,13 +36,14 @@ class WinCCWrapperImpl : public WinCCWrapper, public Manager { public: WinCCWrapperImpl(HotLinkWaitForAnswerFactory &factory); - void init(); bool connect_datapoints(const std::vector<std::string> &dataPoints); void run(); virtual void signalHandler(int sig); private: - static PVSSboolean doExit; + void init(); + + static bool doExit; const HotLinkWaitForAnswerFactory& factory; }; -- GitLab