X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketImpl.hh;h=0ad1e77f847caa6ddc5c7d8585c565af6afaa311;hb=eaed692cb174e093f25f4978318e555566b3a50c;hp=32ae5a17a0b79eda12fde332d4fe72c231f22bed;hpb=421d4e922c9856a80ed61c69db27504816180d99;p=senf.git diff --git a/Packets/PacketImpl.hh b/Packets/PacketImpl.hh index 32ae5a1..0ad1e77 100644 --- a/Packets/PacketImpl.hh +++ b/Packets/PacketImpl.hh @@ -82,8 +82,13 @@ namespace detail { struct AnnotationIndexerBase { + virtual ~AnnotationIndexerBase(); + virtual void v_dump(PacketImpl * p, std::ostream & os) = 0; + static unsigned maxAnnotations; static std::vector & small(); + static std::vector & registry(); + static void dump(PacketImpl * p, std::ostream & os); }; template @@ -92,6 +97,7 @@ namespace detail { public AnnotationIndexerBase { AnnotationIndexer(); + virtual void v_dump(PacketImpl * p, std::ostream & os); unsigned index_; static unsigned index(); static bool const Complex = boost::is_base_of::value; @@ -112,12 +118,14 @@ namespace detail { struct GetAnnotation { static Annotation & get(AnnotationEntry & e); + static void dump(AnnotationEntry & e, std::ostream & os); }; template struct GetAnnotation { static Annotation & get(AnnotationEntry & e); + static void dump(AnnotationEntry & e, std::ostream & os); }; /** \brief Internal: Packet data storage @@ -191,6 +199,9 @@ namespace detail { // Annotations template Annotation & annotation(); + void dumpAnnotations(std::ostream & os); + template + void dumpAnnotation(std::ostream & os); /** \brief Internal: Keep PacketImpl instance alive