// 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 {
+ /** \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>
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(HH_Packets__decls_) && !defined(HH_PacketImpl_i_)
+#define HH_PacketImpl_i_
#include "PacketImpl.cci"
//#include "PacketImpl.ct"
#include "PacketImpl.cti"
// c-file-style: "senf"
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
// End:
+