X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FMPEGDVBBundle%2FSNDUPacket.cc;h=6f4e8ea246cd6c5c1f3bf9be93747d9338fa161d;hb=4d90b955bf3590e215488395d1c9cec827476e07;hp=9590310cf97ac28c5cf130fa8911b80069ac9b3c;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/MPEGDVBBundle/SNDUPacket.cc b/senf/Packets/MPEGDVBBundle/SNDUPacket.cc index 9590310..6f4e8ea 100644 --- a/senf/Packets/MPEGDVBBundle/SNDUPacket.cc +++ b/senf/Packets/MPEGDVBBundle/SNDUPacket.cc @@ -28,31 +28,24 @@ // Custom includes #include -#include "../../Utils/hexdump.hh" -#include "../../Packets/DefaultBundle/EthernetPacket.hh" +#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 +57,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(); + senf::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 +89,12 @@ prefix_ void senf::SNDUPacketType::dump(packet p, std::ostream & os) { os << "SNDUPacket:\n" << std::dec - << " d_bit : " << p->d_bit() << "\n" - << " length : " << unsigned(p->length()) << "\n" + << senf::fieldName("d_bit") << p->d_bit() << "\n" + << senf::fieldName("length") << unsigned(p->length()) << "\n" << std::hex - << " type : 0x" << unsigned(p->type()) << "\n" + << senf::fieldName("type") << "0x" << unsigned(p->type()) << "\n" << std::dec - << " crc : " << unsigned(p->crc()) << "\n"; + << senf::fieldName("crc") << unsigned(p->crc()) << "\n"; } prefix_ senf::PacketParserBase::size_type senf::SNDUPacketType::initSize()