Added additional operators to RestrictedInt and made
[senf.git] / senf / Socket / FileHandle.hh
index 377a8a6..3d04db9 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 FileHandle public header
 
 /** \defgroup handle_group The Handle Hierarchy
 
-    <div class="diamap" name="FhHierarchy">
-    <span coords="233,47,438,89">\ref SocketHandle</span>
-    <span coords="32,126,281,168">\ref ClientSocketHandle</span>
-    <span coords="0,187,326,229">\ref ProtocolClientSocketHandle</span>
-    <span coords="350,187,684,229">\ref ProtocolServerSocketHandle</span>
-    <span coords="243,0,343,28">\ref FileHandle</span>
-    <span coords="382,126,638,168">\ref ServerSocketHandle</span>
-    </div>
-    \htmlonly <img src="FhHierarchy.png" border="0" alt="FhHierarchy" usemap="#FhHierarchy"> \endhtmlonly
+    \diaimage FhHierarchy.dia
 
     The senf::FileHandle class is the base of a hierarchy of socket handle classes (realized as
     templates). These classes provide an interface to the complete socket API. While going down the
 
 // Custom includes
 #include <memory> // std::auto_ptr
-#include "../Utils/safe_bool.hh"
-#include "../Scheduler/ClockService.hh"
+#include <senf/Utils/safe_bool.hh>
+#include <senf/Scheduler/ClockService.hh>
 
 //#include "FileHandle.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #include "FileHandle.ih"
 
 namespace senf {
 
     /// \addtogroup handle_group
-    /// @{
+    //\{
 
     /** \brief Basic file handle wrapper
 
@@ -112,12 +109,12 @@ namespace senf {
         : public safe_bool<FileHandle>
     {
     public:
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         // Types
 
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         ///\name Structors and default members
-        ///@{
+        //\{
 
         FileHandle();
         ~FileHandle();
@@ -129,8 +126,8 @@ namespace senf {
 
         // no conversion constructors
 
-        ///@}
-        ///////////////////////////////////////////////////////////////////////////
+        //\}
+        //-////////////////////////////////////////////////////////////////////////
 
         void close();                ///< Close filehandle
                                      /**< \throws senf::SystemException */
@@ -138,29 +135,29 @@ namespace senf {
 
         bool readable() const;       ///< Check, whether a read on the handle would not block
                                      ///< (ignoring blocking state)
-        bool waitReadable(senf::ClockService::clock_type timeout = -1) const;  
+        bool waitReadable(senf::ClockService::clock_type timeout = senf::ClockService::clock_type(-1)) const;
                                      ///< Wait, until read on the handle would not block (ignoring
                                      ///< blocking state)
                                      /**< \param[in] timeout max time to wait, default is to wait
-                                              forever.  
+                                              forever.
                                           \returns \c true, if handle became readable or \c false on
                                               timeout. */
         bool writeable() const;      ///< Check, whether a write on the handle would not block
                                      ///< (ignoring blocking state)
-        bool waitWriteable(senf::ClockService::clock_type timeout = -1) const;
+        bool waitWriteable(senf::ClockService::clock_type timeout = senf::ClockService::clock_type(-1)) const;
                                      ///< Wait, until a write on the handle would not block
                                      ///< (ignoring blocking state)
                                      /**< \param[in] timeout max time to wait, default is to wait
-                                              forever.  
+                                              forever.
                                           \returns \c true, if handle became writable or \c false on
                                               timeout. */
-        bool oobReadable() const;    ///< Check, whether a read of prioritized data on the handle 
+        bool oobReadable() const;    ///< Check, whether a read of prioritized data on the handle
                                      ///< would not block (ignoring blocking state)
-        bool waitOOBReadable(senf::ClockService::clock_type timeout = -1) const; 
+        bool waitOOBReadable(senf::ClockService::clock_type timeout = senf::ClockService::clock_type(-1)) const;
                                      ///< Wait, until read of prioritized data on the handle does
                                      ///< not block (ignoring blocking state)
                                      /**< \param[in] timeout max time to wait, default is to wait
-                                              forever.  
+                                              forever.
                                           \returns \c true, if handle became readable for
                                               out-of-band data or \c false on timeout. */
 
@@ -225,11 +222,11 @@ namespace senf {
      */
     int retrieve_filehandle(FileHandle handle);
 
-    /// @}
+    //\}
 
 }
 
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #include "FileHandle.cci"
 //#include "FileHandle.ct"
 //#include "FileHandle.cti"