2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
     3 //                    Network Research Group (NET)
     4 //                    Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
     5 //                    Contact: support@wiback.org
     7 // This file is part of the SENF code tree.
     8 // It is licensed under the 3-clause BSD License (aka New BSD License).
     9 // See LICENSE.txt in the top level directory for details or visit
    10 // https://opensource.org/licenses/BSD-3-Clause
    15     \brief Module inline non-template implementation */
    19 #include "EventManager.hh"
    20 #include <boost/lambda/lambda.hpp>
    21 #include <boost/lambda/bind.hpp>
    24 #define prefix_ inline
    25 //-/////////////////////////////////////////////////////////////////////////////////////////////////
    27 //-/////////////////////////////////////////////////////////////////////////////////////////////////
    28 // senf::ppi::module::Module
    30 //-/////////////////////////////////////////////////////////////////////////////////////////////////
    33 prefix_ senf::ppi::EventManager & senf::ppi::module::Module::eventManager()
    36     return EventManager::instance();
    39 prefix_ senf::ppi::ModuleManager & senf::ppi::module::Module::moduleManager()
    42     return ModuleManager::instance();
    45 prefix_ void senf::ppi::module::Module::unregisterEvent(EventDescriptor & event)
    47     routes_.erase_if(boost::bind(&RouteBase::hasEvent, _1, boost::cref(event)));
    50 //-/////////////////////////////////////////////////////////////////////////////////////////////////
    53 prefix_ senf::ppi::module::Module::~Module()
    55     SENF_ASSERT(connectorRegistry_.empty(),
    56                 "Internal failure: connectors still registered in Module destructor ??");
    57     SENF_ASSERT(routes_.empty(),
    58                 "internal failure: routes still registered in Module destructor ??");
    60     moduleManager().unregisterModule(*this);
    63 prefix_ senf::ClockService::clock_type const & senf::ppi::module::Module::time()
    66     return eventManager().time();
    69 prefix_ senf::ClockService::clock_type const & senf::ppi::module::Module::now()
    72     return eventManager().now();
    75 //-/////////////////////////////////////////////////////////////////////////////////////////////////
    78 prefix_ senf::ppi::module::Module::Module()
    80     moduleManager().registerModule(*this);
    83 prefix_ void senf::ppi::module::Module::destroy()
    85     if (EventManager::alive())
    86         eventManager().destroyModule(*this);
    89 prefix_ senf::console::DirectoryNode & senf::ppi::module::Module::sysConsoleDir()
    92     return sysConsoleDir_.node();
    95 //-/////////////////////////////////////////////////////////////////////////////////////////////////
   102 // comment-column: 40
   103 // c-file-style: "senf"
   104 // indent-tabs-mode: nil
   105 // ispell-local-dictionary: "american"
   106 // compile-command: "scons -u test"