b1981d7e5bcddfc60661266a35e217f3e5db02b9
[sam.git] / simple_test.scm
1 (import sam
2         matchable
3         (chicken process-context)
4         srfi-18)
5
6 (define (send-startup-messages)
7   (send-message system 'print "Hello, what is your name?")
8   (send-message system 'read
9                 (make-actor (lambda (self . message)
10                               (print message)
11                               (match message
12                                 ((name)
13                                  (send-message system 'print "Hello, " name "!")
14                                  'done)))))
15
16   (thread-start!
17    (lambda ()
18      (thread-sleep! 10)
19      (send-message system 'print "Boo!"))))
20
21 (let loop ((args (cdr (argv)))
22            (host "localhost")
23            (port 8000))
24   (match args
25     (((or "-h" "--help"))
26      (print "Usage: simple_test [ -h ] [ --port PORT ] [ --hostname host ]"))
27     (((or "-p" "--port") pstr rest ...)
28      (loop rest host (string->number pstr)))
29     (("--hostname" hstr rest ...)
30      (loop rest hstr port))
31     (()
32      (init-sam host port)
33      (print "-- Started SAM on " host ":" port " --\n")
34      (send-startup-messages)
35      (start-console))))