Packets: Add missing packet diagrams
[senf.git] / Packets / MPEGDVBBundle / MPESection.hh
index 89a344b..e617691 100644 (file)
@@ -1,8 +1,8 @@
 // $Id:MPESection.hh 560 2007-12-13 14:39:37Z tho $
 //
 // Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS) 
-// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Thorsten Horstmann <tho@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
@@ -23,8 +23,8 @@
 /** \file
     \brief MPESection public header */
 
-#ifndef HH_MPESection_
-#define HH_MPESection_ 1
+#ifndef HH_SENF_Packets_MPEGDVBBundle_MPESection_
+#define HH_SENF_Packets_MPEGDVBBundle_MPESection_ 1
 
 // Custom includes
 #include <boost/crc.hpp>
@@ -44,31 +44,32 @@ namespace senf {
         SENF_PARSER_BITFIELD ( table_boundary,           1,  bool     );
         SENF_PARSER_BITFIELD ( frame_boundary,           1,  bool     );
         SENF_PARSER_BITFIELD ( address,                  18, unsigned );
-        
+
         SENF_PARSER_FINALIZE( MPERealTimeParametersParser );
     };
-    
+
 
     /** \brief Parse a MPE Section
-    
+
         Parser implementing the header of a MPE Section
-        
+
         \see MPESectionType
      */
-    struct MPESectionParser : public PacketParserBase
+    class MPESectionParser : public PacketParserBase
     {
+    public:
 #       include SENF_FIXED_PARSER()
 
         SENF_PARSER_FIELD( table_id, UInt8Parser );
-        
+
         SENF_PARSER_BITFIELD        ( section_syntax_indicator, 1,  bool     );
         SENF_PARSER_BITFIELD        ( private_indicator,        1,  bool     );
         SENF_PARSER_PRIVATE_BITFIELD( reserved_1,               2,  unsigned );
         SENF_PARSER_BITFIELD        ( section_length,           12, unsigned );
-        
+
         SENF_PARSER_FIELD( mac_addr_6, UInt8Parser );
         SENF_PARSER_FIELD( mac_addr_5, UInt8Parser );
-        
+
         SENF_PARSER_PRIVATE_BITFIELD( reserved_2,          2, unsigned );
         SENF_PARSER_BITFIELD        ( payload_scrmbl_ctrl, 2, unsigned );
         SENF_PARSER_BITFIELD        ( addr_scrmbl_ctrl,    2, unsigned );
@@ -79,11 +80,11 @@ namespace senf {
         SENF_PARSER_FIELD( last_section_num, UInt8Parser );
 
         SENF_PARSER_FIELD( real_time_parameters, MPERealTimeParametersParser );
-        
+
         SENF_PARSER_FINALIZE( MPESectionParser );
-        
+
         SENF_PARSER_PRIVATE_BITFIELD( ip_datagram_version, 4, unsigned );
-        
+
         SENF_PARSER_INIT() {
             table_id() = 0x3e;
             section_syntax_indicator() = 1;
@@ -94,23 +95,25 @@ namespace senf {
             addr_scrmbl_ctrl() = 0;
             curr_next_indicator() = 1;
         }
-        
+
         UInt32Parser crc() const { return parse<UInt32Parser>( data().size()-4 ); }
-        
-//        typedef boost::crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0, false, false> crc32_t;
-//        boost::uint32_t calcCrc() const;
-        
+        boost::uint32_t calcCrc() const;
+
         friend class MPESectionType;
+
+    private:
+        typedef boost::crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0, false, false> crc32_t;
     };
-    
-    
+
+
     /** \brief MPE Section
-        
+
         \par Packet type (typedef):
             \ref MPESection
 
         \par Fields:
             \ref MPESectionParser
+            \image html MPESection.png
 
         \ingroup protocolbundle_mpegdvb
      */
@@ -124,14 +127,14 @@ namespace senf {
 
         using mixin::nextPacketRange;
         using mixin::init;
-        
+
         static void dump(packet p, std::ostream & os);
         static void finalize(packet p);
         static factory_t nextPacketType(packet p);
         static PacketParserBase::size_type initSize();
         static PacketParserBase::size_type initHeadSize();
     };
-        
+
     typedef ConcretePacket<MPESectionType> MPESection;
 }
 
@@ -142,7 +145,7 @@ namespace senf {
 //#include "MPESection.cti"
 #endif
 
-\f
+
 // Local Variables:
 // mode: c++
 // fill-column: 100