removed some useless spaces; not very important, I know :)
[senf.git] / Socket / ProtocolClientSocketHandle.hh
index c81dae4..ce8518e 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
-// Copyright (C) 2006 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// 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
@@ -29,6 +29,8 @@
 
 // Custom includes
 #include "ClientSocketHandle.hh"
+#include "../config.hh"
+#include "../Utils/Tags.hh"
 
 #include "ProtocolClientSocketHandle.mpp"
 ///////////////////////////////hh.p////////////////////////////////////////
@@ -42,19 +44,19 @@ namespace senf {
 
     /** \brief Protocol specific socket handle (client interface)
 
-       The ProtocolClientSocketHandle is the client interface leaf class of the handle
-       hierarchy. This is the class to instantiate to open a new socket. This is also the \e only
-       class, which can be used to open a client socket.
+        The ProtocolClientSocketHandle is the client interface leaf class of the handle
+        hierarchy. This is the class to instantiate to open a new socket. This is also the \e only
+        class, which can be used to open a client socket.
 
-       The \a Protocol template argument defines the protocol of the socket. This protocol provides
-       the protocol interface of the socket as well as the complete socket policy of this protocol.
+        The \a Protocol template argument defines the protocol of the socket. This protocol provides
+        the protocol interface of the socket as well as the complete socket policy of this protocol.
 
-       The ProtocolClientSocketHandle adds the protocol interface as an additional interface to the
-       socket handle. This interface is only accessible via the protocol class. All socket
-       functionality not available through the policy interface (see ClientSocketHandle) is
-       accessible via the protocol() member.
+        The ProtocolClientSocketHandle adds the protocol interface as an additional interface to the
+        socket handle. This interface is only accessible via the protocol class. All socket
+        functionality not available through the policy interface (see ClientSocketHandle) is
+        accessible via the protocol() member.
 
-       \see \ref protocol_group
+        \see \ref protocol_group
       */
     template <class SocketProtocol>
     class ProtocolClientSocketHandle
@@ -70,28 +72,39 @@ namespace senf {
         ///\name Structors and default members
         ///@{
 
-       /** \brief Create new client socket
+        /** \brief Create new client socket
 
-           This constructor is one of the possible constructors. The exact Signature of the
-           constructor (or constructors) is defined by the \c init_client() member (or members) of
-           the \a Protocol class. ProtocolClientSocketHandle defines a number of constructors
-           taking up to 9 arguments which just forward to a corresponding \a Protocol\c
-           ::init_client() member. See the documentation of the respective Protocol class for a
-           detailed documentation of that protocols constructors.
-        */
+            This constructor is one of the possible constructors. The exact Signature of the
+            constructor (or constructors) is defined by the \c init_client() member (or members) of
+            the \a Protocol class. ProtocolClientSocketHandle defines a number of constructors
+            taking up to 9 arguments which just forward to a corresponding \a Protocol\c
+            ::init_client() member. See the documentation of the respective Protocol class for a
+            detailed documentation of that protocols constructors.
+         */
         ProtocolClientSocketHandle();
 
-#       define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 9, "Socket/ProtocolClientSocketHandle.mpp", 1))
+#       define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 9, SENF_ABSOLUTE_INCLUDE_PATH(Socket/ProtocolClientSocketHandle.mpp), 1))
 #       include BOOST_PP_ITERATE()
-        
+
+        /** \brief Create uninitialized socket variable
+
+            This special constructor is called when passing
+            ProtocolClientSocketHandle::Uninitialized as only argument to the constructor. This will
+            create an in-\ref valid() socket handle which can however be assigned later with another
+            socket instance.
+
+            \implementation The socket handle will have no \c body allocated.
+         */
+        ProtocolClientSocketHandle(senf::NoInit_t);
+
         ///@}
         ///////////////////////////////////////////////////////////////////////////
 
         Protocol const & protocol();    ///< Access the protocol interface
-                                       /**< The returned protocol class reference gives access to
-                                          the complete protocol interface as defined by that
-                                          class. See the respective protocol class documentation.
-                                          \returns \a Protocol class reference */
+                                        /**< The returned protocol class reference gives access to
+                                           the complete protocol interface as defined by that
+                                           class. See the respective protocol class documentation.
+                                           \returns \a Protocol class reference */
 
         static ProtocolClientSocketHandle cast_static(FileHandle handle);
         static ProtocolClientSocketHandle cast_dynamic(FileHandle handle);
@@ -119,6 +132,10 @@ namespace senf {
 \f
 // Local Variables:
 // mode: c++
-// c-file-style: "senf"
 // fill-column: 100
+// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: