// $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 <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
#include "Route.hh"
#include "Connectors.hh"
#include "EventManager.hh"
+#include "ModuleManager.hh"
#define prefix_ inline
///////////////////////////////cci.p///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
// 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);