// $Id$
//
-// Copyright (C) 2006
+// Copyright (C) 2006
// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
// Stefan Bund <stefan.bund@fokus.fraunhofer.de>
// Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/** \file
+ \brief PacketProtocol and PacketSocketHandle internal header
+ */
+
#ifndef IH_PacketSocketHandle_
#define IH_PacketSocketHandle_ 1
namespace detail {
+ /** \brief Abstract address copier
+ \internal
+
+ This class provides the abstract interface to copy a
+ link-local address to a destination address.
+ */
struct LLAddressCopier
{
virtual ~LLAddressCopier() {}
virtual unsigned operator()(unsigned char * target) const = 0;
};
+ /** \brief Implementation of LLAddressCopier to copy arbitrary Range
+ \internal
+
+ This implementation of the LLAddressCopier interface will copy
+ an arbitrary range to the target address. This class is used,
+ to convert the compile-time polymorphism of templates
+ (provided by the \c ForwardRange template argument) into
+ runtime polymorphism (provided by the abstract LLAddressCopier
+ interface).
+ */
template <class ForwardRange>
struct Range_LLAddressCopier
: public LLAddressCopier
{
Range_LLAddressCopier(ForwardRange const & range);
-
+
unsigned operator()(unsigned char * target) const;
ForwardRange const & range_;
\f
// Local Variables:
// mode: c++
+// fill-column: 100
// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
// End: