X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacket.cti;h=cfd891930d42fed26f51a2bd715e62103e499965;hb=2da517bbcdb2af10d2322fc762ca27774b53b435;hp=b58b78374d8a3c254c8d5f6d20198836779e83c0;hpb=784b5901486e0bcb0eb5dadd3a2f4fc31810bd66;p=senf.git diff --git a/Packets/Packet.cti b/Packets/Packet.cti index b58b783..cfd8919 100644 --- a/Packets/Packet.cti +++ b/Packets/Packet.cti @@ -26,6 +26,7 @@ //#include "Packet.ih" // Custom includes +#include "../Utils/Exception.hh" #define prefix_ inline ///////////////////////////////cti.p/////////////////////////////////////// @@ -61,7 +62,7 @@ prefix_ OtherPacket senf::Packet::as() const { if (!is()) - throw std::bad_cast(); + throw WrapException(std::bad_cast()); return OtherPacket(ptr()->as()); } @@ -127,6 +128,19 @@ prefix_ OtherPacket senf::Packet::first() return first().as(); } +template +prefix_ void senf::Packet::finalizeTo() +{ + Packet p (find(nothrow)); + ptr()->finalizeTo(p ? p.ptr() : last().ptr()); +} + +template +prefix_ Annotation & senf::Packet::annotation() +{ + return ptr()->annotation(); +} + /////////////////////////////////////////////////////////////////////////// // senf::ConcretePacket @@ -173,6 +187,8 @@ senf::ConcretePacket::create(size_type size, senf::NoInit_t) return ConcretePacket(interpreter::create(size,senf::noinit)); } +#ifndef DOXYGEN + template template prefix_ senf::ConcretePacket senf::ConcretePacket:: @@ -182,6 +198,8 @@ create(ForwardReadableRange const & range, return ConcretePacket(interpreter::create(range)); } +#endif + // Create packet as new packet after a given packet template @@ -212,6 +230,8 @@ senf::ConcretePacket::createAfter(Packet packet, size_type size, sen return ConcretePacket(interpreter::createAfter(packet.ptr(), size, senf::noinit)); } +#ifndef DOXYGEN + template template prefix_ senf::ConcretePacket senf::ConcretePacket:: @@ -221,6 +241,8 @@ createAfter(Packet packet, ForwardReadableRange const & range, return ConcretePacket(interpreter::createAfter(packet.ptr(), range)); } +#endif + // Create packet as new packet (header) before a given packet template