[nio-cvs] r83 - branches/home/psmith/restructure/src/protocol/yarpc

psmith at common-lisp.net psmith at common-lisp.net
Sun Feb 11 00:39:23 UTC 2007


Author: psmith
Date: Sat Feb 10 19:39:23 2007
New Revision: 83

Modified:
   branches/home/psmith/restructure/src/protocol/yarpc/yarpc-client-state-machine.lisp
Log:
first working multiplexing rpc

Modified: branches/home/psmith/restructure/src/protocol/yarpc/yarpc-client-state-machine.lisp
==============================================================================
--- branches/home/psmith/restructure/src/protocol/yarpc/yarpc-client-state-machine.lisp	(original)
+++ branches/home/psmith/restructure/src/protocol/yarpc/yarpc-client-state-machine.lisp	Sat Feb 10 19:39:23 2007
@@ -78,14 +78,18 @@
     (when ttd
       (format-log t "yarpc-client-state-machine:process-outgoing-packet got job ~A ~%" ttd)
       (destructuring-bind (job call-string) ttd
-	(setf (gethash (1+ +request-id+) (request-map sm)) job)
+	(setf (gethash (incf +request-id+) (request-map sm)) job)
 	(make-instance 'call-method-packet :call-string call-string :request-id +request-id+)))))
 
 (defmethod process-incoming-packet ((sm yarpc-client-state-machine) (response method-response-packet))
   (format-log t "yarpc-client-state-machine:process-incoming-packet called :sm ~A :packet ~A~%" sm response)
   (let* ((*package* (find-package :nio-yarpc))
-         (result  (read-from-string (response response))))
-    (nio-compat:add (result-queue sm) result)))
+         (result  (read-from-string (response response)))
+	 (request-id (request-id response)))
+    (format-log t "yarpc-client-state-machine:process-incoming-packet :result ~A :request-id ~A~%" result request-id)
+    (maphash #'(lambda (k v) (format t "~a -> ~a~%" k v)) (request-map sm))
+    (let ((remote-job (gethash request-id (request-map sm))))
+      (funcall (callback remote-job) result))))
 
 ;Execute the call-string on the remote node and call callback with the result
 (defmethod remote-execute ((sm yarpc-client-state-machine) call-string callback)



More information about the Nio-cvs mailing list