diff --git a/PPI/Connectors.cc b/PPI/Connectors.cc index 5c4ceff4e3a4553f49049e74250cb31ca89218b7..e11e5e23307733c50042d1524458d40c59dfab36 100644 --- a/PPI/Connectors.cc +++ b/PPI/Connectors.cc @@ -53,6 +53,11 @@ prefix_ void senf::ppi::connector::Connector::connect(Connector & target) target.peer_ = this; } +prefix_ std::type_info const & senf::ppi::connector::Connector::packetTypeID() +{ + return typeid(void); +} + /////////////////////////////////////////////////////////////////////////// // senf::ppi::connector::PassiveConnector diff --git a/PPI/Connectors.hh b/PPI/Connectors.hh index be55849db43207ae9ee86a73b5f43eaaa4acc6f6..60b1f719d8ba476b4a5ada017886a8970153cc38 100644 --- a/PPI/Connectors.hh +++ b/PPI/Connectors.hh @@ -123,7 +123,7 @@ namespace connector { void connect(Connector & target); private: - virtual std::type_info const & packetTypeID() = 0; + virtual std::type_info const & packetTypeID(); void setModule(module::Module & module); @@ -456,27 +456,24 @@ namespace connector { # define TypedConnector_Input read # define TypedConnector_Output write -# define TypedConnector(pType, dir) \ +# define TypedConnector(pType, dir) \ template <class PacketType> \ - class pType ## dir \ - : public Generic ## pType ## dir, \ - private detail::Typed ## dir ## Mixin<pType ## dir <PacketType>, PacketType> \ + class pType ## dir \ + : public Generic ## pType ## dir, \ + private detail::Typed ## dir ## Mixin<pType ## dir <PacketType>, PacketType> \ { \ - typedef detail::Typed ## dir ## Mixin<pType ## dir <PacketType>, PacketType> mixin; \ + typedef detail::Typed ## dir ## Mixin<pType ## dir <PacketType>, PacketType> mixin; \ public: \ using mixin::operator(); \ using mixin::TypedConnector_ ## dir ; \ private: \ virtual std::type_info const & packetTypeID() \ { return typeid(typename PacketType::type); } \ - friend class detail::Typed ## dir ## Mixin<pType ## dir <PacketType>, PacketType>; \ + friend class detail::Typed ## dir ## Mixin<pType ## dir <PacketType>, PacketType>; \ }; \ template <> \ - class pType ## dir <Packet> : public Generic ## pType ## dir \ - { \ - private: \ - virtual std::type_info const & packetTypeID() { return typeid(void); } \ - } + class pType ## dir <Packet> : public Generic ## pType ## dir \ + {} TypedConnector( Passive, Input ); TypedConnector( Passive, Output ); diff --git a/PPI/Route.ih b/PPI/Route.ih index 01836c9d63bc98e3568178983c3c215442312bdc..76125e3ba05268794d1de9ca4ad1125ad1ee035c 100644 --- a/PPI/Route.ih +++ b/PPI/Route.ih @@ -47,6 +47,8 @@ namespace detail { struct RoutingTraitsImplementation { BOOST_STATIC_ASSERT((boost::is_base_of<connector::Connector, Connector>::value)); + + static bool const event = false; static bool const notifySource = boost::is_base_of< connector::ActiveConnector, Connector>::value; @@ -66,6 +68,8 @@ namespace detail { template <class Event> struct RoutingTraitsImplementation<Event,true> { + static bool const event = true; + static bool const notifySource = false; static bool const notifyTarget = true; diff --git a/Packets/ParseHelpers.hh b/Packets/ParseHelpers.hh index f79e956801de9636fd6b16fbc2f18cbd407f1451..a8d5fbda1ed7671f56b94f9f201c47332bbdc29e 100644 --- a/Packets/ParseHelpers.hh +++ b/Packets/ParseHelpers.hh @@ -278,7 +278,7 @@ \ingroup packetparser */ -///\ingroup packetparsermacros +///\addtogroup packetparsermacros ///\{ ///\name Control information