X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacket.hh;h=d1485984cffe316497da488b3dea81abdb6ff00c;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=4a25789f1ab03e5af69997261e913e8dbf4fc433;hpb=7e35699acd77562184ae1b769bf967ffe0109500;p=senf.git diff --git a/Packets/Packet.hh b/Packets/Packet.hh index 4a25789..d148598 100644 --- a/Packets/Packet.hh +++ b/Packets/Packet.hh @@ -269,7 +269,10 @@ namespace senf { OtherPacket. The new packet is added to the chain after \c this. \returns new packet instance sharing the same data and - placed after \c this packet in the chain. */ + placed after \c this packet in the chain. + \throws InvalidPacketChainException if no next + packet header is allowed (viz. nextPacketRange() of the the current + PacketType returns no_range() ) */ Packet parseNextAs(factory_t factory) const; ///< Interpret payload of \c this as \a factory type packet /**< parseNextAs() will throw away the packet chain after @@ -278,7 +281,10 @@ namespace senf { factory. The new packet is added to the chain after \c this. \returns new packet instance sharing the same data and - placed after \c this packet in the chain. */ + placed after \c this packet in the chain. + \throws InvalidPacketChainException if no next + packet header is allowed (viz. nextPacketRange() of the the current + PacketType returns no_range() ) */ template bool is() const; ///< Check, whether \c this packet is of the given type @@ -732,6 +738,15 @@ namespace senf { friend class PacketInterpreter; }; + /** \brief Generic parser copying + + This operator allows to copy the value of identical parsers. This operation does \e not + depend on the parsers detailed implementation, it will just replace the data bytes of the + target parser with those from the source packet. + */ + template + Parser operator<<(Parser target, ConcretePacket const & packet); + ///@} }