No longer using URIs for internal address representation.
[sam.git] / chat_client.scm
index 60d0ee4..f6b16d6 100644 (file)
@@ -3,15 +3,14 @@
         srfi-13
         (chicken process-context))
 
-(define client-beh
+(define (make-client-beh system)
   (let ((name "name")
         (recipients '()))
-    
     (lambda (self . message)
       (match message
         (('start)
          (send-message system 'print "Welcome to chat!\n"
-                       "Your client address is " self ".\n"
+                       "Your client address is " (address->string self) ".\n"
                        "Type '/help' for a list of commands.\n")
          (send-message system 'read self))
         (('show-msg from text)
@@ -37,7 +36,7 @@
                   (if (string-null? arg)
                       (send-message system 'print "Missing address of client.")
                       (begin
-                        (set! recipients (cons arg recipients))
+                        (set! recipients (cons (string->address arg) recipients))
                         (send-message system 'print "Added recipient to chat."))))
                  ((or "c" "clear")
                   (set! recipients '())
       (send-message system 'read self)
       'sleep)))
 
+(define (main-beh self system)
+  (send-message (make-actor (make-client-beh system)) 'start)
+  'done)
+
 (define (print-usage)
   (print "Actor-driven chat client.\n")
   (print "Usage: chat_client -h")
@@ -83,9 +86,7 @@
     (((or "-n" "--hostname") hstr rest ...)
      (loop rest hstr port))
     (()
-     (init-sam host port)
-     (send-message (make-actor client-beh) 'start)
-     (start-console))
+     (boot-sam host port main-beh))
     (else
      (print "Unrecognised argument '" (car args) "'.\n")
      (print-usage))))