removed some useless spaces; not very important, I know :)
[senf.git] / Packets / DefaultBundle / UDPPacket.hh
index 1e566a1..dc82ea2 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
 // Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+//     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -38,33 +38,22 @@ namespace senf {
 
         Parser implementing the UDP header. The fields implemented are:
 
-        \see UDPPacketType
+        \see UDPPacketType \n
             <a href="http://tools.ietf.org/html/rfc768">RFC 768</a>
      */
-    struct Parse_UDP : public PacketParserBase
+    struct UDPPacketParser : public PacketParserBase
     {
-        typedef Parse_UInt16 Parse_16bit;
+#       include SENF_FIXED_PARSER()
 
-#       ifndef DOXYGEN
+        SENF_PARSER_FIELD( source,      senf::UInt16Parser );
+        SENF_PARSER_FIELD( destination, senf::UInt16Parser );
+        SENF_PARSER_FIELD( length,      senf::UInt16Parser );
+        SENF_PARSER_FIELD( checksum,    senf::UInt16Parser );
 
-        SENF_PACKET_PARSER_INIT(Parse_UDP);
-
-        SENF_PACKET_PARSER_DEFINE_FIXED_FIELDS(
-            ((Field)( source,      Parse_16bit ))
-            ((Field)( destination, Parse_16bit ))
-            ((Field)( length,      Parse_16bit ))
-            ((Field)( checksum,    Parse_16bit )) );
-
-#       else
-
-        Parse_16bit source();
-        Parse_16bit destination();
-        Parse_16bit length();
-        Parse_16bit checksum();
-
-#       endif
+        SENF_PARSER_FINALIZE(UDPPacketParser);
 
         boost::uint16_t calcChecksum() const;
+
         bool validateChecksum() const {
             return checksum() == 0u || checksum() == calcChecksum();
         }
@@ -76,7 +65,11 @@ namespace senf {
             \ref UDPPacket
 
         \par Fields:
-            \ref Parse_UDP
+            \ref UDPPacketParser
+
+        \par Finalize action:
+            Set \a length from payload size\n
+            Calculate \a checksum
 
         \ingroup protocolbundle_default
      */
@@ -84,10 +77,11 @@ namespace senf {
         : public PacketTypeBase,
           public PacketTypeMixin<UDPPacketType>
     {
+#ifndef DOXYGEN
         typedef PacketTypeMixin<UDPPacketType> mixin;
         typedef ConcretePacket<UDPPacketType> packet;
-        typedef Parse_UDP parser;
-
+        typedef UDPPacketParser parser;
+#endif
         using mixin::nextPacketRange;
         using mixin::initSize;
         using mixin::init;
@@ -98,7 +92,7 @@ namespace senf {
     };
 
     /** \brief UDP packet typedef */
-    typedef UDPPacketType::packet UDPPacket;
+    typedef ConcretePacket<UDPPacketType> UDPPacket;
 }