X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketParser.ih;h=00df8a80270fda5969c1a0f9928d1f98114eeca1;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=2fb098a60eb3dcf6d8e016f8ca9ba5547996ac6a;hpb=21bad90912447cd2d390112cf2d2a7d383ad8058;p=senf.git diff --git a/Packets/PacketParser.ih b/Packets/PacketParser.ih index 2fb098a..00df8a8 100644 --- a/Packets/PacketParser.ih +++ b/Packets/PacketParser.ih @@ -1,6 +1,8 @@ -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// $Id$ +// +// 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 @@ -21,11 +23,11 @@ /** \file \brief PacketParser internal header */ -#ifndef IH_PacketParser_ -#define IH_PacketParser_ 1 +#ifndef IH_SENF_Packets_PacketParser_ +#define IH_SENF_Packets_PacketParser_ 1 // Custom includes -#include "Utils/mpl.hh" +#include "../Utils/mpl.hh" ///////////////////////////////ih.p//////////////////////////////////////// @@ -61,6 +63,16 @@ namespace detail { template struct ParserInitBytes_Choose : public boost::integral_constant {}; + // ^^-- g++ error signaled here: + // error: 'fixed_bytes' is not a member of 'some-class-name' + // + // The 'some-class-name' class (as given in the error message) does not seem to be a parser at + // all (it has neither a 'fixed_bytes' nor an 'init_bytes' member). + // + // Either 'some-class-name' is not the class you wanted to use (it really is no parser) or you + // left out either 'init_bytes' or 'fixed_bytes' when defining the parser. This will also + // happen, if you forget to call 'SENF_PARSER_FINALIZE()' when defining a composite parser. + /////////////////////////////////////////////////////////////////////////////////////////////// // If Parser::init_bytes is not defined, this specialization is chosen which instead uses // 'Parser::fixed_bytes' @@ -72,6 +84,18 @@ namespace detail { struct ParserInitBytes : public ParserInitBytes_Choose(0))> {}; + template + struct ParserIsFixed_Choose + : public boost::false_type {}; + + template + struct ParserIsFixed_Choose + : public boost::true_type {}; + + template + struct ParserIsFixed + : public ParserIsFixed_Choose(0))> {}; + # endif }}