X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacketType.ct;h=ab693241f0cb5bd04ed9f78480a93547b8684d16;hb=84f14a42f9993e186c7897ce0db021300e0a2d48;hp=caec158fa3db3634b31bf79116ba943b303e43b8;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/PacketType.ct b/senf/Packets/PacketType.ct index caec158..ab69324 100644 --- a/senf/Packets/PacketType.ct +++ b/senf/Packets/PacketType.ct @@ -35,15 +35,15 @@ template prefix_ senf::PacketInterpreterBase::optional_range -senf::PacketTypeMixin::nextPacketRange(Packet const & p) +senf::PacketTypeMixin::nextPacketRange(ConcretePacket const & p) { typename Self::size_type sz (Self::initHeadSize()); ///\idea This if condition could be replaced with a compile time switch by checking, wether /// (the function address) Self::initHeadSize is different from PacketTypeBase::initHeadSize if (sz == PacketTypeBase::size_type(-1)) { - typename Self::size_type headsz (bytes(p.as< ConcretePacket >().parser())); - return p.data().size() < headsz ? - PacketTypeBase::no_range() : + typename Self::size_type headsz (bytes(p.parser())); + return p.data().size() < headsz ? + PacketTypeBase::no_range() : PacketInterpreterBase::optional_range( PacketTypeBase::range(boost::next(p.data().begin(), headsz), p.data().end())); @@ -56,7 +56,7 @@ senf::PacketTypeMixin::nextPacketRange(Packet const & p) // // So, the helper only works with fixed-size parsers if the packet has a trailer. return p.data().size() < Self::initSize() ? - PacketTypeBase::no_range() : + PacketTypeBase::no_range() : PacketInterpreterBase::optional_range( PacketTypeBase::range(boost::next(p.data().begin(),sz), boost::prior(p.data().end(),Self::initSize()-sz)));