// $Id$
//
-// Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// 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
///@}
+ ///\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;
This exception signals an invalid operation on the chain like trying to find a non-existent
chain member and other similar error conditions.
*/
- struct InvalidPacketChainException : public std::exception
- { virtual char const * what() const throw() { return "invalid packet chain"; } };
+ struct InvalidPacketChainException : public senf::Exception
+ { InvalidPacketChainException() : senf::Exception("invalid packet chain"){} };
}