-// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// $Id$
+//
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
// Custom includes
#include <memory>
#include <boost/utility.hpp>
-#include "Utils/pool_alloc_mixin.hh"
+#include "../Utils/pool_alloc_mixin.hh"
#include "PacketTypes.hh"
//#include "PacketImpl.mpp"
namespace senf {
namespace detail {
-
- class PacketImpl
+
+ /** \brief Internal: Packet data storage
+
+ \internal
+
+ This is the class holding the packet data and the interpreter chain. All manipulations of
+ the packet data are performed via the interface exported here. This is very important, since
+ PacketImpl will update the interpreters (that is the vector indices stored therein) whenever
+ the data is changed.
+ */
+ class PacketImpl
: boost::noncopyable,
public pool_alloc_mixin<PacketImpl>
{
~PacketImpl();
// rerference/memory management
-
+
void add_ref(refcount_t n=1);
void release(refcount_t n=1);
refcount_t refcount() const;
void erase(PacketData * self, iterator first, iterator last);
void clear(PacketData * self);
- // The Guard will keep the PacketImpl instance alive during a members execution time
- // It the refcount should drop to 0, PacketImpl will be deleted after the member
- // has completed executing.
+ /** \brief Internal: Keep PacketImpl instance alive
+
+ \internal
+
+ The Guard will keep the PacketImpl instance alive during a members execution time
+ It the refcount should drop to 0, PacketImpl will be deleted after the member
+ has completed executing.
+ */
struct Guard {
Guard(PacketImpl * impl);
~Guard();
interpreter_list interpreters_;
void eraseInterpreters(interpreter_list::iterator b, interpreter_list::iterator e);
- void updateIterators(PacketData * self, iterator pos, difference_type n);
-
+ void updateIterators(PacketData * self, difference_type pos, difference_type n);
};
}}
///////////////////////////////hh.e////////////////////////////////////////
#endif
-#if !defined(SENF_PACKETS_DECL_ONLY) && !defined(HH_PacketImpl_i_)
+#if !defined(HH_Packets__decls_) && !defined(HH_PacketImpl_i_)
#define HH_PacketImpl_i_
#include "PacketImpl.cci"
//#include "PacketImpl.ct"
// compile-command: "scons -u test"
// comment-column: 40
// End:
+