Search:

SENF Extensible Network Framework

  • Home
  • Download
  • Wiki
  • BerliOS
  • ChangeLog
  • Browse SVN
  • Bug Tracker
  • Overview
  • Examples
  • HowTos
  • Glossary
  • PPI
  • Packets
  • Scheduler
  • Socket
  • Utils
  • Console
  • Daemon
  • Logger
  • Termlib
  • Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

ParseHelpers.hh

Go to the documentation of this file.
00001 // $Id: ParseHelpers.hh 1742 2010-11-04 14:51:56Z g0dil $
00002 //
00003 // Copyright (C) 2007
00004 // Fraunhofer (FOKUS)
00005 // Competence Center NETwork research (NET), St. Augustin, GERMANY
00006 //     Stefan Bund <g0dil@berlios.de>
00007 //
00008 // This program is free software; you can redistribute it and/or modify
00009 // it under the terms of the GNU General Public License as published by
00010 // the Free Software Foundation; either version 2 of the License, or
00011 // (at your option) any later version.
00012 //
00013 // This program is distributed in the hope that it will be useful,
00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 // GNU General Public License for more details.
00017 //
00018 // You should have received a copy of the GNU General Public License
00019 // along with this program; if not, write to the
00020 // Free Software Foundation, Inc.,
00021 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00022 
00026 #ifndef HH_SENF_Packets_ParseHelpers_
00027 #define HH_SENF_Packets_ParseHelpers_ 1
00028 
00029 #ifndef HH_SENF_Packets_Packets_
00030 #error "Don't include 'ParseHelpers.hh' directly, include 'Packets.hh'"
00031 #endif
00032 
00033 // Custom includes
00034 
00035 //#include "ParseHelpers.mpp"
00036 #include "ParseHelpers.ih"
00037 //-/////////////////////////////////////////////////////////////////////////////////////////////////
00038 
00281 
00282 //\{
00283 
00285 //\{
00286 
00302 #define SENF_FIXED_PARSER()      SENF_ABSOLUTE_INCLUDE_PATH(Packets/parse_fixed_setup.hh)
00303 
00319 #define SENF_PARSER()            SENF_ABSOLUTE_INCLUDE_PATH(Packets/parse_setup.hh)
00320 
00340 #define SENF_PARSER_INIT()       void init(int) const
00341 
00342 #ifdef DOXYGEN
00343 
00363 #define SENF_PARSER_INHERIT(base)
00364 
00387 #define SENF_PARSER_FINALIZE(name)
00388 
00389 //\}
00390 
00392 //\{
00393 
00427 #define SENF_PARSER_FIELD(name, type)
00428 
00442 #define SENF_PARSER_FIELD_RO(name, type)
00443 
00452 #define SENF_PARSER_PRIVATE_FIELD(name, type)
00453 
00483 #define SENF_PARSER_CUSTOM_FIELD(name, type, size)
00484 
00485 //\}
00486 
00488 //\{
00489 
00515 #define SENF_PARSER_BITFIELD(name, bits, type)
00516 
00524 #define SENF_PARSER_BITFIELD_RO(name, bits, type)
00525 
00534 #define SENF_PARSER_PRIVATE_BITFIELD(name, bits, type)
00535 
00536 //\}
00537 
00539 //\{
00540 
00560 #define SENF_PARSER_SKIP(skip)
00561 
00570 #define SENF_PARSER_SKIP_BITS(bits)
00571 
00586 #define SENF_PARSER_GOTO(name)
00587 
00604 #define SENF_PARSER_GOTO_OFFSET(offset)
00605 
00619 #define SENF_PARSER_LABEL(name)
00620 
00632 #define SENF_PARSER_OFFSET(name)
00633 
00648 #define SENF_PARSER_FIXED_OFFSET(name)
00649 
00663 #define SENF_PARSER_CURRENT_FIXED_OFFSET()
00664 
00665 //\}
00666 
00667 #else
00668 
00669 #define SENF_PARSER_INHERIT              BOOST_PP_CAT( SENF_PARSER_INHERIT_,              SENF_PARSER_TYPE )
00670 
00671 #define SENF_PARSER_FIELD                BOOST_PP_CAT( SENF_PARSER_FIELD_,                SENF_PARSER_TYPE )
00672 #define SENF_PARSER_FIELD_RO             BOOST_PP_CAT( SENF_PARSER_FIELD_RO_,             SENF_PARSER_TYPE )
00673 #define SENF_PARSER_BITFIELD             BOOST_PP_CAT( SENF_PARSER_BITFIELD_,             SENF_PARSER_TYPE )
00674 #define SENF_PARSER_BITFIELD_RO          BOOST_PP_CAT( SENF_PARSER_BITFIELD_RO_,          SENF_PARSER_TYPE )
00675 #define SENF_PARSER_CUSTOM_FIELD         BOOST_PP_CAT( SENF_PARSER_CUSTOM_FIELD_,         SENF_PARSER_TYPE )
00676 
00677 #define SENF_PARSER_PRIVATE_FIELD        BOOST_PP_CAT( SENF_PARSER_P_FIELD_,              SENF_PARSER_TYPE )
00678 #define SENF_PARSER_PRIVATE_BITFIELD     BOOST_PP_CAT( SENF_PARSER_P_BITFIELD_,           SENF_PARSER_TYPE )
00679 
00680 #define SENF_PARSER_SKIP                 BOOST_PP_CAT( SENF_PARSER_SKIP_,                 SENF_PARSER_TYPE )
00681 #define SENF_PARSER_SKIP_BITS            BOOST_PP_CAT( SENF_PARSER_SKIP_BITS_,            SENF_PARSER_TYPE )
00682 #define SENF_PARSER_GOTO                 BOOST_PP_CAT( SENF_PARSER_GOTO_,                 SENF_PARSER_TYPE )
00683 #define SENF_PARSER_GOTO_OFFSET          BOOST_PP_CAT( SENF_PARSER_GOTO_OFFSET_,          SENF_PARSER_TYPE )
00684 #define SENF_PARSER_LABEL                BOOST_PP_CAT( SENF_PARSER_LABEL_,                SENF_PARSER_TYPE )
00685 
00686 #define SENF_PARSER_OFFSET               BOOST_PP_CAT( SENF_PARSER_OFFSET_,               SENF_PARSER_TYPE )
00687 #define SENF_PARSER_FIXED_OFFSET         BOOST_PP_CAT( SENF_PARSER_FIXED_OFFSET_,         SENF_PARSER_TYPE )
00688 #define SENF_PARSER_CURRENT_FIXED_OFFSET BOOST_PP_CAT( SENF_PARSER_CURRENT_FIXED_OFFSET_, SENF_PARSER_TYPE )
00689 
00690 #define SENF_PARSER_FINALIZE             BOOST_PP_CAT( SENF_PARSER_FINALIZE_,             SENF_PARSER_TYPE )
00691 
00692 #endif
00693 
00694 //\}
00695 
00696 //-/////////////////////////////////////////////////////////////////////////////////////////////////
00697 #endif
00698 #if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_ParseHelpers_i_)
00699 #define HH_SENF_Packets_ParseHelpers_i_
00700 //#include "ParseHelpers.cci"
00701 //#include "ParseHelpers.ct"
00702 //#include "ParseHelpers.cti"
00703 #endif
00704 
00705 
00706 // Local Variables:
00707 // mode: c++
00708 // fill-column: 100
00709 // comment-column: 40
00710 // c-file-style: "senf"
00711 // indent-tabs-mode: nil
00712 // ispell-local-dictionary: "american"
00713 // compile-command: "scons -u test"
00714 // End:

Contact: senf-dev@lists.berlios.de | © 2006-2010 Fraunhofer Institute for Open Communication Systems, Network Research