/** \file
\brief PacketInterpreter public header */
-#ifndef HH_PacketInterpreter_
-#define HH_PacketInterpreter_ 1
+#ifndef HH_SENF_Packets_PacketInterpreter_
+#define HH_SENF_Packets_PacketInterpreter_ 1
// Custom includes
#include "../boost/intrusive/ilist.hpp"
#include <boost/optional.hpp>
#include <boost/range.hpp>
-#include <boost/type_traits/aligned_storage.hpp>
-#include <boost/type_traits/alignment_of.hpp>
#include "../Utils/intrusive_refcount.hh"
#include "../Utils/pool_alloc_mixin.hh"
#include "../Utils/Tags.hh"
///@}
+ ///\name Annotations
+ ///@{
+
+ template <class Annotation>
+ Annotation & annotation();
+
+ ///@}
+
///\name Access to the abstract interface
///@{
optional_range nextPacketRange();
- void finalize();
+ void finalizeThis();
+ void finalizeTo(ptr other);
void dump(std::ostream & os);
TypeIdValue typeId();
factory_t factory();
void releaseImpl();
friend class detail::PacketImpl;
- friend class intrusive_refcount_t<PacketInterpreterBase>;
+ friend class intrusive_refcount_base;
template <class PacketType> friend class PacketInterpreter;
friend class detail::packet::test::TestDriver;
friend class PacketParserBase;
// no copy
// no conversion constructors
- ~PacketInterpreter();
-
static factory_t factory();
// Create completely new packet
// Packet field access
parser fields();
- parser * fields_p();
// PacketType access
static const FactoryImpl factory_;
- parser * parser_p();
-
- boost::aligned_storage< sizeof(parser),
- boost::alignment_of<parser>::value > parserStorage_;
-
friend class detail::packet::test::TestDriver;
friend class PacketInterpreterBase;
friend class FactoryImpl;
///////////////////////////////hh.e////////////////////////////////////////
#endif
-#if !defined(HH_Packets__decls_) && !defined(HH_PacketInterpreter_i_)
-#define HH_PacketInterpreter_i_
+#if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_PacketInterpreter_i_)
+#define HH_SENF_Packets_PacketInterpreter_i_
#include "PacketInterpreter.cci"
#include "PacketInterpreter.ct"
#include "PacketInterpreter.cti"