X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FVariantParser.ih;h=039b1a86d1d2a0e53f8d5cd2a9f5e407ae1a706c;hb=refs%2Fheads%2Fmaster;hp=f485bb228d616ca112bdbaca1277a4de2aaed89b;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/VariantParser.ih b/senf/Packets/VariantParser.ih index f485bb2..039b1a8 100644 --- a/senf/Packets/VariantParser.ih +++ b/senf/Packets/VariantParser.ih @@ -2,23 +2,28 @@ // // Copyright (C) 2007 // Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY -// Stefan Bund // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// The contents of this file are subject to the Fraunhofer FOKUS Public License +// Version 1.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// http://senf.berlios.de/license.html // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// The Fraunhofer FOKUS Public License Version 1.0 is based on, +// but modifies the Mozilla Public License Version 1.1. +// See the full license text for the amendments. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the License. +// +// The Original Code is Fraunhofer FOKUS code. +// +// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. +// (registered association), Hansastraße 27 c, 80686 Munich, Germany. +// All Rights Reserved. +// +// Contributor(s): +// Stefan Bund /** \file \brief VariantParser internal header */ @@ -37,7 +42,7 @@ #include #include -///////////////////////////////ih.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { namespace detail { @@ -63,7 +68,7 @@ namespace detail { template struct VariantParserPolicy - : public VariantParserPolicy< void, + : public VariantParserPolicy< void, TransformAuxParserPolicy, AuxTag > {}; @@ -75,8 +80,8 @@ namespace detail { template struct VariantParserPolicy > { typedef TransformAuxParserPolicy type; @@ -93,8 +98,8 @@ namespace detail { }; }; - template - struct VariantKey + template + struct VariantKey { static T key() { return (*KeyFn)(); } }; @@ -121,7 +126,7 @@ namespace detail { static Out get(In v); static In set(Out v); }; - + # define SENF_PARSER_VARIANT_I(access, name, chooser, types) \ SENF_PARSER_REQUIRE_VAR(variant) \ protected: \ @@ -150,7 +155,7 @@ namespace detail { template \ struct BOOST_PP_CAT(name, _key_value_template) \ : public senf::detail::VariantKey {}; \ - template friend class senf::detail::VariantKey; \ + template friend struct senf::detail::VariantKey; \ typedef senf::detail::VariantKeyTransform< \ BOOST_PP_CAT(name,_chooser_value_type), \ boost::mpl::vector< \ @@ -185,7 +190,7 @@ namespace detail { # define SENF_PARSER_VARIANT_IFNOTNA(id, x) \ BOOST_PP_EXPR_IIF( BOOST_PP_NOT( SENF_PARSER_VARIANT_NA(id) ), x ) - + # define SENF_PARSER_VARIANT_MAKEACCESSOR_VALUE(name, i, elem, id) \ SENF_PARSER_VARIANT_IFNOTNA( id, \ typedef SENF_PARSER_VARIANT_GETTYPE(elem) \ @@ -193,7 +198,7 @@ namespace detail { BOOST_PP_CAT(id, _t) id() const \ { return name().get(); } \ ) - + # define SENF_PARSER_VARIANT_MAKEACCESSOR_HAS(name, i, elem, id) \ SENF_PARSER_VARIANT_IFNOTNA( id, \ bool id() const \ @@ -294,7 +299,7 @@ namespace detail { }} -///////////////////////////////ih.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #endif