lib/socket: replace `NativeSocketAcceptResult` by a Nit class
authorAlexis Laferrière <alexis.laf@xymus.net>
Mon, 22 Dec 2014 02:33:43 +0000 (21:33 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Mon, 22 Dec 2014 04:29:01 +0000 (23:29 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/socket/socket_c.nit

index 000e9f7..df55638 100644 (file)
@@ -29,10 +29,6 @@ in "C Header" `{
        #include <netdb.h>
        #include <sys/poll.h>
 
-       typedef struct sockaccept_result {
-               struct sockaddr_in addr_in;
-               int s_desc;
-       } S_ACCEPT_RESULT;
 `}
 
 # Wrapper for the data structure PollFD used for polling on a socket
@@ -189,28 +185,22 @@ extern class NativeSocket `{ int* `}
                return d;
        `}
 
-       fun accept: NativeSocketAcceptResult
+       fun accept: nullable SocketAcceptResult
        do
                var addrIn = new NativeSocketAddrIn
                var s = native_accept(addrIn)
-               return new NativeSocketAcceptResult(s, addrIn)
+               return new SocketAcceptResult(s, addrIn)
        end
 end
 
-extern class NativeSocketAcceptResult `{ S_ACCEPT_RESULT* `}
-       new (socket: NativeSocket, addrIn: NativeSocketAddrIn) `{
-               S_ACCEPT_RESULT *sar = NULL;
-               sar = malloc(sizeof(S_ACCEPT_RESULT));
-               sar->s_desc = *socket;
-               sar->addr_in = *addrIn;
-               return sar;
-       `}
-
-       fun socket: NativeSocket `{ return &recv->s_desc; `}
+# Result of a call to `NativeSocket::accept`
+class SocketAcceptResult
 
-       fun addrIn: NativeSocketAddrIn `{ return &recv->addr_in; `}
+       # Opened socket
+       var socket: NativeSocket
 
-       fun destroy `{ free(recv); `}
+       # Address of the remote client
+       var addr_in: NativeSocketAddrIn
 end
 
 extern class NativeSocketAddrIn `{ struct sockaddr_in* `}