X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacketInterpreter.hh;h=5696bd2e212f64c276ea0fa261f62abbaf21d109;hb=16c01d1d27fd418ed90da642c69391199f6e5dc7;hp=deae9d32c7524cc89dccb4072d52ed4812e6e61d;hpb=f08685d9795a3be20ce5c7a337087358ccd77eb5;p=senf.git diff --git a/senf/Packets/PacketInterpreter.hh b/senf/Packets/PacketInterpreter.hh index deae9d3..5696bd2 100644 --- a/senf/Packets/PacketInterpreter.hh +++ b/senf/Packets/PacketInterpreter.hh @@ -74,7 +74,7 @@ namespace senf { typedef senf::detail::packet::byte byte; typedef boost::iterator_range range; - typedef boost::optional< boost::iterator_range > optional_range; + typedef boost::optional optional_range; typedef optional_range no_range; enum Append_t { Append }; @@ -102,26 +102,26 @@ namespace senf { // Create packet as new packet after a given packet - virtual ptr createAfter(PacketInterpreterBase::ptr packet) const = 0; - virtual ptr createAfter(PacketInterpreterBase::ptr packet, senf::NoInit_t) const = 0; - virtual ptr createAfter(PacketInterpreterBase::ptr packet, size_type size) const = 0; - virtual ptr createAfter(PacketInterpreterBase::ptr packet, size_type size, + virtual ptr createAfter(PacketInterpreterBase::ptr const & packet) const = 0; + virtual ptr createAfter(PacketInterpreterBase::ptr const & packet, senf::NoInit_t) const = 0; + virtual ptr createAfter(PacketInterpreterBase::ptr const & packet, size_type size) const = 0; + virtual ptr createAfter(PacketInterpreterBase::ptr const & packet, size_type size, senf::NoInit_t) const = 0; template - ptr createAfter(PacketInterpreterBase::ptr packet, + ptr createAfter(PacketInterpreterBase::ptr const & packet, ForwardReadableRange const & range) const; // Create packet as new packet (header) const before a given packet - virtual ptr createBefore(PacketInterpreterBase::ptr packet) const = 0; - virtual ptr createBefore(PacketInterpreterBase::ptr packet, senf::NoInit_t) const = 0; + virtual ptr createBefore(PacketInterpreterBase::ptr const & packet) const = 0; + virtual ptr createBefore(PacketInterpreterBase::ptr const & packet, senf::NoInit_t) const = 0; - virtual ptr createInsertBefore(PacketInterpreterBase::ptr packet) const = 0; - virtual ptr createInsertBefore(PacketInterpreterBase::ptr packet, senf::NoInit_t) const = 0; + virtual ptr createInsertBefore(PacketInterpreterBase::ptr const & packet) const = 0; + virtual ptr createInsertBefore(PacketInterpreterBase::ptr const & packet, senf::NoInit_t) const = 0; // Parse next packet in chain - virtual ptr parseNext(ptr packet) const = 0; + virtual ptr parseNext(ptr const & packet, PacketInterpreterBase::optional_range const & range) const = 0; }; typedef Factory const * factory_t; @@ -136,7 +136,7 @@ namespace senf { virtual ~PacketInterpreterBase(); - static factory_t no_factory(); + static factory_t no_factory(); ptr clone(); @@ -152,8 +152,7 @@ namespace senf { ptr last(); template typename PacketInterpreter::ptr parseNextAs(); - ptr parseNextAs(factory_t factory); - template bool is(); + ptr parseNextAs(factory_t factory, PacketInterpreterBase::optional_range const & range); template typename PacketInterpreter::ptr as(); ptr append(ptr packet); @@ -288,21 +287,21 @@ namespace senf { // Create packet as new packet after a given packet - static ptr createAfter(PacketInterpreterBase::ptr packet); - static ptr createAfter(PacketInterpreterBase::ptr packet, senf::NoInit_t); - static ptr createAfter(PacketInterpreterBase::ptr packet, size_type size); - static ptr createAfter(PacketInterpreterBase::ptr packet, size_type size, senf::NoInit_t); + static ptr createAfter(PacketInterpreterBase::ptr const & packet); + static ptr createAfter(PacketInterpreterBase::ptr const & packet, senf::NoInit_t); + static ptr createAfter(PacketInterpreterBase::ptr const & packet, size_type size); + static ptr createAfter(PacketInterpreterBase::ptr const & packet, size_type size, senf::NoInit_t); template - static ptr createAfter(PacketInterpreterBase::ptr packet, + static ptr createAfter(PacketInterpreterBase::ptr const & packet, ForwardReadableRange const & range); // Create packet as new packet (header) before a given packet - static ptr createBefore(PacketInterpreterBase::ptr packet); - static ptr createBefore(PacketInterpreterBase::ptr packet, senf::NoInit_t); + static ptr createBefore(PacketInterpreterBase::ptr const & spacket); + static ptr createBefore(PacketInterpreterBase::ptr const & packet, senf::NoInit_t); - static ptr createInsertBefore(PacketInterpreterBase::ptr packet); - static ptr createInsertBefore(PacketInterpreterBase::ptr packet, senf::NoInit_t); + static ptr createInsertBefore(PacketInterpreterBase::ptr const & packet); + static ptr createInsertBefore(PacketInterpreterBase::ptr const & packet, senf::NoInit_t); // Create a clone of the current packet @@ -328,12 +327,12 @@ namespace senf { PacketInterpreter(detail::PacketImpl * impl, iterator b, iterator e, Append_t); PacketInterpreter(detail::PacketImpl * impl, iterator b, iterator e, Prepend_t); PacketInterpreter(detail::PacketImpl * impl, iterator b, iterator e, - PacketInterpreterBase::ptr before); + PacketInterpreterBase::ptr const & before); static ptr create(detail::PacketImpl * impl, iterator b, iterator e, Append_t); static ptr create(detail::PacketImpl * impl, iterator b, iterator e, Prepend_t); static ptr create(detail::PacketImpl * impl, iterator b, iterator e, - PacketInterpreterBase::ptr before); + PacketInterpreterBase::ptr const & before); // PacketType access @@ -371,32 +370,32 @@ namespace senf { // Create packet as new packet after a given packet - virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet) + virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr const & packet) const; - virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet, + virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr const & packet, senf::NoInit_t) const; - virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet, + virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr const & packet, size_type size) const; - virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet, + virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr const & packet, size_type size, senf::NoInit_t) const; // Create packet as new packet (header) before a given packet - virtual PacketInterpreterBase::ptr createBefore(PacketInterpreterBase::ptr packet) + virtual PacketInterpreterBase::ptr createBefore(PacketInterpreterBase::ptr const & packet) const; - virtual PacketInterpreterBase::ptr createBefore(PacketInterpreterBase::ptr packet, + virtual PacketInterpreterBase::ptr createBefore(PacketInterpreterBase::ptr const & packet, senf::NoInit_t) const; - virtual PacketInterpreterBase::ptr createInsertBefore(PacketInterpreterBase::ptr packet) + virtual PacketInterpreterBase::ptr createInsertBefore(PacketInterpreterBase::ptr const & packet) const; - virtual PacketInterpreterBase::ptr createInsertBefore(PacketInterpreterBase::ptr packet, + virtual PacketInterpreterBase::ptr createInsertBefore(PacketInterpreterBase::ptr const & packet, senf::NoInit_t) const; // Parse next packet in chain - virtual PacketInterpreterBase::ptr parseNext(PacketInterpreterBase::ptr packet) + virtual PacketInterpreterBase::ptr parseNext(PacketInterpreterBase::ptr const & packet, PacketInterpreterBase::optional_range const & range) const; };