Packets: BUGFIX: ensure complete interpreter chain in finalize()
[senf.git] / Packets / Mainpage.dox
1 /** \mainpage The SENF Packet Library
2
3     \section arch Overall Architecture
4
5     The Packet library consists of several components:
6     
7     \li The \ref packet_module manages the packet data and provides the framework for handling the
8         chain of packet headers. The visible interface is provided by the Packet class.
9     \li \ref packetparser provides the framework for interpreting packet data. It handles
10         parsing the packet information into meaningful values.
11     \li The \ref protocolbundles provide concrete implementations for interpreting packets of
12         some protocol. The Protocol Bundles are built on top of the basic packet library.
13  */
14
15 /*    
16
17      - ParseInt.hh: Lots of parsers for integer numbers like senf::Parse_UInt8, for integer
18        bitfields like senf::Parse_UIntField and senf::Parse_Flag to parse boolean flags.
19
20      - ParseArray.hh: The senf::Parse_Array parser to parse arbitrary fixed-size arrays of
21        fixed-size elements (that is sub-parsers).
22
23      - ParseVec.hh: The senf::Parse_Vector parser to parse dynamically sized arrays of fixed-size
24        elements (that is sub-parsers).
25
26     See senf::ParserBase for further information.
27
28     \section stuff Other Utilities
29
30     The pkf also comprises some additional utilities to support the development of packet classes.
31
32     The senf::PacketRegistry implements a registry of packets keyed by an arbitrary type. The
33     registry is used to find a packet type given some kind of id (like the ethertype value from the
34     ethernet header). Together with it's support classes (especially senf::PacketRegistryMixin) this
35     class greatly simplifies implementing the needed table lookups.
36  */
37
38 \f
39 // Local Variables:
40 // mode: c++
41 // fill-column: 100
42 // c-file-style: "senf"
43 // indent-tabs-mode: nil
44 // ispell-local-dictionary: "american"
45 // mode: flyspell
46 // mode: auto-fill
47 // End: