switch to new MPL based Fraunhofer FOKUS Public License
[senf.git] / senf / Packets / ParseHelpers.dox
index 2ff88af..ce239f1 100644 (file)
@@ -1,24 +1,29 @@
 // $Id$
 //
-// Copyright (C) 2008 
+// Copyright (C) 2008
 // Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
-//     Stefan Bund <g0dil@berlios.de>
 //
-// 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.
+//
+// Contributor(s):
+//   Stefan Bund <g0dil@berlios.de>
+
 
 /** \page parsermacro_expand_example Example macro-expansion of packet parser helper macros
 
@@ -67,7 +72,7 @@
     \code
     struct TestParser : public senf::PacketParserBase
     {
-        // /////////////////////////////////////////////////////////////////////////
+        //-/////////////////////////////////////////////////////////////////////////
         // #include SENF_PARSER()
 
     private:
         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:
         void init_chain (senf::mpl::rv<type_index> *) const
             {
                 init_chain (static_cast<senf::mpl::rv<type_index - 1> *>(0));
-            } 
+            }
 
     public:
         size_type type_offset() const
             {
                 return field_offset_(static_cast<senf::mpl::rv<type_index - 1> *>(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);
                 return type_();
             }
 
-        // /////////////////////////////////////////////////////////////////////////
+        //-/////////////////////////////////////////////////////////////////////////
         // SENF_PARSER_PRIVATE_VARIANT( content_, type,
         //                                 ( novalue( nocontent, key(10, senf::VoidPacketParser)) )
         //                                 (      id( content,           SubParser              ) )
                 return 1;
             }
         template <content__chooser_value_type (*KeyFn) ()>
-        struct content__key_value_template 
+        struct content__key_value_template
             : public senf::detail::VariantKey<content__chooser_value_type, KeyFn> {};
         template <class T, T (*K)()> friend class senf::detail::VariantKey;
         typedef senf::detail::VariantKeyTransform<
 
         // 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<content__aux_policy, senf::detail::auxtag::none>::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<content__index> *) const
                 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<content__collection_t>::value ? 0 : 1);
         SENF_MPL_SLOET_SET(group, content__group);
         template < class T >
         void init_content() const
             {
                 content_().init<1>();
-            } 
+            }
         bool has_content() const
             {
                 return content_().variant() == 1;
             };
 
-        // /////////////////////////////////////////////////////////////////////////
+        //-/////////////////////////////////////////////////////////////////////////
         // SENF_PARSER_FINALIZE(TestParser);
 
         void defaultInit() const
             {}
 
     private:
-        template <class T> 
+        template <class T>
         void init(T) const
-            { 
+            {
                 defaultInit ();
             }