Packets: optimized intrusive_ptr access; optimized PacketTypeMixin member parameters
[senf.git] / senf / Packets / PacketImpl.cc
index 5b0ad43..4639a05 100644 (file)
@@ -40,7 +40,7 @@ unsigned senf::detail::AnnotationIndexerBase::maxAnnotations (0);
 
 prefix_ void senf::detail::AnnotationIndexerBase::dump(PacketImpl * p, std::ostream & os)
 {
-    for(std::vector<AnnotationIndexerBase*>::const_iterator 
+    for(std::vector<AnnotationIndexerBase*>::const_iterator
             i (registry().begin()), i_end (registry().end());
         i != i_end; ++i)
         (*i)->v_dump(p,os);
@@ -76,6 +76,14 @@ prefix_ void senf::detail::PacketImpl::prependInterpreter(PacketInterpreterBase
     p->assignImpl(this);
 }
 
+prefix_ void senf::detail::PacketImpl::prependInterpreter(PacketInterpreterBase * p,
+                                                          PacketInterpreterBase * before)
+{
+    interpreter_list::iterator i (interpreter_list::current(*before));
+    interpreters_.insert(i, *p);
+    p->assignImpl(this);
+}
+
 // Data container
 
 prefix_ void senf::detail::PacketImpl::clear(PacketData * self)