switch to new MPL based Fraunhofer FOKUS Public License
[senf.git] / senf / Socket / ReadWritePolicy.hh
index 24d5cea..75eba1d 100644 (file)
@@ -2,23 +2,28 @@
 //
 // Copyright (C) 2006
 // 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
-// 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 <g0dil@berlios.de>
 
 /** \file
     \brief ReadPolicy and WritePolicy public header
@@ -35,7 +40,7 @@
 #include "CommunicationPolicy.hh"
 
 //#include "ReadWritePolicy.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 struct sockaddr;
@@ -43,7 +48,7 @@ struct sockaddr;
 namespace senf {
 
     /// \addtogroup policy_impl_group
-    /// @{
+    //\{
 
     /** \brief ReadPolicy for readable sockets
 
@@ -52,7 +57,7 @@ namespace senf {
      */
     struct ReadablePolicy : public ReadPolicyBase
     {
-        static unsigned read(FileHandle handle, char * buffer, unsigned size);
+        static unsigned read(FileHandle & handle, char * buffer, unsigned size);
                                         ///< read data from socket
                                         /**< \param[in] handle socket handle to read from
                                              \param[in] buffer address of buffer to write data to
@@ -60,13 +65,13 @@ namespace senf {
                                              \returns number of bytes read */
 #       ifndef DOXYGEN
         template <class SPolicy>
-        static unsigned readfrom(ClientSocketHandle<SPolicy> handle, char * buffer, unsigned size,
+        static unsigned readfrom(ClientSocketHandle<SPolicy> & handle, char * buffer, unsigned size,
                                  typename SPolicy::AddressingPolicy::Address & address,
                                  typename IfCommunicationPolicyIs<
                                      SPolicy,UnconnectedCommunicationPolicy>::type * = 0);
 #       else
         template <class SPolicy>
-        static unsigned readfrom(ClientSocketHandle<SPolicy> handle, char * buffer, unsigned size,
+        static unsigned readfrom(ClientSocketHandle<SPolicy> & handle, char * buffer, unsigned size,
                                  typename Policy::AddressingPolicy::Address & address);
                                         ///< read data from socket returning peer address
                                         /**< \param[in] handle socket handle to read from
@@ -77,7 +82,7 @@ namespace senf {
 #       endif
 
     private:
-        static unsigned do_readfrom(FileHandle handle, char * buffer, unsigned size,
+        static unsigned do_readfrom(FileHandle & handle, char * buffer, unsigned size,
                                     struct ::sockaddr * addr, socklen_t * len);
     };
 
@@ -99,12 +104,12 @@ namespace senf {
     {
 #       ifndef DOXYGEN
         template <class SPolicy>
-        static unsigned write(ClientSocketHandle<SPolicy> handle, char const * buffer, unsigned size,
+        static unsigned write(ClientSocketHandle<SPolicy> & handle, char const * buffer, unsigned size,
                               typename IfCommunicationPolicyIs<
                                   SPolicy,ConnectedCommunicationPolicy>::type * = 0);
 #       else
         template <class SPolicy>
-        static unsigned write(ClientSocketHandle<SPolicy> handle, char const * buffer, 
+        static unsigned write(ClientSocketHandle<SPolicy> & handle, char const * buffer,
                               unsigned size);
                                         ///< write data to socket
                                         /**< This member is only enabled if the socket uses
@@ -119,7 +124,7 @@ namespace senf {
 #       endif
 #       ifndef DOXYGEN
         template <class SPolicy>
-        static unsigned writeto(ClientSocketHandle<SPolicy> handle,
+        static unsigned writeto(ClientSocketHandle<SPolicy> & handle,
                                 typename boost::call_traits<
                                     typename SPolicy::AddressingPolicy::Address>::param_type addr,
                                 char const * buffer, unsigned size,
@@ -127,7 +132,7 @@ namespace senf {
                                     SPolicy,UnconnectedCommunicationPolicy>::type * = 0);
 #       else
         template <class SPolicy>
-        static unsigned writeto(ClientSocketHandle<SPolicy> handle,
+        static unsigned writeto(ClientSocketHandle<SPolicy> & handle,
                                 typename Policy::AddressingPolicy::Address const & addr,
                                 char const * buffer, unsigned size);
                                         ///< write data to socket sending to given peer
@@ -144,8 +149,8 @@ namespace senf {
 #       endif
 
     private:
-        static unsigned do_write(FileHandle handle, char const * buffer, unsigned size);
-        static unsigned do_writeto(FileHandle handle, char const * buffer, unsigned size,
+        static unsigned do_write(FileHandle & handle, char const * buffer, unsigned size);
+        static unsigned do_writeto(FileHandle & handle, char const * buffer, unsigned size,
                                    struct sockaddr const * addr, socklen_t len);
     };
 
@@ -158,12 +163,12 @@ namespace senf {
     struct NotWriteablePolicy : public WritePolicyBase
     {};
 
-    /// @}
+    //\}
 
 }
 
 
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 //#include "ReadWritePolicy.cci"
 //#include "ReadWritePolicy.ct"
 #include "ReadWritePolicy.cti"