namespace detail { class MultiConnectorMixinAccess; }
- /** \brief Multi connector management
+ /** \brief Multi-Connector management
This mixin provides a module with support for a runtime configurable number of input or
output connectors.
\code
class MyModule
- : public senf::ppi::module::Modulem,
+ : public senf::ppi::module::Module,
public senf::ppi::module::MultiConnectorMixin<
MyModule, senf::ppi::connector::ActiveInput<> >
{
}
friend class senf::ppi::module::MultiConnectorMixin<
- MyModule, senf::ppi::connector::ActiveInput<> >
+ MyModule, senf::ppi::connector::ActiveInput<> >;
}
\endcode
\par "Advanced note:" These additional arguments are always passed by const-reference. If
you need to pass a non-const reference, declare the \c connectorSetup() argument as
non-const reference and wrap the real argument using \c boost::ref() (The reason for
- this is known as 'The forwarding problem'
+ this is known as 'The forwarding problem').
\section senf_ppi_multiconnector_advanced Advanced usage: Managing your own container
#include "ListOptionTypeParser.hh"
#include "NDPOptions.hh"
+///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
//#############################################################
typedef ConcretePacket<NDPRedirectMessageType> NDPRedirectMessage;
}
+///////////////////////////////hh.e////////////////////////////////////////
+//#include "ICMPv6TypePacket.cci"
+//#include "ICMPv6TypePacket.ct"
+//#include "ICMPv6TypePacket.cti"
#endif
\f
-// $Id: IPv6ExtOptionType.hh 869 2008-06-09 13:57:27Z pug $
+// $Id$
//
// Copyright (C) 2009
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: EthernetPacket.hh 299 2007-07-10 21:23:49Z g0dil $
+// $Id$
//
// Copyright (C) 2007
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: ListOptionTypeParser.cti 869 2008-06-09 13:57:27Z pug $
+// $Id$
//
// Copyright (C) 2009
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: ListOptionTypeParser.hh 965 2008-11-18 16:04:20Z pug $
+// $Id$
//
// Copyright (C) 2009
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: ListOptionTypeParser.ih 965 2008-11-18 16:04:20Z pug $
+// $Id$
//
// Copyright (C) 2009
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: ListOptionTypeParser.test.cc 1345 2009-08-26 15:40:55Z pug $
+// $Id$
//
// Copyright (C) 2009
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: ICMPv6Packet.test.cc 1550 2010-01-26 09:34:24Z tho $
+// $Id$
//
// Copyright (C) 2010
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file
- \brief ICMPv6Packet unit tests */
+ \brief NDPMessage unit tests */
// Custom includes
#include "ICMPv6Packet.hh"
-// $Id: ICMPv6TypePacket.cc 1450 2009-09-28 09:39:01Z tho $
+// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2010
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Sauer <ssauer@berlios.de>
// Definition of non-inline non-template functions
// Custom includes
-#include <senf/Packets/Packets.hh>
-#include "ICMPv6Packet.hh"
-#include "ICMPv6TypePacket.hh"
#include "NDPOptions.hh"
#define prefix_
-// $Id: ICMPv6TypePacket.hh 1449 2009-09-25 23:03:48Z g0dil $
+// $Id$
//
// Copyright (C) 2010
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Custom includes
#include <senf/Packets/Packets.hh>
#include <senf/Packets/DefaultBundle/EthernetPacket.hh>
-#include <senf/Packets/DefaultBundle/ListOptionTypeParser.hh>
+#include <senf/Packets/DefaultBundle/IPv6Packet.hh>
+///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
+
//#############################################################
//ICMPv6 Neighbor Discovery (RFC 4861) Options
//#############################################################
struct NDPSourceLLAddressTLVParser : public NDPOptionParser
{
-# include SENF_PARSER()
+# include SENF_PARSER()
SENF_PARSER_INHERIT ( NDPOptionParser );
SENF_PARSER_FIELD ( source, MACAddressParser);
SENF_PARSER_FINALIZE ( NDPSourceLLAddressTLVParser);
struct NDPTargetLLAddressTLVParser : public NDPOptionParser
{
-# include SENF_PARSER()
+# include SENF_PARSER()
SENF_PARSER_INHERIT ( NDPOptionParser );
SENF_PARSER_FIELD ( target, MACAddressParser );
SENF_PARSER_FINALIZE ( NDPTargetLLAddressTLVParser );
struct NDPPrefixInformationTLVParser : public NDPOptionParser
{
-# include SENF_PARSER()
+# include SENF_PARSER()
SENF_PARSER_INHERIT ( NDPOptionParser );
SENF_PARSER_FIELD ( prefixLength, UInt8Parser );
SENF_PARSER_BITFIELD ( l, 1, bool );
struct NDPMTUTLVParser : public NDPOptionParser
{
-# include SENF_PARSER()
+# include SENF_PARSER()
SENF_PARSER_INHERIT ( NDPOptionParser );
SENF_PARSER_PRIVATE_BITFIELD ( reserved, 16, unsigned );
SENF_PARSER_FIELD ( mtu, UInt32Parser );
};
}
+///////////////////////////////hh.e////////////////////////////////////////
+//#include "NDPOptions.cci"
+//#include "NDPOptions.ct"
+//#include "NDPOptions.cti"
#endif
-
+\f
// Local Variables:
// mode: c++
// fill-column: 100
-// $Id: main.test.cc 206 2007-02-20 14:20:52Z g0dil $
+// $Id$
//
// Copyright (C) 2006
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// $Id: TransportPacket.test.cc 560 2007-12-13 14:39:37Z tho $
+// $Id$
//
// Copyright (C) 2007
// Fraunhofer Institute for Open Communication Systems (FOKUS)
}
template <class Type>
-prefix_ senf::TypeIdValue const senf::typeidValue(Type const & ob)
+prefix_ senf::TypeIdValue const senf::typeIdValue(Type const & ob)
{
return typeid(ob);
}
\related TypeIdValue
*/
template <class Type>
- TypeIdValue const typeidValue(Type const & ob);
+ TypeIdValue const typeIdValue(Type const & ob);
/**
\related TypeIdValue