[usocket-cvs] r123 - in usocket/trunk: . backend

ehuelsmann at common-lisp.net ehuelsmann at common-lisp.net
Wed Oct 25 19:28:17 UTC 2006


Author: ehuelsmann
Date: Wed Oct 25 15:28:16 2006
New Revision: 123

Modified:
   usocket/trunk/backend/allegro.lisp
   usocket/trunk/backend/armedbear.lisp
   usocket/trunk/backend/clisp.lisp
   usocket/trunk/backend/cmucl.lisp
   usocket/trunk/backend/lispworks.lisp
   usocket/trunk/backend/openmcl.lisp
   usocket/trunk/backend/sbcl.lisp
   usocket/trunk/backend/scl.lisp
   usocket/trunk/usocket.lisp
Log:
Prepare for server-side sockets support.

Note: The new socket classes are not used (yet).

Modified: usocket/trunk/backend/allegro.lisp
==============================================================================
--- usocket/trunk/backend/allegro.lisp	(original)
+++ usocket/trunk/backend/allegro.lisp	Wed Oct 25 15:28:16 2006
@@ -42,7 +42,7 @@
           (with-mapped-conditions (socket)
              (socket:make-socket :remote-host (host-to-hostname host)
                                  :remote-port port)))
-    (make-socket :socket socket :stream socket)))
+    (make-stream-socket :socket socket :stream socket)))
 
 (defmethod socket-close ((usocket usocket))
   "Close socket."

Modified: usocket/trunk/backend/armedbear.lisp
==============================================================================
--- usocket/trunk/backend/armedbear.lisp	(original)
+++ usocket/trunk/backend/armedbear.lisp	Wed Oct 25 15:28:16 2006
@@ -16,8 +16,8 @@
     (with-mapped-conditions (usock)
        (let ((sock (ext:make-socket (host-to-hostname host) port)))
          (setf usock
-               (make-socket :socket sock
-                            :stream (ext:get-socket-stream sock)))))))
+               (make-stream-socket :socket sock
+                                   :stream (ext:get-socket-stream sock)))))))
 
 (defmethod socket-close ((usocket usocket))
   (with-mapped-conditions (usocket)

Modified: usocket/trunk/backend/clisp.lisp
==============================================================================
--- usocket/trunk/backend/clisp.lisp	(original)
+++ usocket/trunk/backend/clisp.lisp	Wed Oct 25 15:28:16 2006
@@ -46,8 +46,8 @@
              (socket:socket-connect port hostname
                                     :element-type 'character
                                     :buffered t)))
-    (make-socket :socket socket
-                 :stream socket))) ;; the socket is a stream too
+    (make-stream-socket :socket socket
+                        :stream socket))) ;; the socket is a stream too
 ;;                 :host host
 ;;                 :port port))
 

Modified: usocket/trunk/backend/cmucl.lisp
==============================================================================
--- usocket/trunk/backend/cmucl.lisp	(original)
+++ usocket/trunk/backend/cmucl.lisp	Wed Oct 25 15:28:16 2006
@@ -63,8 +63,8 @@
                                            :element-type 'character
                                            :buffering :full))
                ;;###FIXME the above line probably needs an :external-format
-               (usocket (make-socket :socket socket
-                                     :stream stream)))
+               (usocket (make-stream-socket :socket socket
+                                            :stream stream)))
           usocket)
       (let ((err (unix:unix-errno)))
         (when err (cmucl-map-socket-error err))))))

Modified: usocket/trunk/backend/lispworks.lisp
==============================================================================
--- usocket/trunk/backend/lispworks.lisp	(original)
+++ usocket/trunk/backend/lispworks.lisp	Wed Oct 25 15:28:16 2006
@@ -54,8 +54,8 @@
           (with-mapped-conditions ()
              (comm:open-tcp-stream hostname port)))
     (if stream
-        (make-socket :socket (comm:socket-stream-socket stream)
-                     :stream stream)
+        (make-stream-socket :socket (comm:socket-stream-socket stream)
+                            :stream stream)
       (error 'unknown-error))))
 ;;                 :host host
 ;;                 :port port))

