-// 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
#define HH_PacketInterpreter_ 1
// Custom includes
-#include <boost/intrusive/ilist.hpp>
+#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/intrusive_refcount.hh"
+#include "../Utils/pool_alloc_mixin.hh"
+#include "../Utils/Tags.hh"
#include "PacketData.hh"
-#include "Utils/TypeIdValue.hh"
+#include "../Utils/TypeIdValue.hh"
//#include "PacketInterpreter.mpp"
///////////////////////////////hh.p////////////////////////////////////////
enum Append_t { Append };
enum Prepend_t { Prepend };
- enum NoInit_t { noinit };
/** \brief Internal: Abstract packet factory
// Create completely new packet
virtual ptr create() const = 0;
- virtual ptr create(NoInit_t) const = 0;
+ virtual ptr create(senf::NoInit_t) const = 0;
virtual ptr create(size_type size) const = 0;
- virtual ptr create(size_type size, NoInit_t) const = 0;
+ virtual ptr create(size_type size, senf::NoInit_t) const = 0;
template <class ForwardReadableRange>
ptr create(ForwardReadableRange const & range) const;
// Create packet as new packet after a given packet
virtual ptr createAfter(PacketInterpreterBase::ptr packet) const = 0;
- virtual ptr createAfter(PacketInterpreterBase::ptr packet, NoInit_t) const = 0;
+ virtual ptr createAfter(PacketInterpreterBase::ptr packet, senf::NoInit_t) const = 0;
virtual ptr createAfter(PacketInterpreterBase::ptr packet, size_type size) const = 0;
virtual ptr createAfter(PacketInterpreterBase::ptr packet, size_type size,
- NoInit_t) const = 0;
+ senf::NoInit_t) const = 0;
template <class ForwardReadableRange>
ptr createAfter(PacketInterpreterBase::ptr packet,
ForwardReadableRange const & range) const;
// Create packet as new packet (header) const before a given packet
virtual ptr createBefore(PacketInterpreterBase::ptr packet) const = 0;
- virtual ptr createBefore(PacketInterpreterBase::ptr packet, NoInit_t) const = 0;
+ virtual ptr createBefore(PacketInterpreterBase::ptr packet, senf::NoInit_t) const = 0;
// Parse next packet in chain
friend class intrusive_refcount_t<PacketInterpreterBase>;
template <class PacketType> friend class PacketInterpreter;
friend class detail::packet::test::TestDriver;
+ friend class PacketParserBase;
};
/** \brief Internal: Concrete packet interpreter
// Create completely new packet
static ptr create();
- static ptr create(NoInit_t);
+ static ptr create(senf::NoInit_t);
static ptr create(size_type size);
- static ptr create(size_type size, NoInit_t);
+ static ptr create(size_type size, senf::NoInit_t);
template <class ForwardReadableRange>
static ptr create(ForwardReadableRange const & range);
// Create packet as new packet after a given packet
static ptr createAfter(PacketInterpreterBase::ptr packet);
- static ptr createAfter(PacketInterpreterBase::ptr packet, NoInit_t);
+ static ptr createAfter(PacketInterpreterBase::ptr packet, senf::NoInit_t);
static ptr createAfter(PacketInterpreterBase::ptr packet, size_type size);
- static ptr createAfter(PacketInterpreterBase::ptr packet, size_type size, NoInit_t);
+ static ptr createAfter(PacketInterpreterBase::ptr packet, size_type size, senf::NoInit_t);
template <class ForwardReadableRange>
static ptr createAfter(PacketInterpreterBase::ptr packet,
ForwardReadableRange const & range);
// Create packet as new packet (header) before a given packet
static ptr createBefore(PacketInterpreterBase::ptr packet);
- static ptr createBefore(PacketInterpreterBase::ptr packet, NoInit_t);
+ static ptr createBefore(PacketInterpreterBase::ptr packet, senf::NoInit_t);
// Create a clone of the current packet
// Create completely new packet
virtual PacketInterpreterBase::ptr create() const;
- virtual PacketInterpreterBase::ptr create(NoInit_t) const;
+ virtual PacketInterpreterBase::ptr create(senf::NoInit_t) const;
virtual PacketInterpreterBase::ptr create(size_type size) const;
- virtual PacketInterpreterBase::ptr create(size_type size,NoInit_t) const;
+ virtual PacketInterpreterBase::ptr create(size_type size,senf::NoInit_t) const;
// Create packet as new packet after a given packet
virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet)
const;
virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet,
- NoInit_t) const;
+ senf::NoInit_t) const;
virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet,
size_type size) const;
virtual PacketInterpreterBase::ptr createAfter(PacketInterpreterBase::ptr packet,
- size_type size, NoInit_t) const;
+ size_type size, senf::NoInit_t) const;
// Create packet as new packet (header) before a given packet
virtual PacketInterpreterBase::ptr createBefore(PacketInterpreterBase::ptr packet)
const;
virtual PacketInterpreterBase::ptr createBefore(PacketInterpreterBase::ptr packet,
- NoInit_t)
+ senf::NoInit_t)
const;
// Parse next packet in chain
///////////////////////////////hh.e////////////////////////////////////////
#endif
-#if !defined(SENF_PACKETS_DECL_ONLY) && !defined(HH_PacketInterpreter_i_)
+#if !defined(HH_Packets__decls_) && !defined(HH_PacketInterpreter_i_)
#define HH_PacketInterpreter_i_
#include "PacketInterpreter.cci"
#include "PacketInterpreter.ct"