X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketImpl.cci;h=40489bf3888b554f49b2706a1dbce4f6945b9f33;hb=914aedddb62c3ca4fcabc881ad12b398a1c120f3;hp=91dfaf6324b3df7934a8f6950ac4f69914c0d978;hpb=6116cb96ea7bdcb42b7d12165a05fcbe0687226d;p=senf.git diff --git a/Packets/PacketImpl.cci b/Packets/PacketImpl.cci index 91dfaf6..40489bf 100644 --- a/Packets/PacketImpl.cci +++ b/Packets/PacketImpl.cci @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -24,13 +24,14 @@ \brief PacketImpl inline non-template implementation */ // Custom includes -#include "PacketInterpreter.hh" +#include "../Utils/senfassert.hh" +// #include "PacketInterpreter.hh" #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// // Memory management: -// +// // * The PacketImpl destructor will *explicitly* clean-up the interpreters_ list by removing // each element from the list and deleting it if it's (intrusive) refcount is 0 // * The PacketInterpreters use safe hooks -> they know wether they are part of a list or not @@ -77,18 +78,6 @@ prefix_ void senf::detail::PacketImpl::add_ref(refcount_t n) refcount_ += n; } -prefix_ void senf::detail::PacketImpl::release(refcount_t n) -{ - BOOST_ASSERT(refcount_ >= n); - // uah ... we need to be extremely careful here. If refcount_ is n, we want to commit suicide, - // however the destructor will remove all PacketInterpreters from the list and will thereby - // decrement refcount -> only decrenebt refcount_ when *not* caling delete - if (refcount_ == n) - delete this; - else - refcount_ -= n; -} - prefix_ senf::detail::PacketImpl::refcount_t senf::detail::PacketImpl::refcount() const { @@ -114,7 +103,7 @@ prefix_ senf::PacketInterpreterBase * senf::detail::PacketImpl::next(PacketInter } prefix_ senf::PacketInterpreterBase * senf::detail::PacketImpl::prev(PacketInterpreterBase * p) -{ +{ interpreter_list::iterator i (interpreter_list::current(*p)); return (i == interpreters_.begin()) ? 0 : &*(--i); }