Documentation updates
[senf.git] / Packets / Packet.cti
index 18443fa..5f67ccb 100644 (file)
@@ -73,6 +73,23 @@ prefix_ OtherPacket senf::Packet::next()
 }
 
 template <class OtherPacket>
+prefix_ OtherPacket senf::Packet::next(NoThrow_t)
+    const
+{
+    Packet p (next(nothrow));
+    return p && p.is<OtherPacket>() ? p.as<OtherPacket>() : OtherPacket();
+}
+
+template <class OtherPacket>
+prefix_ OtherPacket senf::Packet::find()
+    const
+{
+    OtherPacket p (find<OtherPacket>(nothrow));
+    if (!p) throw InvalidPacketChainException();
+    return p;
+}
+
+template <class OtherPacket>
 prefix_ OtherPacket senf::Packet::prev()
     const
 {
@@ -80,6 +97,23 @@ prefix_ OtherPacket senf::Packet::prev()
 }
 
 template <class OtherPacket>
+prefix_ OtherPacket senf::Packet::prev(NoThrow_t)
+    const
+{
+    Packet p (prev(nothrow));
+    return p && p.is<OtherPacket>() ? p.as<OtherPacket>() : OtherPacket();
+}
+
+template <class OtherPacket>
+prefix_ OtherPacket senf::Packet::rfind()
+    const
+{
+    OtherPacket p (rfind<OtherPacket>(nothrow));
+    if (!p) throw InvalidPacketChainException();
+    return p;
+}
+
+template <class OtherPacket>
 prefix_ OtherPacket senf::Packet::last()
     const
 {