X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FClientSocketHandle.hh;h=6c8fb939038cf00133ea11314d77cde91ca0de57;hb=refs%2Fheads%2Fmaster;hp=9bcbcb7fda076c55f21e14bac3d33325eef2926c;hpb=9cb871b939efe93e35dd96808d25089399acfc46;p=senf.git diff --git a/senf/Socket/ClientSocketHandle.hh b/senf/Socket/ClientSocketHandle.hh index 9bcbcb7..6c8fb93 100644 --- a/senf/Socket/ClientSocketHandle.hh +++ b/senf/Socket/ClientSocketHandle.hh @@ -2,23 +2,28 @@ // // Copyright (C) 2006 // 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 -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// The contents of this file are subject to the Fraunhofer FOKUS Public License +// Version 1.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// http://senf.berlios.de/license.html // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// The Fraunhofer FOKUS Public License Version 1.0 is based on, +// but modifies the Mozilla Public License Version 1.1. +// See the full license text for the amendments. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the License. +// +// The Original Code is Fraunhofer FOKUS code. +// +// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. +// (registered association), Hansastraße 27 c, 80686 Munich, Germany. +// All Rights Reserved. +// +// Contributor(s): +// Stefan Bund /** \file \brief ClientSocketHandle public header @@ -35,12 +40,12 @@ #include "SocketHandle.hh" //#include "ClientSocketHandle.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { /// \addtogroup handle_group - /// @{ + //\{ template class ServerSocketHandle; @@ -49,7 +54,7 @@ namespace senf { This class provides the client side policy interface of the socket abstraction. ClientSocketHandle defines the complete policy interface. It does not implement any functionality itself however. The following table shows, to which policy members each - group of ClientSocketHandle members is forwardd. The last collumn shows, on which other + group of ClientSocketHandle members is forwarded. The last column shows, on which other policies this member-group depends in the default policy classes. If you define your own policy classes, the dependencies are up to you. @@ -79,7 +84,7 @@ namespace senf { \idea Give SocketHandle (and therefore ClientSocketHandle and ServerSocketHandle) a \c protocol() template member and an additional template arg \c Policies. This arg should be a - typelist of Poclicy classes which can be accessed. You use protocol() to + typelist of policy classes which can be accessed. You use protocol() to access a protocol class. \c Policies can of course be underspecified or even empty. \see \ref policy_group \n @@ -90,7 +95,7 @@ namespace senf { : public SocketHandle { public: - /////////////////////////////////////////////////////////////////////////// + //-//////////////////////////////////////////////////////////////////////// // Types /// Address type from the addressing policy @@ -98,7 +103,7 @@ namespace senf { /// 'Best' type for passing address as parameter /** Depending on the type of \c Address, this will be either Address or Address const &. See call_traits documentation in + href="http://www.boost.org/doc/libs/release/libs/utility/call_traits.htm">call_traits documentation in the Boost.Utility library. */ typedef typename boost::call_traits
::param_type AddressParam; @@ -108,9 +113,9 @@ namespace senf { NoAddressingPolicy. */ typedef ServerSocketHandle ServerHandle; - /////////////////////////////////////////////////////////////////////////// + //-//////////////////////////////////////////////////////////////////////// ///\name Structors and default members - ///@{ + //\{ // default default constructor // default copy constructor @@ -138,12 +143,12 @@ namespace senf { ClientSocketHandle const & operator=(ClientSocketHandle other); # endif - ///@} - /////////////////////////////////////////////////////////////////////////// + //\} + //-//////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// + //-//////////////////////////////////////////////////////////////////////// ///\name Reading and Writing - ///@{ + //\{ /** \brief Read data from socket @@ -176,12 +181,14 @@ namespace senf { \c recv. */ std::string read (unsigned limit=0); - template + # ifndef DOXYGEN - typename boost::range_iterator::type - read (ForwardWritableRange const & range, - typename boost::disable_if< boost::is_convertible >::type * = 0); + template + typename boost::disable_if< boost::is_convertible, + typename boost::range_iterator::type>::type + read(ForwardWritableRange const & range); # else + template typename boost::range_iterator::type read (ForwardWritableRange const & range); ///< Read data into range @@ -195,13 +202,13 @@ namespace senf { \returns past-the-end iterator pointer to after the last read character \see \ref read() \n - Boost.Range */ + Boost.Range */ # endif # ifndef DOXYGEN template - typename boost::range_iterator::type - read (ForwardWritableRange & range, - typename boost::disable_if< boost::is_convertible >::type * = 0); + typename boost::disable_if< boost::is_convertible, + typename boost::range_iterator::type>::type + read(ForwardWritableRange & range); # else template typename boost::range_iterator::type @@ -209,7 +216,7 @@ namespace senf { ///< Read data into range /**< \see read(ForwardWritableRange const &) \n read() \n - Boost.Range */ + Boost.Range */ # endif template void read (Sequence & container, unsigned limit); @@ -266,14 +273,14 @@ namespace senf { \returns past-the-end iterator pointer to after the last read character \see \ref readfrom() \n - Boost.Range */ + Boost.Range */ template typename boost::range_iterator::type readfrom (ForwardWritableRange & range, Address & from); ///< Read data into range /**< \see readfrom(ForwardWritableRange const&,Address&) \n readfrom() \n - Boost.Range */ + Boost.Range */ template void readfrom (Sequence & container, Address & from, unsigned limit); ///< Read data into container @@ -328,7 +335,7 @@ namespace senf { \param[in] end past-the-end pointer to area to write \returns past-the-end pointer after last byte written \see \ref write() \n - Boost.Range */ + Boost.Range */ /** \brief Write data to unconnected socket @@ -358,11 +365,11 @@ namespace senf { \param[in] end past-the-end pointer after data to write \returns past-the-end iterator after last byte written \see \ref writeto() \n - Boost.Range */ + Boost.Range */ - /////////////////////////////////////////////////////////////////////////// + //-//////////////////////////////////////////////////////////////////////// ///\name Addressing - ///@{ + //\{ /** \brief Connect to remote peer @@ -418,7 +425,7 @@ namespace senf { ///< Query local address /**< \see \ref local() */ - ///@} + //\} static ClientSocketHandle cast_static(FileHandle handle); static ClientSocketHandle cast_dynamic(FileHandle handle); @@ -437,10 +444,10 @@ namespace senf { friend class senf::ServerSocketHandle; }; - /// @} + //\} } -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// //#include "ClientSocketHandle.cci" #include "ClientSocketHandle.ct" #include "ClientSocketHandle.cti"