X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FParseHelpers.dox;h=d1637cb0192b48134a5c5c391caa33a938a68ed6;hb=57daeae6f2e924ce3f16f9677c3474f531cba9e5;hp=2ff88af1ddb457f56d0decd4b5871497d0991c13;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/ParseHelpers.dox b/senf/Packets/ParseHelpers.dox index 2ff88af..d1637cb 100644 --- a/senf/Packets/ParseHelpers.dox +++ b/senf/Packets/ParseHelpers.dox @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -67,7 +67,7 @@ \code struct TestParser : public senf::PacketParserBase { - // ///////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////// // #include SENF_PARSER() private: @@ -77,15 +77,15 @@ SENF_MPL_SLOT_INIT_ZERO(bitfield_size); SENF_MPL_SLOT_INIT_ZERO(group); - void init_chain (senf::mpl::rv <0> *) const {} + void init_chain (senf::mpl::rv <0> *) const {} size_type field_offset_ (senf::mpl::rv <0> *) const { return 0; } - // ///////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////// // SENF_PARSER_SKIP_BITS( 4 ); SENF_MPL_SLOT_SET(bit, SENF_MPL_SLOT_GET(bit) + 4); - // ///////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////// // SENF_PARSER_BITFIELD_RO( type, 4, unsigned ); public: @@ -104,13 +104,13 @@ void init_chain (senf::mpl::rv *) const { init_chain (static_cast *>(0)); - } + } public: size_type type_offset() const { return field_offset_(static_cast *>(0)) - - SENF_MPL_SLOT_GET(bitfield_size); + SENF_MPL_SLOT_GET(bitfield_size); } static size_type const type_init_bytes = SENF_MPL_SLOT_GET(init_bytes) - SENF_MPL_SLOT_GET(bitfield_size); @@ -140,7 +140,7 @@ return type_(); } - // ///////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////// // SENF_PARSER_PRIVATE_VARIANT( content_, type, // ( novalue( nocontent, key(10, senf::VoidPacketParser)) ) // ( id( content, SubParser ) ) @@ -158,7 +158,7 @@ return 1; } template - struct content__key_value_template + struct content__key_value_template : public senf::detail::VariantKey {}; template friend class senf::detail::VariantKey; typedef senf::detail::VariantKeyTransform< @@ -171,16 +171,16 @@ // start SENF_PARSER_COLLECTION_I static bool const content__aux_fixed = (SENF_MPL_SLOT_GET(group) - type_group) == 0; - typedef senf::detail::ParserAuxPolicySelect < - type_t, + typedef senf::detail::ParserAuxPolicySelect < + type_t, SENF_MPL_SLOT_GET(init_bytes) - type_init_bytes, - content__aux_fixed + content__aux_fixed >::type content__aux_policy; typedef content__traits::parser::type content__collection_t; SENF_MPL_SLOT_SET(bit, 0); SENF_MPL_SLOT_SET(bitfield_size, 0); - typedef content__collection_t content__t; + typedef content__collection_t content__t; static size_type const content__index = SENF_MPL_SLOT_GET(index) + 1; SENF_MPL_SLOT_SET(index, content__index); void init_chain (senf::mpl::rv *) const @@ -204,7 +204,7 @@ return content__next_offset(); } SENF_MPL_SLOT_SET(init_bytes, content__next_init_bytes); - static size_type const content__group = + static size_type const content__group = SENF_MPL_SLOT_GET(group) + (senf::is_fixed::value ? 0 : 1); SENF_MPL_SLOET_SET(group, content__group); template < class T > @@ -242,13 +242,13 @@ void init_content() const { content_().init<1>(); - } + } bool has_content() const { return content_().variant() == 1; }; - // ///////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////// // SENF_PARSER_FINALIZE(TestParser); void defaultInit() const @@ -260,9 +260,9 @@ {} private: - template + template void init(T) const - { + { defaultInit (); }