X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FClientSocketHandle.ih;h=f752e7b9fa518593ac83ddd6bb2b67e072b4e653;hb=f2f5d59e83863f3b513950173baee1b6da2aee3c;hp=f3a9c4bb16753f876d79521439d6791cd6169e2c;hpb=7a1872f6702d6206bf1d8364c4e894f98d1c64f0;p=senf.git diff --git a/Socket/ClientSocketHandle.ih b/Socket/ClientSocketHandle.ih index f3a9c4b..f752e7b 100644 --- a/Socket/ClientSocketHandle.ih +++ b/Socket/ClientSocketHandle.ih @@ -1,6 +1,8 @@ -// 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 // // This program is free software; you can redistribute it and/or modify @@ -21,17 +23,27 @@ /** \file \brief ClientSocketHandle internal header */ -#ifndef IH_ClientSocketHandle_ -#define IH_ClientSocketHandle_ 1 +#ifndef IH_SENF_Socket_ClientSocketHandle_ +#define IH_SENF_Socket_ClientSocketHandle_ 1 // Custom includes -#include "Utils/IteratorTraits.hh" +#include "../Utils/IteratorTraits.hh" ///////////////////////////////ih.p//////////////////////////////////////// namespace senf { namespace detail { + /////////////////////////////////////////////////////////////////////// + // senf::detail::ReadRange + + /** \brief Internal: Choose optimal read implementation + + \internal + + If the range iterator is a contiguous_storage_iterator, the data is *directly* read into the + range, otherwise a temporary storage area is used. + */ template struct ReadRange { @@ -42,8 +54,10 @@ namespace detail { readfrom(Handle & handle, ForwardWritableRange & range, typename Handle::Address & addr); }; +# ifndef DOXYGEN + template - struct ReadRange + struct ReadRange { static typename boost::range_iterator::type read(Handle & handle, ForwardWritableRange & range); @@ -52,6 +66,44 @@ namespace detail { readfrom(Handle & handle, ForwardWritableRange & range, typename Handle::Address & addr); }; +# endif + + /////////////////////////////////////////////////////////////////////// + // senf::detail::WriteRange + + /** \brief Internal: Choose optimal write implementation + + \internal + + If the range iterator is a contiguous_storage_iterator, the data is *directly* written from + the range, otherwise a temporary storage area is used. + */ + template + struct WriteRange + { + static typename boost::range_const_iterator::type + write(Handle & handle, ForwardReadableRange & range); + + static typename boost::range_const_iterator::type + writeto(Handle & handle, ForwardReadableRange & range, + typename Handle::Address const & addr); + }; + +# ifndef DOXYGEN + + template + struct WriteRange + { + static typename boost::range_const_iterator::type + write(Handle & handle, ForwardReadableRange & range); + + static typename boost::range_const_iterator::type + writeto(Handle & handle, ForwardReadableRange & range, + typename Handle::Address const & addr); + }; + +# endif + }} ///////////////////////////////ih.e//////////////////////////////////////// @@ -64,4 +116,6 @@ namespace detail { // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: