X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FAuxParser.hh;h=c76926c4b644695118e09c277bba888c0885ac26;hb=fb2fe88ee9a9d2a777ecaf3327d04b60479fcc8d;hp=5e4a427092ccf4256df153413f6f7e79ddb83739;hpb=8f1a688cea76f2e76bfa0193dff9c1538929147e;p=senf.git diff --git a/Packets/AuxParser.hh b/Packets/AuxParser.hh index 5e4a427..c76926c 100644 --- a/Packets/AuxParser.hh +++ b/Packets/AuxParser.hh @@ -23,10 +23,10 @@ /** \file \brief AuxParser public header */ -#ifndef HH_AuxParser_ -#define HH_AuxParser_ 1 +#ifndef HH_SENF_Packets_AuxParser_ +#define HH_SENF_Packets_AuxParser_ 1 -#ifndef HH_Packets_ +#ifndef HH_SENF_Packets_Packets_ #error "Don't include 'AuxParser.hh' directly, include 'Packets.hh'" #endif @@ -40,6 +40,10 @@ namespace senf { namespace detail { + /** \brief Internal: Prefix aux-parser policy + + Place auxiliary field directly before a container/collection. + */ template struct PrefixAuxParserPolicy { @@ -53,6 +57,10 @@ namespace detail { PacketParserBase::data_iterator adjust(PacketParserBase::data_iterator i, PacketParserBase::state_type s) const; }; + /** \brief Internal: Fixed distance aux-parser policy + + Place auxiliary field a fixed distance before the container/collection + */ template struct FixedAuxParserPolicy { @@ -68,6 +76,10 @@ namespace detail { template struct DynamicWrapperAuxParserPolicy; + /** \brief Internal: Dynamic aux-parser policy + + Place auxiliary field at a variable distance before the container/collection + */ template struct DynamicAuxParserPolicy { @@ -86,6 +98,11 @@ namespace detail { mutable P p_; }; + /** \brief Internal: Dynamic aux-parser policy (container wrapper) + + Place auxiliary field at a variable distance before the container/collection. This is the + wrapper policy used by DynamicAuxParserPolicy + */ template struct DynamicWrapperAuxParserPolicy { @@ -103,6 +120,18 @@ namespace detail { mutable SafePacketParserWrapper

p_; }; + /** \brief Internal: Apply transformation to arbitrary aux-parser policy + + Transform must statisfy the interface + \code + struct Transform + { + typedef unspecified value_type; + static value_type get(unspecified v); + static unspecified set(value_type v); + }; + \endcode + */ template struct TransformAuxParserPolicy : public Policy @@ -122,8 +151,8 @@ namespace detail { ///////////////////////////////hh.e//////////////////////////////////////// #endif -#if !defined(HH_Packets__decls_) && !defined(HH_AuxParser_i_) -#define HH_AuxParser_i_ +#if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_AuxParser_i_) +#define HH_SENF_Packets_AuxParser_i_ //#include "AuxParser.cci" //#include "AuxParser.ct" #include "AuxParser.cti"