X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FMPEGDVBBundle%2FSNDUPacket.cc;h=c4508728b3baeb231160098c403c48daff4d5bf1;hb=8a6697d11e9a6557d9a5c42b4052666fce32bc10;hp=c56d5a16520befcee7b58bea1995b8146cbb9eab;hpb=82e794070d4f3ae8aacb1827b21a93b9d48ce57f;p=senf.git diff --git a/senf/Packets/MPEGDVBBundle/SNDUPacket.cc b/senf/Packets/MPEGDVBBundle/SNDUPacket.cc index c56d5a1..c450872 100644 --- a/senf/Packets/MPEGDVBBundle/SNDUPacket.cc +++ b/senf/Packets/MPEGDVBBundle/SNDUPacket.cc @@ -2,23 +2,28 @@ // // Copyright (C) 2007 // Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY -// Thorsten Horstmann // -// 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. +// All Rights Reserved. +// +// Contributor(s): +// Thorsten Horstmann /** \file \brief DSMCCSection non-inline non-template implementation */ @@ -28,31 +33,22 @@ // Custom includes #include -#include -#include - #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// - -//namespace { -// senf::PacketRegistry::RegistrationProxy -// registerEthVLanPacket(0x8100); -//} - +//-///////////////////////////////////////////////////////////////////////////////////////////////// prefix_ boost::uint32_t senf::SNDUPacketParser::calcCrc() const { return std::for_each( - data().begin(), - boost::prior(data().end(), 4), + data().begin(), + boost::prior(data().end(), 4), ule_crc32() ).checksum(); } //prefix_ senf::SNDUPacketType::key_t senf::SNDUPacketType::nextPacketKey(packet p) //{ -// return p->type(); +// return p->type(); //} prefix_ void senf::SNDUPacketType::init(packet p) @@ -64,20 +60,26 @@ prefix_ senf::PacketInterpreterBase::factory_t senf::SNDUPacketType::nextPacketT { if (p.data().size() < 8) return no_factory(); - PkReg_Entry const * e; - if (p->type() < 1536) - e = PacketRegistry::lookup( p->type(), nothrow ); - else - e = PacketRegistry::lookup( p->type(), nothrow ); - return e ? e->factory() : no_factory(); + PacketInterpreterBase::factory_t f (no_factory()); + if (p->type() < 1536) { + PacketRegistry::Entry const * e ( + PacketRegistry::lookup( p->type(), nothrow )); + if (e) f = e->factory(); + } + else { + PacketRegistry::Entry const * e ( + PacketRegistry::lookup( p->type(), nothrow )); + if (e) f = e->factory(); + } + return f; } -prefix_ senf::PacketInterpreterBase::optional_range -senf::SNDUPacketType::nextPacketRange(packet p) +prefix_ senf::PacketInterpreterBase::optional_range +senf::SNDUPacketType::nextPacketRange(packet p) { if (p.data().size() < 8) return no_range(); - + size_type sz = 2 + 2; // D-Bit + 15 bits length + 16 bits type field if (! p->d_bit() ) sz += 6; // + 6 Byte NPA destination address @@ -90,12 +92,12 @@ prefix_ void senf::SNDUPacketType::dump(packet p, std::ostream & os) { os << "SNDUPacket:\n" << std::dec - << senf::fieldName("d_bit") << p->d_bit() << "\n" - << senf::fieldName("length") << unsigned(p->length()) << "\n" + << senf::fieldName("d_bit") << p->d_bit() << "\n" + << senf::fieldName("length") << unsigned(p->length()) << "\n" << std::hex - << senf::fieldName("type") << "0x" << unsigned(p->type()) << "\n" + << senf::fieldName("type") << "0x" << unsigned(p->type()) << "\n" << std::dec - << senf::fieldName("crc") << unsigned(p->crc()) << "\n"; + << senf::fieldName("crc") << unsigned(p->crc()) << "\n"; } prefix_ senf::PacketParserBase::size_type senf::SNDUPacketType::initSize() @@ -108,7 +110,7 @@ prefix_ senf::PacketParserBase::size_type senf::SNDUPacketType::initHeadSize() return 2 + 2; // D-Bit + 15 bits length + 16 bits type field } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_