// $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
//#include "Packet.ih"
// Custom includes
+#include "../Utils/Exception.hh"
#define prefix_ inline
///////////////////////////////cti.p///////////////////////////////////////
const
{
if (!is<OtherPacket>())
- throw std::bad_cast();
+ throw WrapException<std::bad_cast>(std::bad_cast());
return OtherPacket(ptr()->as<typename OtherPacket::type>());
}
return ConcretePacket(interpreter::create(size,senf::noinit));
}
+#ifndef DOXYGEN
+
template <class PacketType>
template <class ForwardReadableRange>
-prefix_ senf::ConcretePacket<PacketType>
-senf::ConcretePacket<PacketType>::create(ForwardReadableRange const & range)
+prefix_ senf::ConcretePacket<PacketType> senf::ConcretePacket<PacketType>::
+create(ForwardReadableRange const & range,
+ typename boost::disable_if< boost::is_integral<ForwardReadableRange> >::type *)
{
return ConcretePacket(interpreter::create(range));
}
+#endif
+
// Create packet as new packet after a given packet
template <class PacketType>
return ConcretePacket(interpreter::createAfter(packet.ptr(), size, senf::noinit));
}
+#ifndef DOXYGEN
+
template <class PacketType>
template <class ForwardReadableRange>
-prefix_ senf::ConcretePacket<PacketType>
-senf::ConcretePacket<PacketType>::createAfter(Packet packet, ForwardReadableRange const & range)
+prefix_ senf::ConcretePacket<PacketType> senf::ConcretePacket<PacketType>::
+createAfter(Packet packet, ForwardReadableRange const & range,
+ typename boost::disable_if< boost::is_integral<ForwardReadableRange> >::type *)
{
return ConcretePacket(interpreter::createAfter(packet.ptr(), range));
}
+#endif
+
// Create packet as new packet (header) before a given packet
template <class PacketType>