X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FMPEGDVBBundle%2FDTCPPacket.hh;h=4fe5c461933e8316f6e691a24a40c00c7aabe9aa;hb=63b650afb727cce067817ce9451eecb932446bf3;hp=eca766ea0a38a96039da608a926f98064e306083;hpb=6116cb96ea7bdcb42b7d12165a05fcbe0687226d;p=senf.git diff --git a/Packets/MPEGDVBBundle/DTCPPacket.hh b/Packets/MPEGDVBBundle/DTCPPacket.hh index eca766e..4fe5c46 100644 --- a/Packets/MPEGDVBBundle/DTCPPacket.hh +++ b/Packets/MPEGDVBBundle/DTCPPacket.hh @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum NETwork research (NET) -// David Wagner +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// David Wagner // // 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 @@ -33,18 +33,18 @@ namespace senf { //first we have to define some helpers struct DTCPIPv4AddressListParser : public PacketParserBase { # include SENF_PARSER() - SENF_PARSER_PRIVATE_FIELD ( num_of_fbips, Parse_UInt8 ); - SENF_PARSER_PRIVATE_FIELD ( reserved , Parse_UInt8 ); //must be zero - SENF_PARSER_VEC_N ( fbiplist, num_of_fbips, Parse_INet4Address ); + SENF_PARSER_PRIVATE_FIELD ( num_of_fbips, UInt8Parser ); + SENF_PARSER_PRIVATE_FIELD ( reserved , UInt8Parser ); //must be zero + SENF_PARSER_VEC_N ( fbiplist, num_of_fbips, INet4AddressParser ); SENF_PARSER_FINALIZE(DTCPIPv4AddressListParser); }; struct DTCPIPv6AddressListParser : public PacketParserBase { # include SENF_PARSER() - SENF_PARSER_PRIVATE_FIELD ( num_of_fbips, Parse_UInt8 ); - SENF_PARSER_PRIVATE_FIELD ( reserved, Parse_UInt8 ); //must be zero - SENF_PARSER_VEC_N ( fbiplist, num_of_fbips, Parse_INet6Address ); + SENF_PARSER_PRIVATE_FIELD ( num_of_fbips, UInt8Parser ); + SENF_PARSER_PRIVATE_FIELD ( reserved, UInt8Parser ); //must be zero + SENF_PARSER_VEC_N ( fbiplist, num_of_fbips, INet6AddressParser ); SENF_PARSER_FINALIZE(DTCPIPv6AddressListParser); }; @@ -55,18 +55,18 @@ namespace senf { \see DTCPPacketType */ - struct Parse_DTCPPacket : public PacketParserBase + struct DTCPPacketParser : public PacketParserBase { # include SENF_PARSER() SENF_PARSER_BITFIELD ( version_number, 4, unsigned ); // =1 according to rfc3077 SENF_PARSER_BITFIELD ( command, 4, unsigned ); // 1=JOIN 2=LEAVE - SENF_PARSER_FIELD ( interval, Parse_UInt8 ); // 5 according to rfc3077 - SENF_PARSER_FIELD ( sequence_number, Parse_UInt16 ); + SENF_PARSER_FIELD ( interval, UInt8Parser ); // 5 according to rfc3077 + SENF_PARSER_FIELD ( sequence_number, UInt16Parser ); SENF_PARSER_PRIVATE_BITFIELD ( reserved, 3, unsigned ); SENF_PARSER_BITFIELD ( receive_capable_feed, 1, bool ); // 0=send only, 1=receive_capable_feed SENF_PARSER_BITFIELD ( ip_version, 4, unsigned ); // 4=IPv4, 6=IPv6 - SENF_PARSER_FIELD ( tunnel_protocol, Parse_UInt8 ); + SENF_PARSER_FIELD ( tunnel_protocol, UInt8Parser ); /* Please consider the following comments on the implementation given in this class: * 1. you could think of simply using SENF_PARSER_PRIVATE_VARIANT and List / Vectorparser like this: * SENF_PARSER_PRIVATE_VARIANT ( fbiplist, ip_version, @@ -74,9 +74,9 @@ namespace senf { * (senf::VoidPacketParser) //1 * (senf::VoidPacketParser) //2 * (senf::VoidPacketParser) //3 - * (senf::Parse_ListB< IPv4Packet, num_of_fbips>) //4 + * (senf::ListBParser< IPv4Packet, num_of_fbips>) //4 * (senf::VoidPacketParser) //5 - * (senf::Parse_ListB< IPv6Packet, num_of_fbips>) ); //6 + * (senf::ListBParser< IPv6Packet, num_of_fbips>) ); //6 * This can't work for two reasons: * -SENF_PARSER_PRIVATE_VARIANT only accepts 6 templates in types but you have to start from 0. * -you NEVER can use templated Parsers in these macros since the macro-preprocessor won't recognize the <> brackets and will @@ -108,7 +108,7 @@ namespace senf { (senf::DTCPIPv4AddressListParser) //IPv4 (senf::DTCPIPv6AddressListParser) ); //IPv6 - SENF_PARSER_FINALIZE(Parse_DTCPPacket); + SENF_PARSER_FINALIZE(DTCPPacketParser); }; /** \brief DTCP packet @@ -117,7 +117,7 @@ namespace senf { \ref DTCPPacket \par Fields: - \ref Parse_DTCPPacket + \ref DTCPPacketParser \ingroup protocolbundle_mpegdvb */ @@ -127,7 +127,7 @@ namespace senf { { typedef PacketTypeMixin mixin; typedef ConcretePacket packet; - typedef Parse_DTCPPacket parser; + typedef DTCPPacketParser parser; using mixin::nextPacketRange; using mixin::init;