00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00026 #include "Module.ih"
00027
00028
00029
00030 #define prefix_
00031
00032
00033
00034
00035
00036 #ifndef DOXYGEN
00037
00038 template <class Source, class Target>
00039 prefix_ senf::ppi::Route<Source, Target> &
00040 senf::ppi::module::Module::route(Source & source, Target & target)
00041 {
00042 detail::RouteHelper<Source,Target>::route(*this, source, target, source, target);
00043 return static_cast< Route<Source,Target> & >(
00044 addRoute(std::auto_ptr< RouteBase >(
00045 new Route<Source,Target>(*this, source, target))));
00046 }
00047
00048 #else
00049 prefix_ senf::ppi::Route<connector::InputConnector, connector::OutputConnector> &
00050 senf::ppi::module::Module::route(connector::InputConnector & input,
00051 connector::OutputConnector & output)
00052 {}
00053 prefix_ senf::ppi::Route<connector::InputConnector, EventDescriptor> &
00054 senf::ppi::module::Module::route(connector::InputConnector & input, EventDescriptor & output)
00055 {}
00056 #endif
00057
00058 #ifndef DOXYGEN
00059
00060 template <class Descriptor, class Target>
00061 prefix_ void senf::ppi::module::Module::registerEvent(Descriptor & descriptor, Target target)
00062 {
00063 eventManager().registerEvent(
00064 *this,
00065 EventManager::Callback<Descriptor>::make(target,*this),
00066 descriptor);
00067 descriptor.enabled(true);
00068 }
00069
00070 #else
00071 template <class Target>
00072 prefix_ void senf::ppi::module::Module::registerEvent(EventDescriptor & descriptor,
00073 Target target)
00074 {}
00075 #endif
00076
00077
00078
00079
00080 template <class Source, class Target>
00081 prefix_ void senf::ppi::module::detail::RouteHelper<Source,Target>::
00082 route(Module & module, Source & source, Target & target,
00083 connector::InputConnector &, connector::OutputConnector &)
00084 {
00085 module.registerConnector(source);
00086 module.registerConnector(target);
00087 }
00088
00089 template <class Source, class Target>
00090 prefix_ void senf::ppi::module::detail::RouteHelper<Source,Target>::
00091 route(Module & module, Source & source, Target & target,
00092 connector::InputConnector &, EventDescriptor &)
00093 {
00094 module.registerConnector(source);
00095 }
00096
00097 template <class Source, class Target>
00098 prefix_ void senf::ppi::module::detail::RouteHelper<Source,Target>::
00099 route(Module & module, Source & source, Target & target,
00100 EventDescriptor &, connector::OutputConnector &)
00101 {
00102 module.registerConnector(target);
00103 }
00104
00105
00106 #undef prefix_
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117