[usocket-cvs] r203 - usocket/branches/0.3.x

ehuelsmann at common-lisp.net ehuelsmann at common-lisp.net
Wed Feb 28 19:29:06 UTC 2007


Author: ehuelsmann
Date: Wed Feb 28 14:29:04 2007
New Revision: 203

Modified:
   usocket/branches/0.3.x/package.lisp
   usocket/branches/0.3.x/usocket.lisp
Log:
Merge r201 and r202 from trunk.

Modified: usocket/branches/0.3.x/package.lisp
==============================================================================
--- usocket/branches/0.3.x/package.lisp	(original)
+++ usocket/branches/0.3.x/package.lisp	Wed Feb 28 14:29:04 2007
@@ -21,8 +21,10 @@
              #:get-local-name
              #:get-peer-name
 
-             #:with-connected-socket ; macros
+             #:with-connected-socket ; convenience macros
              #:with-server-socket
+             #:with-client-socket
+             #:with-socket-listener
 
              #:usocket ; socket object and accessors
              #:stream-usocket

Modified: usocket/branches/0.3.x/usocket.lisp
==============================================================================
--- usocket/branches/0.3.x/usocket.lisp	(original)
+++ usocket/branches/0.3.x/usocket.lisp	Wed Feb 28 14:29:04 2007
@@ -117,15 +117,34 @@
        (when ,var
          (socket-close ,var)))))
 
+(defmacro with-client-socket ((socket-var stream-var &rest socket-connect-args)
+                              &body body)
+  "Bind the socket resulting from a call to `socket-connect' with
+the arguments `socket-connect-args' to `socket-var' and if `stream-var' is
+non-nil, bind the associated socket stream to it."
+  `(with-connected-socket (,socket-var (socket-connect , at socket-connect-args))
+       ,(if (null stream-var)
+           `(progn , at body)
+          `(let ((,stream-var (socket-stream ,socket-var)))
+             , at body))))
+
 (defmacro with-server-socket ((var server-socket) &body body)
   "Bind `server-socket' to `var', ensuring socket destruction on exit.
 
 `body' is only evaluated when `var' is bound to a non-null value.
 
 The `body' is an implied progn form."
-  `(with-connected-socket (var server-socket)
+  `(with-connected-socket (,var ,server-socket)
+      , at body))
+
+(defmacro with-socket-listener ((socket-var &rest socket-listen-args)
+                                &body body)
+  "Bind the socket resulting from a call to `socket-listen' with arguments
+`socket-listen-args' to `socket-var'."
+  `(with-server-socket (,socket-var (socket-listen , at socket-listen-args))
       , at body))
 
+
 ;;
 ;; IP(v4) utility functions
 ;;



More information about the usocket-cvs mailing list