X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FModule.cci;h=57711250808353f5fe42e28ec11f43cd33c825c9;hb=d04ae6002c7fa6eccaa2acdfb49b16cccdb81845;hp=04ecc61c9b5696445ea1c29e6d9962be3da12d55;hpb=81ffa1c459b96dd44472bcef37e1e373934ee138;p=senf.git diff --git a/PPI/Module.cci b/PPI/Module.cci index 04ecc61..5771125 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) +// 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,6 +27,7 @@ #include "Route.hh" #include "Connectors.hh" #include "EventManager.hh" +#include "ModuleManager.hh" #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// @@ -34,31 +35,60 @@ /////////////////////////////////////////////////////////////////////////// // senf::ppi::module::Module -prefix_ void senf::ppi::module::Module::noroute(connector::Connector & connector) +prefix_ senf::ppi::module::Module::~Module() { - registerConnector(connector); - connector.setModule(*this); + moduleManager().unregisterModule(*this); +} + +prefix_ senf::ClockService::clock_type senf::ppi::module::Module::time() + const +{ + return eventManager().time(); } -prefix_ boost::posix_time::ptime senf::ppi::module::Module::eventTime() +prefix_ senf::ClockService::clock_type senf::ppi::module::Module::now() + const { - return eventManager().eventTime(); + return eventManager().now(); } //////////////////////////////////////// // protected members prefix_ senf::ppi::module::Module::Module() -{} +{ + moduleManager().registerModule(*this); +} + +prefix_ void senf::ppi::module::Module::noroute(connector::Connector & connector) +{ + registerConnector(connector); + connector.setModule(*this); +} + +prefix_ void senf::ppi::module::Module::destroy() +{ + eventManager().destroyModule(*this); +} //////////////////////////////////////// // private members +prefix_ void senf::ppi::module::Module::init() +{} + prefix_ senf::ppi::EventManager & senf::ppi::module::Module::eventManager() + const { return EventManager::instance(); } +prefix_ senf::ppi::ModuleManager & senf::ppi::module::Module::moduleManager() + const +{ + return ModuleManager::instance(); +} + prefix_ void senf::ppi::module::Module::registerConnector(connector::Connector & connector) { connectorRegistry_.push_back(&connector);