X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FModule.cci;h=3f0817d3e1ee7ae3d55aae1cc693ee04aff92579;hb=1a29b75bf774444ec182dfff8480a0c53597bf85;hp=382ac579cd2f539f904b2747bc353806931f8b75;hpb=f539f4271d470794a773a92bacd8ba086c9bc1cd;p=senf.git diff --git a/PPI/Module.cci b/PPI/Module.cci index 382ac57..3f0817d 100644 --- a/PPI/Module.cci +++ b/PPI/Module.cci @@ -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 @@ -35,57 +35,77 @@ /////////////////////////////////////////////////////////////////////////// // senf::ppi::module::Module -prefix_ senf::ppi::module::Module::~Module() +//////////////////////////////////////// +// private members + +prefix_ void senf::ppi::module::Module::v_init() +{} + +prefix_ senf::ppi::EventManager & senf::ppi::module::Module::eventManager() + const { - moduleManager().unregisterModule(*this); + return EventManager::instance(); } -prefix_ boost::posix_time::ptime senf::ppi::module::Module::eventTime() +prefix_ senf::ppi::ModuleManager & senf::ppi::module::Module::moduleManager() + const { - return eventManager().eventTime(); + return ModuleManager::instance(); } -//////////////////////////////////////// -// protected members - -prefix_ senf::ppi::module::Module::Module() +prefix_ void senf::ppi::module::Module::registerConnector(connector::Connector & connector) { - moduleManager().registerModule(*this); + if (std::find(connectorRegistry_.begin(), connectorRegistry_.end(), &connector) + == connectorRegistry_.end()) { + connectorRegistry_.push_back(&connector); + connector.setModule(*this); + } } -prefix_ void senf::ppi::module::Module::noroute(connector::Connector & connector) +prefix_ senf::ppi::RouteBase & +senf::ppi::module::Module::addRoute(std::auto_ptr route) { - registerConnector(connector); - connector.setModule(*this); + routes_.push_back(route.release()); + return routes_.back(); } //////////////////////////////////////// -// private members +// public members -prefix_ void senf::ppi::module::Module::init() -{} +prefix_ senf::ppi::module::Module::~Module() +{ + moduleManager().unregisterModule(*this); +} -prefix_ senf::ppi::EventManager & senf::ppi::module::Module::eventManager() +prefix_ senf::ClockService::clock_type senf::ppi::module::Module::time() + const { - return EventManager::instance(); + return eventManager().time(); } -prefix_ senf::ppi::ModuleManager & senf::ppi::module::Module::moduleManager() +prefix_ senf::ClockService::clock_type senf::ppi::module::Module::now() + const { - return ModuleManager::instance(); + return eventManager().now(); } -prefix_ void senf::ppi::module::Module::registerConnector(connector::Connector & connector) +//////////////////////////////////////// +// protected members + +prefix_ senf::ppi::module::Module::Module() +{ + moduleManager().registerModule(*this); +} + +prefix_ void senf::ppi::module::Module::noroute(connector::Connector & connector) { - connectorRegistry_.push_back(&connector); + registerConnector(connector); connector.setModule(*this); } -prefix_ senf::ppi::RouteBase & -senf::ppi::module::Module::addRoute(std::auto_ptr route) +prefix_ void senf::ppi::module::Module::destroy() { - routes_.push_back(route.release()); - return routes_.back(); + eventManager().destroyModule(*this); } ///////////////////////////////cci.e///////////////////////////////////////