added FormFeed character for emacs to end of files
[senf.git] / senf / Packets / DefaultBundle / IPv6ExtOptionType.hh
index ab8adf6..b9b4a46 100644 (file)
@@ -1,6 +1,6 @@
 // $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 (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();
+
+        static const unsigned int typeCode = 7u;
 
-    senf::PacketInterpreterBase::range value() const;
+        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