X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacket.hh;h=cc9c9f29b81fbfc47d5144ba6ac76dffcc0dfb9e;hb=8db732cfb7203fbad3ffc6bddc43346af7411b46;hp=090cd661e3b2cba735eb90f2ecfa2c24a5890066;hpb=14f43d9587103f6a78e51628785f93f1c14f99a0;p=senf.git diff --git a/senf/Packets/Packet.hh b/senf/Packets/Packet.hh index 090cd66..cc9c9f2 100644 --- a/senf/Packets/Packet.hh +++ b/senf/Packets/Packet.hh @@ -309,6 +309,10 @@ namespace senf { after \c this in the packet/header/interpreter chain. */ + void reparse() const; ///< Reparse the payload the packet + /**< This member will throw away the packet chain after the + current packet. The payload will be reparsed + automatically when calling next() */ ///@} ///\name Data access @@ -319,7 +323,6 @@ namespace senf { /**< This size does \e not include the size of any preceding headers/packets/interpreters. It does however include \c this packets payload. */ - ///@} ///\name Annotations @@ -382,12 +385,17 @@ namespace senf { considering that the packetimpl itself uses a pool. */ - ///@} - template Annotation const & annotation() const; ///< Get packet annotation /**< \see annotation() */ + void clearAnnotations(); ///< Clear all packet annotations + /**< All packet annotations will be cleared. Afterwards + the annotations equates to a new created %packet. + \warning all references to existing complex + annotations become invalid. */ + ///@} + ///\name Other methods ///@{ @@ -492,7 +500,11 @@ namespace senf { unsigned long id() const; ///< Unique packet id /**< Get a unique packet id. If two packets have the same - id, they share the internal data representation.. */ + id, they share the internal data representation. */ + + bool is_shared() const; ///< check if this packet shares data with any another packet handle. + /**< This method returns true if there is any other packet + handle pointing to any header in the packet chain. */ ///@} @@ -746,14 +758,14 @@ namespace senf { access. The parser class may have any member which is needed for full packet access (e.g. checksum validation / recreation ...) - \see \ref packetparser for the parser interface. */ + \see \ref packetparser for the %parser interface. */ Parser parser() const; ///< Access packet field parser directly /**< Access the parser of the packet. This is the same object returned by the operator->() operator. The operator however does not allow to access this object itself, only it's members. - \see \ref packetparser for the parser interface */ + \see \ref packetparser for the %parser interface */ protected: