X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FModuleManager.cc;h=a356eeec452efc802aec9415dfae66299faaee39;hb=6ba573a99f93543ee32292f79865751b3e9b89a4;hp=55c65d2727e313c9460755e69023ea9ebf4822dc;hpb=f539f4271d470794a773a92bacd8ba086c9bc1cd;p=senf.git diff --git a/PPI/ModuleManager.cc b/PPI/ModuleManager.cc index 55c65d2..a356eee 100644 --- a/PPI/ModuleManager.cc +++ b/PPI/ModuleManager.cc @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -27,7 +27,7 @@ //#include "ModuleManager.ih" // Custom includes -#include "Scheduler/Scheduler.hh" +#include "../Scheduler/Scheduler.hh" #include "Module.hh" //#include "ModuleManager.mpp" @@ -45,12 +45,31 @@ prefix_ void senf::ppi::ModuleManager::init() (*i)->init(); } +#ifndef DOXYGEN + +struct senf::ppi::ModuleManager::RunGuard +{ + RunGuard(ModuleManager & m) : manager(m) { manager.running_ = true; } + ~RunGuard() { manager.running_ = false; } + ModuleManager & manager; +}; + +#endif + prefix_ void senf::ppi::ModuleManager::run() { init(); + RunGuard guard (*this); Scheduler::instance().process(); } +//////////////////////////////////////// +// private members + +prefix_ senf::ppi::ModuleManager::ModuleManager() + : running_(false), terminate_(false) +{} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "ModuleManager.mpp"