X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacket.cti;h=ecb8baa4bb0f8bafcfb0e17a0ffab67e97e052a2;hb=9bc655e14d2d8c204ed835896cb51e42d49bd68f;hp=8e56512640b03274aa5eee3ce0f435f5e828d594;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Packets/Packet.cti b/senf/Packets/Packet.cti index 8e56512..ecb8baa 100644 --- a/senf/Packets/Packet.cti +++ b/senf/Packets/Packet.cti @@ -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_) {}