X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacket.hh;h=f08a996a87bf4fa760ed9246ad9519476af3b1f0;hb=46ce25973f087d30ca10eebdad6e3bfa7586ecc9;hp=566c2195426749b26ce4429f1f3b413e25f1680d;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Packets/Packet.hh b/Packets/Packet.hh index 566c219..f08a996 100644 --- a/Packets/Packet.hh +++ b/Packets/Packet.hh @@ -28,7 +28,8 @@ // Custom includes #include - +#include +#include #include "../Utils/Exception.hh" #include "../Utils/Tags.hh" #include "../Utils/safe_bool.hh" @@ -41,7 +42,7 @@ namespace senf { /** \defgroup packet_module Packet Handling - The basic groundwork of the Packet library is the packet handling: + The basic groundwork of the %Packet library is the packet handling: \li The packet classes provide access to a chain of packet headers (more generically called interpreters). @@ -98,16 +99,16 @@ namespace senf { ///\addtogroup packet_module ///@{ - /** \brief Main Packet class + /** \brief Main %Packet class - Packet is the main externally visible class of the packet library. Packet is a handle into - the internal packet representation. From Packet you may access the data of that specific + %Packet is the main externally visible class of the packet library. %Packet is a handle into + the internal packet representation. From %Packet you may access the data of that specific sub-packet/header/interpreter and navigate to the neighboring sub-packets/headers/interpreters. - Packet is protocol agnostic. This class only provides non-protocol dependent members. To + %Packet is protocol agnostic. This class only provides non-protocol dependent members. To access the protocol specific features of a packet (like header fields) the ConcretePacket - class extending Packet is provided. + class extending %Packet is provided. \section packet_semantics Semantics @@ -133,7 +134,7 @@ namespace senf { \ref ConcretePacket < \ref EthernetPacketType >). \see - \ref ConcretePacket for the type specific interface\n + \ref ConcretePacket for the %type specific interface\n \ref PacketData for the sequence interface\n \ref packetparser for a specification of the parser interface */ @@ -465,6 +466,12 @@ namespace senf { \param[in] size Size of the packet to create in bytes \param[in] senf::noinit This parameter must always have the value \c senf::noinit. */ +#ifndef DOXYGEN + template + static ConcretePacket create( + ForwardReadableRange const & range, + typename boost::disable_if< boost::is_integral >::type * = 0); +#else template static ConcretePacket create(ForwardReadableRange const & range); ///< Create packet from given data @@ -475,6 +482,7 @@ namespace senf { \param[in] range Boost.Range of data to construct packet from. */ +#endif // Create packet as new packet after a given packet @@ -516,6 +524,13 @@ namespace senf { \param[in] size Size of the packet to create in bytes \param[in] senf::noinit This parameter must always have the value \c senf::noinit. */ +#ifndef DOXYGEN + template + static ConcretePacket createAfter( + Packet packet, + ForwardReadableRange const & range, + typename boost::disable_if< boost::is_integral >::type * = 0); +#else template static ConcretePacket createAfter(Packet packet, ForwardReadableRange const & range); @@ -530,6 +545,7 @@ namespace senf { \param[in] range Boost.Range of data to construct packet from. */ +#endif // Create packet as new packet (header) before a given packet