X-Git-Url: http://g0dil.de/git?p=senf.git;a=blobdiff_plain;f=senf%2FPPI%2FModule.hh;fp=senf%2FPPI%2FModule.hh;h=a2741ec9546accd65eac2c8c0ad05b0e1e16b9bd;hp=1b4881d9d26437df38d7234075237dbf11c5f9f2;hb=55b4c5a3afcf821031cef2ca7089fbdfd77d513a;hpb=b2fff1b50e0010fdad28cb638987cbf88032e30e diff --git a/senf/PPI/Module.hh b/senf/PPI/Module.hh index 1b4881d..a2741ec 100644 --- a/senf/PPI/Module.hh +++ b/senf/PPI/Module.hh @@ -189,10 +189,7 @@ namespace module { protected: Module(); -#ifndef DOXYGEN - template - Route & route(Source & source, Target & target); -#else +#ifdef DOXYGEN Route & route(connector::InputConnector & input, connector::OutputConnector & output); ///< Define flow information @@ -219,9 +216,7 @@ namespace module { \param[in] output Data target, object which controls outgoing data (connector or event) \returns Route instance describing this route - \see \ref ppi_throttling - \note The real implementation is not provided by three - overloads but by a single template member */ + \see \ref ppi_throttling */ Route & route(connector::InputConnector & input, EventDescriptor & output); @@ -253,6 +248,21 @@ namespace module { enable/disable the event on throttling notifications. \see \ref route() */ +#else +# define route_decl(Source, Target) \ + Route & \ + route(Source & source, Target & target); + + route_decl( connector::GenericPassiveInput, connector::GenericActiveOutput); + route_decl( connector::GenericPassiveInput, connector::GenericPassiveOutput); + route_decl( connector::GenericActiveInput, connector::GenericPassiveOutput); + route_decl( connector::GenericActiveInput, connector::GenericActiveOutput); + route_decl( connector::GenericPassiveInput, EventDescriptor); + route_decl( connector::GenericActiveInput, EventDescriptor); + route_decl( EventDescriptor, connector::GenericPassiveOutput); + route_decl( EventDescriptor, connector::GenericActiveOutput); + +#undef Route_decl #endif void noroute(connector::Connector & connector); ///< Define terminal connectors