PPI: Checkin of first compiling (yet not working) version
[senf.git] / Socket / ReadWritePolicy.hh
index 00ab590..a35b570 100644 (file)
@@ -48,7 +48,7 @@ namespace senf {
     /** \brief ReadPolicy for readable sockets
 
         This policy provides support for readable sockets via the standard UNIX read/recvfrom system
-        cals. The concreate semantics of the read calls depend on the framing policy of the socket.
+        calls. The concrete semantics of the read calls depend on the framing policy of the socket.
      */
     struct ReadablePolicy : public ReadPolicyBase
     {
@@ -58,16 +58,23 @@ namespace senf {
                                              \param[in] buffer address of buffer to write data to
                                              \param[in] size size of buffer
                                              \returns number of bytes read */
+#       ifndef DOXYGEN
         template <class Policy>
         static unsigned readfrom(ClientSocketHandle<Policy> handle, char * buffer, unsigned size,
                                  typename Policy::AddressingPolicy::Address & address,
-                                 typename IfCommunicationPolicyIs<Policy,UnconnectedCommunicationPolicy>::type * = 0);
+                                 typename IfCommunicationPolicyIs<
+                                     Policy,UnconnectedCommunicationPolicy>::type * = 0);
+#       else
+        template <class Policy>
+        static unsigned readfrom(ClientSocketHandle<Policy> 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
                                              \param[in] buffer address of buffer to write data to
                                              \param[in] size size of buffer
                                              \param[out] address peer address
                                              \returns number of bytes read */
+#       endif
 
     private:
         static unsigned do_readfrom(FileHandle handle, char * buffer, unsigned size,
@@ -86,13 +93,19 @@ namespace senf {
     /** \brief WritePolicy for writeable sockets
 
         This policy provides support for writable sockets via the standard UNIX write/sendto system
-        cals. The concreate semantics of the write calls depend on the framing policy of the socket.
+        calls. The concrete semantics of the write calls depend on the framing policy of the socket.
      */
     struct WriteablePolicy : public WritePolicyBase
     {
+#       ifndef DOXYGEN
         template <class Policy>
         static unsigned write(ClientSocketHandle<Policy> handle, char const * buffer, unsigned size,
-                              typename IfCommunicationPolicyIs<Policy,ConnectedCommunicationPolicy>::type * = 0);
+                              typename IfCommunicationPolicyIs<
+                                  Policy,ConnectedCommunicationPolicy>::type * = 0);
+#       else
+        template <class Policy>
+        static unsigned write(ClientSocketHandle<Policy> handle, char const * buffer, 
+                              unsigned size);
                                         ///< write data to socket
                                         /**< This member is only enabled if the socket uses
                                              connected communication. Otherwise the communication
@@ -103,11 +116,20 @@ namespace senf {
                                              \param[in] buffer address of buffer to send
                                              \param[in] size number of bytes to write
                                              \returns number of bytes written */
+#       endif
+#       ifndef DOXYGEN
         template <class Policy>
         static unsigned writeto(ClientSocketHandle<Policy> handle,
-                                typename boost::call_traits<typename Policy::AddressingPolicy::Address>::param_type addr,
+                                typename boost::call_traits<
+                                    typename Policy::AddressingPolicy::Address>::param_type addr,
                                 char const * buffer, unsigned size,
-                                typename IfCommunicationPolicyIs<Policy,UnconnectedCommunicationPolicy>::type * = 0);
+                                typename IfCommunicationPolicyIs<
+                                    Policy,UnconnectedCommunicationPolicy>::type * = 0);
+#       else
+        template <class Policy>
+        static unsigned writeto(ClientSocketHandle<Policy> handle,
+                                typename Policy::AddressingPolicy::Address const & addr,
+                                char const * buffer, unsigned size);
                                         ///< write data to socket sending to given peer
                                         /**< This member is only enabled if the socket uses
                                              unconnected communication. Otherwise no target may be
@@ -116,14 +138,15 @@ namespace senf {
                                              \param[in] handle socket handle to write data to
                                              \param[in] buffer address of buffer to send
                                              \param[in] size number of bytes to write
-                                             \param[in] address peer to send data to
+                                             \param[in] addr peer to send data to
                                              \returns number of bytes written
                                           */
+#       endif
 
     private:
         static unsigned do_write(FileHandle handle, char const * buffer, unsigned size);
         static unsigned do_writeto(FileHandle handle, char const * buffer, unsigned size,
-                                   struct sockaddr * addr, socklen_t len);
+                                   struct sockaddr const * addr, socklen_t len);
     };
 
     /** \brief WritePolicy for unwriteable sockets
@@ -153,4 +176,6 @@ namespace senf {
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: