Packets: Add packet diagrams
[senf.git] / Packets / ListParser.hh
index 004e77f..8807578 100644 (file)
@@ -58,7 +58,16 @@ namespace senf {
         You will normally not instantiate ListParser directly, you will use the \ref
         SENF_PARSER_LIST() helper macro.
 
-        \see ExampleListPolicy
+        Some basic list access methods are defined as parser members. To access the complete list
+        API however you will need to instantiate a container wrapper for the list. See \ref
+        packet_usage_fields_collection.
+
+        \see 
+            \ref How to access \ref packet_usage_fields_collection
+            SENF_PARSER_LIST() macro used to define list fields \n
+            ListParser_Container list container wrapper API \n
+            ExampleListPolicy
+
         \ingroup parsecollection
       */
     template <class ListPolicy>
@@ -229,7 +238,7 @@ namespace senf {
         // The size field should be declared private or read-only (size is accessible via the list)
         SENF_PARSER_PRIVATE_FIELD ( list_size_, senf::UInt16Parser );
         // Define the list
-        SENF_PARSER_VECTOR ( list, list_size_, EltParser );
+        SENF_PARSER_LIST ( list, list_size_, EltParser );
         \endcode
         
         Here \c EltParser can be an arbitrary parser and need not have a fixed size.
@@ -244,6 +253,9 @@ namespace senf {
         <tr><td>\c bytes(\a size)</td><td>\a size gives the size of the list in bytes not the
         number of contained elements</td></tr>
 
+        <tr><td>\c packetSize()</td><td>Use the size of the packet to get the list size. The
+        list will occupy all space up to the end of the packet.</td></tr>
+
         <tr><td>\c transform(\a transform, \a size)</td><td>The \a transform is applied to the \a
         size value, the value is not used directly</td>
 
@@ -267,7 +279,7 @@ namespace senf {
 
         The tags are applied to the \a size parameter:
         \code
-        SENF_PARSER_LIST ( vec, transform(MyTransform, list_size_), EltParser );
+        SENF_PARSER_LIST ( list, transform(MyTransform, list_size_), EltParser );
         \endcode
 
         \warning There are some caveats when working with \c bytes() type lists:
@@ -285,6 +297,11 @@ namespace senf {
         \param[in] size name of field giving the list size
         \param[in] elt_type list element type
 
+        \see 
+            How to use \ref packet_usage_fields_collection \n
+            senf::ListParser the list parser API for list field access
+            senf::ListParser_Container the list parser container API for list field access
+
         \hideinitializer
         \ingroup packetparsermacros
      */