// Custom includes
#include <boost/operators.hpp>
-#include "Utils/Exception.hh"
-#include "Utils/SafeBool.hh"
+#include "../Utils/Exception.hh"
+#include "../Utils/safe_bool.hh"
#include "PacketInterpreter.hh"
//#include "Packet.mpp"
\ref packetparser for a specification of the parser interface
*/
class Packet
- : public SafeBool<Packet>,
+ : public safe_bool<Packet>,
public boost::equality_comparable<Packet>
{
public:
Packet next() const;
///< Get next packet in chain
+ /**< \returns in - valid() packet, if no next packet
+ exists */
template <class OtherPacket> OtherPacket next() const;
///< Get next packet of given type in chain
/**< \throws InvalidPacketChainException if no such packet
///< Get next packet of given type in chain
/**< \param[in] nothrow This argument always has the value
\c senf::nothrow
- \returns in-valid() packet, if no such packet is found */
+ \returns in - valid() packet, if no such packet is
+ found */
template <class OtherPacket> OtherPacket findNext() const;
///< Find next packet of given type in chain
/**< findNext() is like next(), it will however return \c
*this if it is of the given type.
\param[in] nothrow This argument always has the value
\c senf::nothrow
- \returns in-valid() packet, if no such packet is found */
+ \returns in - valid() packet, if no such packet is
+ found */
Packet prev() const;
///< Get previous packet in chain
+ /**< \returns in - valid() packet, if no previous packet
+ exists */
template <class OtherPacket> OtherPacket prev() const;
///< Get previous packet of given type in chain
/**< \throws InvalidPacketChainException if no such packet
///< Get previous packet of given type in chain
/**< \param[in] nothrow This argument always has the value
\c senf::nothrow
- \returns in-valid() packet, if no such packet is found */
+ \returns in - valid() packet, if no such packet is
+ found */
template <class OtherPacket> OtherPacket findPrev() const;
///< Find previous packet of given type in chain
/**< findPrev() is like prev(), it will however return \c
*this if it is of the type
\param[in] nothrow This argument always has the value
\c senf::nothrow
- \returns in-valid() packet, if no such packet is found */
+ \returns in - valid() packet, if no such packet is
+ found */
Packet first() const;
///< Return first packet of given type in chain
/**< \param[in] nothrow This argument always has the value
\c senf::nothrow
- \returns in-valid() packet, if no such packet is found */
+ \returns in - valid() packet, if no such packet is
+ found */
Packet last() const;
///< Return last packet in chain
///< Return last packet of given type in chain
/**< \param[in] nothrow This argument always has the value
\c senf::nothrow
- \returns in-valid() packet, if no such packet is found */
+ \returns in - valid() packet, if no such packet is
+ found */
template <class OtherPacket> OtherPacket parseNextAs() const;
bool boolean_test() const; ///< Check, whether the packet is valid()
/**< \see valid() */
bool valid() const; ///< Check, whether the packet is valid()
- /**< An in-valid() packet does not allow any operation
- except checking for validity and assignment. in-valid()
- packets serve the same role as 0-pointers. */
-
+ /**< An in - valid() packet does not allow any operation
+ except checking for validity and assignment. in -
+ valid() packets serve the same role as 0-pointers.
+
+ This is an alias for boolean_test() which is called
+ when using a packet in a boolean context. */
void finalize() const; ///< Update calculated fields
/**< This call will update all calculated fields of the
factory_t factory() const; ///< Return factory instance of \c this packet
/**< The returned factory instance can be used to create new
packets of the given type without knowing the concrete
- type of the packet. The valid may be stored away for
+ type of the packet. The value may be stored away for
later use if needed. */
///@}
template <class PacketType>
friend class ConcretePacket;
+ friend class PacketParserBase;
};
/** \brief Protocol specific packet handle
///////////////////////////////hh.e////////////////////////////////////////
#endif
-#if !defined(SENF_PACKETS_DECL_ONLY) && !defined(HH_Packet_i_)
+#if !defined(HH_Packets__decls_) && !defined(HH_Packet_i_)
#define HH_Packet_i_
#include "Packet.cci"
#include "Packet.ct"
// comment-column: 40
// End:
-// LocalWords: defgroup li html png STL ConcretePacket PacketInterpreterBase
-// LocalWords: PacketInterpreter PacketImpl OtherPacket EthernetPacket param
-// LocalWords: EthernetPacketType PacketData packetparser nothrow senf prev
-// LocalWords: InvalidPacketChainException findNext findPrev parseNextAs tt
-// LocalWords: PacketType SomePacketType createAfter createBefore noinit href
-// LocalWords: PacketTypeBase TruncatedPacketException http www org Institut
-// LocalWords: Fraunhofer fuer offene Kommunikationssysteme FOKUS SatCom Bund
-// LocalWords: Kompetenzzentrum Satelitenkommunikation berlios de hh
-// LocalWords: addtogroup Structors PacketType dil PacketType's