X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2F80221Bundle%2FTLVPacket.ct;h=efae0f6a5651f14a6fa497bc706b38fa6aad1271;hb=f2f5d59e83863f3b513950173baee1b6da2aee3c;hp=ea91f809aa569fb033a417f99067c05ef89149a7;hpb=32be66071113df31a085821e31414eeb776022fa;p=senf.git diff --git a/Packets/80221Bundle/TLVPacket.ct b/Packets/80221Bundle/TLVPacket.ct index ea91f80..efae0f6 100644 --- a/Packets/80221Bundle/TLVPacket.ct +++ b/Packets/80221Bundle/TLVPacket.ct @@ -26,49 +26,15 @@ //#include "TLVPacket.ih" // Custom includes -#include "TLVPacket.hh" #define prefix_ ///////////////////////////////ct.p//////////////////////////////////////// -template -prefix_ void senf::TLVPacketType::dump(packet p, std::ostream & os) +template +prefix_ void senf::GenericTLVPacketParser::value(ForwardReadableRange const &range) { - os << "TLVPacket:" - << std::dec - << " type: " << unsigned(p->type()) << "\n" - << " length: " << unsigned(p->length()) << "\n"; -} - -template -prefix_ void senf::TLVPacketType::finalize(packet p) -{ - try { - PacketData::size_type size = p.next().data().size(); - if ( size > LengthParser::max_value ) - throw(UnsuportedTLVPacketException()); - p->length() = size; - } - catch (InvalidPacketChainException & ex) { - ; - } -} - -template -prefix_ senf::PacketParserBase::size_type senf::TLVPacketType::initSize() -{ - return senf::init_bytes::value + senf::init_bytes::value; -} - -template -prefix_ senf::PacketInterpreterBase::optional_range -senf::TLVPacketType::nextPacketRange(packet p) -{ - if (p.data().size() < 5) - return no_range(); - return range( - boost::next(p.data().begin(), 4 + senf::bytes(p->length()) ), - p.data().end() ); + safe_data_iterator si = resizeValue( boost::size(range) ); + std::copy( boost::begin(range), boost::end(range), si); } ///////////////////////////////ct.e////////////////////////////////////////