moved statistics classes from NetEmu to SENF
[senf.git] / Packets / Mainpage.dox
index a164bd1..308d9ac 100644 (file)
@@ -66,6 +66,8 @@
 
     \li \ref protocolbundle_default : Some basic default protocols: Ethernet, Ip, TCP, UDP
     \li \ref protocolbundle_mpegdvb : MPEG and DVB protocols
+    \li \ref protocolbundle_80211 : 802.11 protocols
+    \li \ref protocolbundle_80221 : 802.21 protocols
 
     There are two ways to link with a bundle
     
     \code
     Packet p = ...;
 
-    // Change first byte of packet to 0
+    // Change first byte of packet to 1
     p.data()[0] = 1u; 
 
     // Copy packet data into a vector
     invalidate the wrapper if it changes the packets size.
 
     \see 
-        senf::VectorParser_Container Interface of the vector parser container wrapper \n
-        senf::ListParser_Container Interface of the list parser container wrapper
+        senf::VectorParser / senf::VectorParser_Container Interface of the vector parser \n
+        senf::ListParser / senf::ListParser_Container Interface of the list parser
     
 
     \subsubsection packet_usage_collection_variant The Variant Parser
     itself but gives us some information about the packet: A timestamp, the interface the packet was
     received on or other processing related information.
 
-    This type of information can be stored using the annotation interface.
+    This type of information can be stored using the annotation interface. The following example
+    will read packet data and will store the read timestamp as a packet annotation.
 
     \code
     struct Timestamp {
     }
     \endcode
 
-    It is very important to define a specific structure (or class) type for each type of
+    It is very important to define a specific structure (or class or enum) type for each type of
     annotation. \e Never directly store a fundamental type as an annotation: The name of the type is
     used to look up the annotation, so you can store only one annotation for each built-in type. \c
     typedef does not help since \c typedef does not introduce new type names, it only defines an
     }
     \endcode
 
+    Every annotation is automatically default-initialized, there is no way to query, whether a
+    packet holds a specific annotation -- every packet conceptually always holds all annotations.
+
     You should use annotations economically: Every annotation type used in your program will
     allocate an annotation slot in \e all packet data structures. So don't use hundreds of different
     annotation types if this is not really necessary: Reuse annotation types where possible or