lib/socket: intro `TCPSocket`
authorAlexis Laferrière <alexis.laf@xymus.net>
Sun, 5 Jul 2015 17:51:50 +0000 (13:51 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Fri, 17 Jul 2015 12:15:35 +0000 (08:15 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/socket/socket.nit

index 2f7519d..7e9018f 100644 (file)
@@ -20,12 +20,21 @@ module socket
 private import socket_c
 intrude import standard::stream
 
-# A general TCP socket, either a `TCPStream` or a `TCPServer`
+# A general Socket, either TCP or UDP
 abstract class Socket
 
        # Underlying C socket
        private var native: NativeSocket is noinit
 
+       # Is this socket closed?
+       var closed = false
+
+end
+
+# A general TCP socket, either a `TCPStream` or a `TCPServer`
+abstract class TCPSocket
+       super Socket
+
        # Port used by the socket
        var port: Int
 
@@ -33,14 +42,11 @@ abstract class Socket
        #
        # Formatted as xxx.xxx.xxx.xxx.
        var address: String is noinit
-
-       # Is this socket closed?
-       var closed = false
 end
 
 # Simple communication stream with a remote socket
 class TCPStream
-       super Socket
+       super TCPSocket
        super BufferedReader
        super Writer
        super PollableReader
@@ -232,7 +238,7 @@ end
 #
 # Create streams to communicate with clients using `accept`.
 class TCPServer
-       super Socket
+       super TCPSocket
 
        private var addrin: NativeSocketAddrIn is noinit