Modified: usocket/trunk/backend/openmcl.lisp
==============================================================================
--- usocket/trunk/backend/openmcl.lisp	(original)
+++ usocket/trunk/backend/openmcl.lisp	Wed Oct 25 15:28:16 2006
@@ -46,7 +46,7 @@
                                                  (host-to-hostname host)
                                                  :remote-port port)))
         (openmcl-socket:socket-connect mcl-sock)
-        (make-socket :stream mcl-sock :socket mcl-sock))))
+        (make-stream-socket :stream mcl-sock :socket mcl-sock))))
 
 (defmethod socket-close ((usocket usocket))
   (with-mapped-conditions (usocket)

Modified: usocket/trunk/backend/sbcl.lisp
==============================================================================
--- usocket/trunk/backend/sbcl.lisp	(original)
+++ usocket/trunk/backend/sbcl.lisp	Wed Oct 25 15:28:16 2006
@@ -68,7 +68,7 @@
                                                     :buffering :full
                                                     :element-type 'character))
          ;;###FIXME: The above line probably needs an :external-format
-         (usocket (make-instance 'usocket :stream stream :socket socket))
+         (usocket (make-stream-socket :stream stream :socket socket))
          (ip (host-to-vector-quad host)))
     (with-mapped-conditions (usocket)
       (sb-bsd-sockets:socket-connect socket ip port))

Modified: usocket/trunk/backend/scl.lisp
==============================================================================
--- usocket/trunk/backend/scl.lisp	(original)
+++ usocket/trunk/backend/scl.lisp	Wed Oct 25 15:28:16 2006
@@ -41,7 +41,7 @@
                      :element-type 'character
                      :buffering :full)))
     ;;###FIXME the above line probably needs an :external-format
-    (make-socket :socket socket :stream stream)))
+    (make-stream-socket :socket socket :stream stream)))
 
 (defmethod socket-close ((usocket usocket))
   "Close socket."

Modified: usocket/trunk/usocket.lisp
==============================================================================
--- usocket/trunk/usocket.lisp	(original)
+++ usocket/trunk/usocket.lisp	Wed Oct 25 15:28:16 2006
@@ -11,19 +11,46 @@
   ((socket
     :initarg :socket
     :accessor socket
-    :documentation "Implementation specific socket object instance.")
-   (stream
+    :documentation "Implementation specific socket object instance."))
+  (:documentation
+"The main socket class."))
+
+(defclass stream-usocket (usocket)
+   ((stream
     :initarg :stream
     :accessor socket-stream
-    :documentation "Implementation specific socket stream instance.")))
+    :documentation "Stream instance associated with the socket.
 
-(defun make-socket (&key socket stream)
+Iff an external-format was passed to `socket-connect' or `socket-listen'
+the stream is a flexi-stream. Otherwise the stream is implementation
+specific."))
+   (:documentation ""))
+
+(defclass stream-server-usocket (usocket)
+  ()
+  (:documentation ""))
+
+;;Not in use yet:
+;;(defclass datagram-usocket (usocket)
+;;  ()
+;;  (:documentation ""))
+
+(defun make-socket (&key socket)
+  "Create a usocket socket type from implementation specific socket."
+  (make-stream-socket :socket socket))
+
+(defun make-stream-socket (&key socket stream)
   "Create a usocket socket type from implementation specific socket
 and stream objects."
-  (make-instance 'usocket
+  (make-instance 'stream-usocket
                  :socket socket
                  :stream stream))
 
+(defun make-stream-server-socket (socket)
+  "Create a usocket-server socket type from an implementation-specific socket
+object."
+  (make-instance 'stream-server-usocket :socket socket))
+
 (defun open-stream (peer-host peer-port
                               &key (local-host :any)
                               (local-port 0)



More information about the usocket-cvs mailing list