Packets: optimized intrusive_ptr access; optimized PacketTypeMixin member parameters
[senf.git] / senf / Packets / PacketType.cti
index fe4bdce..4caed76 100644 (file)
@@ -46,7 +46,7 @@ prefix_ senf::PacketTypeBase::factory_t senf::PacketTypeBase::factory()
 
 template <class Self, class Registry>
 prefix_ senf::PacketInterpreterBase::optional_range
-senf::PacketTypeMixin<Self,Registry>::nextPacketRange(Packet const & p)
+senf::PacketTypeMixin<Self,Registry>::nextPacketRange(ConcretePacket<Self> const & p)
 {
     // Call the member defined in the specialization below
     return PacketTypeMixin<Self>::nextPacketRange(p);
@@ -54,11 +54,11 @@ senf::PacketTypeMixin<Self,Registry>::nextPacketRange(Packet const & p)
 
 template <class Self, class Registry>
 prefix_ senf::PacketInterpreterBase::factory_t
-senf::PacketTypeMixin<Self,Registry>::nextPacketType(Packet const & p)
+senf::PacketTypeMixin<Self,Registry>::nextPacketType(ConcretePacket<Self> const & p)
 {
     if (p.data().size() < Self::initSize())
         return Self::no_factory();
-    return lookup( Self::nextPacketKey(p.as< ConcretePacket<Self> >()) );
+    return lookup( Self::nextPacketKey(p) );
 }
 
 template <class Self, class Registry>
@@ -68,9 +68,9 @@ prefix_ senf::PacketInterpreterBase::size_type senf::PacketTypeMixin<Self,Regist
 }
 
 template <class Self, class Registry>
-prefix_ void senf::PacketTypeMixin<Self,Registry>::init(Packet const & p)
+prefix_ void senf::PacketTypeMixin<Self,Registry>::init(ConcretePacket<Self> const & p)
 {
-    p.as< ConcretePacket<Self> >()->init();
+    p->init();
 }
 
 template <class Self, class Registry>
@@ -98,9 +98,9 @@ prefix_ senf::PacketInterpreterBase::size_type senf::PacketTypeMixin<Self,void>:
 }
 
 template <class Self>
-prefix_ void senf::PacketTypeMixin<Self,void>::init(Packet const & p)
+prefix_ void senf::PacketTypeMixin<Self,void>::init(ConcretePacket<Self> const & p)
 {
-    p.as< ConcretePacket<Self> >()->init();
+    p->init();
 }
 
 ///////////////////////////////cti.e///////////////////////////////////////