Howtos/NewPacket: Reformat 'Further reading' list
[senf.git] / HowTos / NewPacket / Mainpage.dox
index 1395147..a932cb8 100644 (file)
         senf::RawV6ClientSocketHandle isock (47u); // 47 = Read GRE packets
         senf::PacketSocketHandle osock;
 
-        while (1) {
+        while (true) {
             try {
                 GREPacket gre (GREPacket::create(senf::noinit));
                 isock.read(gre.data(),0u);
         senf::TapSocketHandle tap ("tap0");
         senf::ConnectedRawV6ClientSocketHandle osock (47u, senf::INet6SocketAddress(argv[1]));
     
-        while (1) {
+        while (true) {
             senf::EthernetPacket eth (senf::EthernetPacket::create(senf::noinit));
             isock.read(eth.data(),0u);
             GREPacket gre (senf::GREPacket::createBefore(eth));
     
     \section howto_newpacket_further Further reading
 
-    Lets start with references to the important API's (Use the 'Show all members' link to get the
-    complete API of one of the classes and templates):
+    Lets start with references to the important API's (Use the <i>List of all members</i> link to
+    get the complete API of one of the classes and templates):
 
-    \li senf::ConcretePacket : this is the API provided by the packet handles.
-    \li senf::PacketData : this API provides raw data access accessible via the handles 'data'
-        member.
-    \li senf::PacketParserBase : this is the generic parser API. This API is accessible via the
-        packets \c -> operator or via the sub-parsers returned by the field accessors.
+    <table class="senf fixedcolumn">
+
+    <tr><td>senf::ConcretePacket</td> <td>this is the API provided by the packet handles.</td></tr>
+
+    <tr><td>senf::PacketData</td> <td>this API provides raw data access accessible via the handles
+    'data' member.</td></tr>
+
+    <tr><td>senf::PacketParserBase</td> <td>this is the generic parser API. This API is accessible
+    via the packets \c -> operator or via the sub-parsers returned by the field accessors.</td></tr>
+
+    </table>
 
     When implementing new packet's, the following information will be helpful:
 
-    \li senf::PacketTypeBase : here you find a description of the members which need to be
-        implemented to provide a 'packet type'. Most of these members will normally be provided by
-        the mixin helper.
-    \li senf::PacketTypeMixin : here you find all about the packet type mixin and how to use it.
-    \li \ref packetparser : This section describes the packet parser facility.
-    \li \ref packetparsermacros : A complete list and documentation of all the packet parser macros.
-    \li There are several lists of available reusable packet parsers: \ref parseint, \ref
-        parsecollection. However, this list is not complete as there are other protocol specific
-        reusable parsers (without claiming to be exhaustive: senf::INet4AddressParser,
-        senf::INet6AddressParser, senf::MACAddressParser)
+    <table class="senf fixedcolumn">
+    
+    <tr><td>senf::PacketTypeBase</td> <td>here you find a description of the members which need to
+    be implemented to provide a 'packet type'. Most of these members will normally be provided by
+    the mixin helper.</td></tr>
+
+    <tr><td>senf::PacketTypeMixin</td> <td>here you find all about the packet type mixin and how to
+    use it.</td></tr>
+
+    <tr><td>\ref packetparser</td> <td>This section describes the packet parser facility.</td></tr>
+    
+    <tr><td>\link packetparsermacros Packet parser macros\endlink</td> <td>A complete list and
+    documentation of all the packet parser macros.</td></tr>
+    
+    <tr><td>\ref parseint, \n \ref parsecollection</td> <td>There are several lists of available
+    reusable packet parsers: . However, this list is not complete as there are other protocol
+    specific reusable parsers (without claiming to be exhaustive: senf::INet4AddressParser,
+    senf::INet6AddressParser, senf::MACAddressParser)</td></tr>
+
+    </table>
 
  */