X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacket.cti;h=ecb8baa4bb0f8bafcfb0e17a0ffab67e97e052a2;hb=9bc655e14d2d8c204ed835896cb51e42d49bd68f;hp=afae6069db5e853e17975d293110966a69f754b4;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/Packet.cti b/senf/Packets/Packet.cti index afae606..ecb8baa 100644 --- a/senf/Packets/Packet.cti +++ b/senf/Packets/Packet.cti @@ -26,7 +26,7 @@ //#include "Packet.ih" // Custom includes -#include "../Utils/Exception.hh" +#include #define prefix_ inline ///////////////////////////////cti.p/////////////////////////////////////// @@ -37,7 +37,7 @@ // conversion constructors template -prefix_ senf::Packet::Packet(ConcretePacket packet) +prefix_ senf::Packet::Packet(ConcretePacket const & packet) : packet_(packet.ptr()) {} @@ -54,7 +54,7 @@ template prefix_ bool senf::Packet::is() const { - return ptr()->is(); + return valid() && ptr()->is(); } template @@ -232,7 +232,7 @@ senf::ConcretePacket::createAfter(Packet const & packet, size_type s template prefix_ senf::ConcretePacket -senf::ConcretePacket::createAfter(Packet const & packet, size_type size, +senf::ConcretePacket::createAfter(Packet const & packet, size_type size, senf::NoInit_t) { return ConcretePacket(interpreter::createAfter(packet.ptr(), size, senf::noinit)); @@ -267,6 +267,20 @@ senf::ConcretePacket::createBefore(Packet const & packet, senf::NoIn return ConcretePacket(interpreter::createBefore(packet.ptr(), senf::noinit)); } +template +prefix_ senf::ConcretePacket +senf::ConcretePacket::createInsertBefore(Packet const & packet) +{ + return ConcretePacket(interpreter::createInsertBefore(packet.ptr())); +} + +template +prefix_ senf::ConcretePacket +senf::ConcretePacket::createInsertBefore(Packet const & packet, senf::NoInit_t) +{ + return ConcretePacket(interpreter::createInsertBefore(packet.ptr(), senf::noinit)); +} + // Create a clone of the current packet template @@ -298,7 +312,7 @@ senf::ConcretePacket::operator->() // private members template -prefix_ senf::ConcretePacket::ConcretePacket(typename interpreter::ptr packet_) +prefix_ senf::ConcretePacket::ConcretePacket(typename interpreter::ptr const & packet_) : Packet(packet_) {}