Module.ct
Go to the documentation of this file.
1 //
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
6 //
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
11 //
12 
13 
14 /** \file
15  \brief Module non-inline template implementation */
16 
17 #include "Module.ih"
18 
19 // Custom includes
20 
21 #define prefix_
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
23 
24 //-/////////////////////////////////////////////////////////////////////////////////////////////////
25 // senf::ppi::module::Module
26 
27 #ifndef DOXYGEN
28 
29 template <class Descriptor, class Target>
30 prefix_ void senf::ppi::module::Module::registerEvent(Descriptor & descriptor, Target target)
31 {
32  eventManager().registerEvent(
33  *this,
34  EventManager::Callback<Descriptor>::make(target,*this),
35  descriptor);
36  descriptor.enabled(true);
37 }
38 
39 #else
40 template <class Target>
41 prefix_ void senf::ppi::module::Module::registerEvent(EventDescriptor & descriptor,
42  Target target)
43 {}
44 #endif
45 
46 //-/////////////////////////////////////////////////////////////////////////////////////////////////
47 // senf::ppi::module::detail namespace members
48 
49 template <class Source, class Target>
50 prefix_ void senf::ppi::module::detail::RouteHelper<Source,Target>::
51 route(Module & module, Source & source, Target & target,
52  connector::InputConnector &, connector::OutputConnector &)
53 {
54  module.registerConnector(source);
55  module.registerConnector(target);
56 }
57 
58 template <class Source, class Target>
59 prefix_ void senf::ppi::module::detail::RouteHelper<Source,Target>::
60 route(Module & module, Source & source, Target & target,
61  connector::InputConnector &, EventDescriptor &)
62 {
63  module.registerConnector(source);
64 }
65 
66 template <class Source, class Target>
67 prefix_ void senf::ppi::module::detail::RouteHelper<Source,Target>::
68 route(Module & module, Source & source, Target & target,
69  EventDescriptor &, connector::OutputConnector &)
70 {
71  module.registerConnector(target);
72 }
73 
74 //-/////////////////////////////////////////////////////////////////////////////////////////////////
75 #undef prefix_
76 
77 
78 // Local Variables:
79 // mode: c++
80 // fill-column: 100
81 // comment-column: 40
82 // c-file-style: "senf"
83 // indent-tabs-mode: nil
84 // ispell-local-dictionary: "american"
85 // compile-command: "scons -u test"
86 // End: