// $Id: IPv6ExtOptionType.hh 869 2008-06-09 13:57:27Z pug $
//
-// Copyright (C) 2007
+// Copyright (C) 2009
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Philipp.Batroff@fokus.fraunhofer.de
// Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#ifndef HH_SENF_Packets_DefaultBundle_IPV6EXTOPTIONTYPE_HH_
-#define HH_SENF_Packets_DefaultBundle_IPV6EXTOPTIONTYPE_HH_1
+/** \file
+ \brief IPv6Extension-Options public header */
+
+#ifndef HH_SENF_Packets_DefaultBundle_IPv6ExtOptionType_HH_
+#define HH_SENF_Packets_DefaultBundle_IPv6ExtOptionType_HH_ 1
// Custom includes
#include <senf/Packets/Packets.hh>
///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
-class OptTypeTLVPacketParser: public PacketParserBase {
-public:
+ class IPv6OptionTLVParser : public PacketParserBase
+ {
+ public:
# include SENF_PARSER()
- SENF_PARSER_BITFIELD (altAction, 2, unsigned);
- SENF_PARSER_BITFIELD (changeFlag, 1, unsigned);
- SENF_PARSER_BITFIELD (optionType, 5, unsigned);
-// SENF_PARSER_FIELD (optionType, UInt8Parser);
- SENF_PARSER_FIELD (optionLength, UInt8Parser);
- SENF_PARSER_FINALIZE (OptTypeTLVPacketParser);
-
-}; //OptTypeTLVPacketParser
+ SENF_PARSER_BITFIELD (altAction, 2, unsigned);
+ SENF_PARSER_BITFIELD (changeFlag, 1, unsigned);
+ SENF_PARSER_BITFIELD (optionType, 5, unsigned);
+ SENF_PARSER_FIELD (optionLength, UInt8Parser);
+ SENF_PARSER_FINALIZE (IPv6OptionTLVParser);
+ };
-struct GenericOptTypeTLVPacketParser: public OptTypeTLVPacketParser {
+
+ struct IPv6GenericOptionTLVParser : public IPv6OptionTLVParser
+ {
# include SENF_PARSER()
- SENF_PARSER_INHERIT ( OptTypeTLVPacketParser );
- SENF_PARSER_SKIP ( optionLength(), 0 );
- SENF_PARSER_FINALIZE ( GenericOptTypeTLVPacketParser );
+ SENF_PARSER_INHERIT ( IPv6OptionTLVParser );
+ SENF_PARSER_SKIP ( optionLength(), 0 );
+ SENF_PARSER_FINALIZE ( IPv6GenericOptionTLVParser );
+
+ senf::PacketInterpreterBase::range value() const;
+
+ template <class Parser>
+ Parser init();
+ // template <class Parser>
+ // Parser& get();
- senf::PacketInterpreterBase::range value() const;
+ static const unsigned int typeCode = 7u;
- template<class ForwardReadableRange>
- void value(ForwardReadableRange const &range);
+ template<class ForwardReadableRange>
+ void value(ForwardReadableRange const &range);
-};
+ template<class ForwardReadableRange>
+ void setPayload(ForwardReadableRange const &range);
+ };
-} //namespace senf
+}
///////////////////////////////hh.e////////////////////////////////////////
//#include "IPv6ExtOptionType.cci"
#include "IPv6ExtOptionType.ct"
//#include "IPv6ExtOptionType.cti"
-#endif /* HH_SENF_Packets_DefaultBundle_IPV6EXTOPTIONTYPE_HH_ */
+#endif
+\f
// Local Variables:
// mode: c++
// fill-column: 100