X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketParser.ih;h=00df8a80270fda5969c1a0f9928d1f98114eeca1;hb=c45c112ae88196ea8da9c5a9efb0e167196744d2;hp=defec14b23c0fb1d4d2578edd81e8d8ccdbda6e9;hpb=8d2d26f114d3df0a60c5c516fcf40671b1e55558;p=senf.git diff --git a/Packets/PacketParser.ih b/Packets/PacketParser.ih index defec14..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,8 +23,8 @@ /** \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" @@ -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 }}