Packets: Add StringParser ostream operation
[senf.git] / Packets / ParseHelpers.test.cc
index 6d69414..b5a5f22 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// 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
@@ -21,7 +21,7 @@
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 /** \file
-    \brief ParseHelpers.test unit tests */
+    \brief ParseHelpers unit tests */
 
 //#include "ParseHelpers.test.hh"
 //#include "ParseHelpers.test.ih"
@@ -29,7 +29,7 @@
 // Custom includes
 #include "Packets.hh"
 
-#include <boost/test/auto_unit_test.hpp>
+#include "../Utils/auto_unit_test.hh"
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
@@ -41,31 +41,35 @@ namespace {
     {
 #       include SENF_FIXED_PARSER()
 
-        SENF_PARSE_FIELD        ( normalField          , senf::Parse_UInt16 );
-        SENF_PARSE_FIELD_RO     ( roField              , senf::Parse_UInt16 );
+        SENF_PARSER_FIELD        ( normalField          , senf::UInt16Parser );
+        SENF_PARSER_FIELD_RO     ( roField              , senf::UInt16Parser );
 
-        SENF_PARSE_CUSTOM_FIELD ( customField          , int, 2             ) {
-            return parse<senf::Parse_UInt16>(customField_offset);
+        SENF_PARSER_CUSTOM_FIELD ( customField          , int, 2             ) {
+            return parse<senf::UInt16Parser>(customField_offset);
         }
         
-        SENF_PARSE_BITFIELD     ( signedBitfield       , 4, signed          );
-        SENF_PARSE_BITFIELD     ( unsignedBitfield     , 3, unsigned        );
-        SENF_PARSE_BITFIELD     ( boolBitfield         , 1, bool            );
+        SENF_PARSER_BITFIELD     ( signedBitfield       , 4, signed          );
+        SENF_PARSER_BITFIELD     ( unsignedBitfield     , 3, unsigned        );
+        SENF_PARSER_BITFIELD     ( boolBitfield         , 1, bool            );
 
-        SENF_PARSE_BITFIELD_RO  ( roSignedBitfield     , 4, signed          );
-        SENF_PARSE_BITFIELD_RO  ( roUnsignedBitfield   , 3, unsigned        );
-        SENF_PARSE_BITFIELD_RO  ( roBoolBitfield       , 1, bool            );
+        SENF_PARSER_BITFIELD_RO  ( roSignedBitfield     , 4, signed          );
+        SENF_PARSER_BITFIELD_RO  ( roUnsignedBitfield   , 3, unsigned        );
+        SENF_PARSER_BITFIELD_RO  ( roBoolBitfield       , 1, bool            );
 
         SENF_PARSER_LABEL( end );
         SENF_PARSER_GOTO( roField );
 
-        SENF_PARSE_FIELD        ( overlayOfRoField     , senf::Parse_Int16  );
+        SENF_PARSER_FIELD        ( overlayOfRoField     , senf::Int16Parser  );
         SENF_PARSER_SKIP( 2 );
-        SENF_PARSE_FIELD        ( overlayOfBitfield    , senf::Parse_UInt8  );
+        SENF_PARSER_FIELD        ( overlayOfBitfield    , senf::UInt8Parser  );
 
         SENF_PARSER_GOTO_OFFSET( 1 );
 
-        SENF_PARSE_FIELD        ( lowbyteOfNormalField , senf::Parse_UInt8  );
+        SENF_PARSER_PRIVATE_FIELD ( privLowbyteOfNormalField , senf::UInt8Parser  );
+
+        unsigned lowbyteOfNormalField() { 
+            return privLowbyteOfNormalField();
+        }
 
         SENF_PARSER_GOTO( end );
 
@@ -78,12 +82,12 @@ namespace {
 
         SENF_PARSER_INHERIT( FixedBaseParser );
         
-        SENF_PARSE_FIELD        ( derivedField         , senf::Parse_UInt16 );
+        SENF_PARSER_FIELD        ( derivedField         , senf::UInt16Parser );
 
         SENF_PARSER_LABEL( end );
         SENF_PARSER_GOTO( signedBitfield );
 
-        SENF_PARSE_FIELD        ( anotherOverlay       , senf::Parse_UInt16 );
+        SENF_PARSER_FIELD        ( anotherOverlay       , senf::UInt16Parser );
         
         SENF_PARSER_GOTO( end );
 
@@ -147,31 +151,35 @@ namespace {
     {
 #       include SENF_PARSER()
 
-        SENF_PARSE_FIELD        ( normalField          , senf::Parse_UInt16 );
-        SENF_PARSE_FIELD_RO     ( roField              , senf::Parse_UInt16 );
+        SENF_PARSER_FIELD        ( normalField              , senf::UInt16Parser );
+        SENF_PARSER_FIELD_RO     ( roField                  , senf::UInt16Parser );
 
-        SENF_PARSE_CUSTOM_FIELD ( customField          , int, 2, 2          ) {
-            return parse<senf::Parse_UInt16>(customField_offset());
+        SENF_PARSER_CUSTOM_FIELD ( customField              , int, 2, 2          ) {
+            return parse<senf::UInt16Parser>(customField_offset());
         }
         
-        SENF_PARSE_BITFIELD     ( signedBitfield       , 4, signed          );
-        SENF_PARSE_BITFIELD     ( unsignedBitfield     , 3, unsigned        );
-        SENF_PARSE_BITFIELD     ( boolBitfield         , 1, bool            );
+        SENF_PARSER_BITFIELD      ( signedBitfield           , 4, signed          );
+        SENF_PARSER_BITFIELD      ( unsignedBitfield         , 3, unsigned        );
+        SENF_PARSER_BITFIELD      ( boolBitfield             , 1, bool            );
 
-        SENF_PARSE_BITFIELD_RO  ( roSignedBitfield     , 4, signed          );
-        SENF_PARSE_BITFIELD_RO  ( roUnsignedBitfield   , 3, unsigned        );
-        SENF_PARSE_BITFIELD_RO  ( roBoolBitfield       , 1, bool            );
+        SENF_PARSER_BITFIELD_RO   ( roSignedBitfield         , 4, signed          );
+        SENF_PARSER_BITFIELD_RO   ( roUnsignedBitfield       , 3, unsigned        );
+        SENF_PARSER_BITFIELD_RO   ( roBoolBitfield           , 1, bool            );
 
         SENF_PARSER_LABEL( end );
         SENF_PARSER_GOTO( roField );
 
-        SENF_PARSE_FIELD        ( overlayOfRoField     , senf::Parse_Int16  );
+        SENF_PARSER_FIELD         ( overlayOfRoField         , senf::Int16Parser  );
         SENF_PARSER_SKIP( 2, 2 );
-        SENF_PARSE_FIELD        ( overlayOfBitfield    , senf::Parse_UInt8  );
+        SENF_PARSER_FIELD         ( overlayOfBitfield        , senf::UInt8Parser  );
 
         SENF_PARSER_GOTO_OFFSET( 1, 1 );
 
-        SENF_PARSE_FIELD        ( lowbyteOfNormalField , senf::Parse_UInt8  );
+        SENF_PARSER_PRIVATE_FIELD ( privLowbyteOfNormalField , senf::UInt8Parser  );
+
+        unsigned lowbyteOfNormalField() { 
+            return privLowbyteOfNormalField();
+        }
 
         SENF_PARSER_GOTO( end );
 
@@ -184,12 +192,12 @@ namespace {
 
         SENF_PARSER_INHERIT( VariableBaseParser );
         
-        SENF_PARSE_FIELD        ( derivedField         , senf::Parse_UInt16 );
+        SENF_PARSER_FIELD        ( derivedField         , senf::UInt16Parser );
 
         SENF_PARSER_LABEL( end );
         SENF_PARSER_GOTO( signedBitfield );
 
-        SENF_PARSE_FIELD        ( anotherOverlay       , senf::Parse_UInt16 );
+        SENF_PARSER_FIELD        ( anotherOverlay       , senf::UInt16Parser );
         
         SENF_PARSER_GOTO( end );