PPI: Complete connector implementation
[senf.git] / PPI / Module.cci
index 04ecc61..382ac57 100644 (file)
@@ -27,6 +27,7 @@
 #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_ boost::posix_time::ptime senf::ppi::module::Module::eventTime()
@@ -49,16 +49,32 @@ prefix_ boost::posix_time::ptime senf::ppi::module::Module::eventTime()
 // 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);
+}
 
 ////////////////////////////////////////
 // private members
 
+prefix_ void senf::ppi::module::Module::init()
+{}
+
 prefix_ senf::ppi::EventManager & senf::ppi::module::Module::eventManager()
 {
     return EventManager::instance();
 }
 
+prefix_ senf::ppi::ModuleManager & senf::ppi::module::Module::moduleManager()
+{
+    return ModuleManager::instance();
+}
+
 prefix_ void senf::ppi::module::Module::registerConnector(connector::Connector & connector)
 {
     connectorRegistry_.push_back(&connector);