PPI: Checkin of first compiling (yet not working) version
[senf.git] / Socket / CommunicationPolicy.hh
index fe89926..0da9930 100644 (file)
@@ -51,18 +51,27 @@ namespace senf {
      */
     struct ConnectedCommunicationPolicy : public CommunicationPolicyBase
     {
-        static void listen(FileHandle handle, unsigned backlog);
+#       ifndef DOXYGEN
+        template <class Policy>
+        static void listen(ServerSocketHandle<Policy> handle, unsigned backlog,
+                           typename IfAddressingPolicyIsNot<Policy,NoAddressingPolicy>::type * = 0);
+#       else
+        template <class Policy>
+        static void listen(ServerSocketHandle<Policy> handle, unsigned backlog);
                                         ///< Enable establishing new connections on the socket
                                         /**< \param[in] handle socket handle to enable reception on
-                                             \param[in] backlog size of backlog queue
+                                             \param[in] backlog size of backlog queue */
+#       endif
 
-                                             \fixme listen probably makes no sense without accept,
-                                                 so listen() should depend on AddressingPolicy
-                                                 too. */
+#       ifndef DOXYGEN
         template <class Policy>
         static int accept(ServerSocketHandle<Policy> handle,
                           typename ServerSocketHandle<Policy>::Address & address,
                           typename IfAddressingPolicyIsNot<Policy,NoAddressingPolicy>::type * = 0);
+#       else
+        template <class Policy>
+        static int accept(ServerSocketHandle<Policy> handle,
+                          typename ServerSocketHandle<Policy>::Address & address);
                                         ///< accept a new connection on the socket.
                                         /**< The accept() member will return a new client file
                                              descriptor. This file descriptor will be used by the
@@ -73,7 +82,10 @@ namespace senf {
                                              \param[out] address address of newly connected remote
                                                  peer
                                              \returns file descriptor of new client socket */
+#       endif
+
     private:
+        static void do_listen(FileHandle handle, unsigned backlog);
         static int do_accept(FileHandle handle, struct sockaddr * addr, unsigned len);
     };
 
@@ -105,4 +117,6 @@ namespace senf {
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: