X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacket.cci;h=001f69c4db60bb67c5765f85323ffb44e657588d;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=f02dabd3c3e63d3c9dbce05b5d0fd4d9552ea4fe;hpb=10985d71f77b627bc4da543d7114feb7c4529329;p=senf.git diff --git a/Packets/Packet.cci b/Packets/Packet.cci index f02dabd..001f69c 100644 --- a/Packets/Packet.cci +++ b/Packets/Packet.cci @@ -108,7 +108,7 @@ prefix_ senf::Packet senf::Packet::parseNextAs(factory_t factory) return Packet(ptr()->parseNextAs(factory)); } -prefix_ senf::Packet senf::Packet::append(Packet packet) +prefix_ senf::Packet senf::Packet::append(Packet const & packet) const { return Packet(ptr()->append(packet.ptr())); @@ -131,17 +131,25 @@ prefix_ senf::Packet::size_type senf::Packet::size() // Other methods -prefix_ bool senf::Packet::operator==(Packet other) +prefix_ bool senf::Packet::operator==(Packet const & other) const { return ptr() == other.ptr(); } -prefix_ void senf::Packet::finalize() - const +prefix_ void senf::Packet::finalizeThis() { - last(); // Make sure the packet is complete - ptr()->finalize(); + ptr()->finalizeThis(); +} + +prefix_ void senf::Packet::finalizeTo(Packet const & other) +{ + ptr()->finalizeTo(other.ptr()); +} + +prefix_ void senf::Packet::finalizeAll() +{ + ptr()->finalizeTo(last().ptr()); } prefix_ void senf::Packet::dump(std::ostream & os) @@ -169,6 +177,19 @@ prefix_ bool senf::Packet::boolean_test() return packet_ && packet_->valid(); } +prefix_ bool senf::Packet::valid() + const +{ + return *this; +} + +template +prefix_ Parser senf::operator<<(Parser target, ConcretePacket const & packet) +{ + target << packet.parser(); + return target; +} + ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_