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();
void eraseInterpreters(interpreter_list::iterator b, interpreter_list::iterator e);
void updateIterators(PacketData * self, iterator pos, difference_type n);
-
};
}}
///////////////////////////////hh.e////////////////////////////////////////
+#endif
+#if !defined(SENF_PACKETS_DECL_ONLY) && !defined(HH_PacketImpl_i_)
+#define HH_PacketImpl_i_
#include "PacketImpl.cci"
//#include "PacketImpl.ct"
#include "PacketImpl.cti"
// compile-command: "scons -u test"
// comment-column: 40
// End:
+