X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSetup.hh;h=7ca50683275964384c53777cf74712ce8d871e1a;hb=a1fdb7bb122f0b05be809a922d4b7ef5e125fa67;hp=c113e917cabc9838940998058fe200eee02d7d80;hpb=be33ff96c5b89738694da272d8610564cce48bfb;p=senf.git diff --git a/PPI/Setup.hh b/PPI/Setup.hh index c113e91..7ca5068 100644 --- a/PPI/Setup.hh +++ b/PPI/Setup.hh @@ -23,8 +23,8 @@ /** \file \brief Setup public header */ -#ifndef HH_Setup_ -#define HH_Setup_ 1 +#ifndef HH_SENF_PPI_Setup_ +#define HH_SENF_PPI_Setup_ 1 // Custom includes #include @@ -37,6 +37,8 @@ namespace senf { namespace ppi { +#ifdef DOXYGEN + /** \brief Connect modules senf::ppi::connect() establishes a connection between two modules or, to be more precise, @@ -52,32 +54,43 @@ namespace ppi { \li Either or both of the connectors are untyped (they accept/send arbitrary senf::Packet's) \li Both connectors send/accept the exactly same packet type. - \throws IncompatibleConnectorsException if the two connectors are not type compatible. + Depending on the type of input or output, the connect call may require additional + arguments. See the respective module documentation for more information + + \throws connector::IncompatibleConnectorsException if the two connectors are not type + compatible. \see \ref ppi_connections */ - void connect(connector::GenericActiveOutput & source, connector::GenericPassiveInput & target); + void connect(connector::OutputConnector & source, connector::InputConnector & target, ...); - /** \brief Connect modules - \see connect() */ +#else + + void connect(connector::GenericActiveOutput & source, connector::GenericPassiveInput & target); void connect(connector::GenericPassiveOutput & source, connector::GenericActiveInput & target); +#endif + #ifndef DOXYGEN template void connect(T & source, C & target, typename boost::disable_if< boost::is_base_of >::type * = 0, - typename boost::enable_if< boost::is_base_of >::type * = 0); + typename boost::enable_if< boost::is_base_of >::type * = 0, + typename boost::disable_if< boost::is_base_of >:: type * = 0); template void connect(C & source, T & target, typename boost::enable_if< boost::is_base_of >::type * = 0, - typename boost::disable_if< boost::is_base_of >::type * = 0); + typename boost::disable_if< boost::is_base_of >::type * = 0, + typename boost::disable_if< boost::is_base_of >:: type * = 0); template void connect(T1 & source, T2 & target, typename boost::disable_if< boost::is_base_of >::type * = 0, - typename boost::disable_if< boost::is_base_of >::type * = 0); + typename boost::disable_if< boost::is_base_of >::type * = 0, + typename boost::disable_if< boost::is_base_of >:: type * = 0, + typename boost::disable_if< boost::is_base_of >:: type * = 0); #endif