-(import sam
- matchable
- (chicken process-context)
- srfi-18)
+(import sam-macros)
-(define (main-beh self system)
- (send-message system 'print "Hello, what is your name?")
- (send-message system 'read
- (make-actor (lambda (self . message)
- (print message)
- (match message
- ((name)
- (send-message system 'print "Hello, " name "!")
- 'done)))))
-
- (send-message-later system 10 'print "Boo!"))
-
-(let loop ((args (cdr (argv)))
- (host "localhost")
- (port 8000))
- (match args
- (((or "-h" "--help"))
- (print "Usage: simple_test [ -h ] [ --port PORT ] [ --hostname host ]"))
- (((or "-p" "--port") pstr rest ...)
- (loop rest host (string->number pstr)))
- (("--hostname" hstr rest ...)
- (loop rest hstr port))
- (()
- (print "-- Starting SAM on " host ":" port " --\n")
- (boot-sam host port main-beh))))
+(define-beh main-beh (self)
+ ((system) =>
+ (send-message system 'print "Hello, what is your name?")
+ (send-message system 'read
+ (make-actor (make-beh (self)
+ ((name) =>
+ (send-message system 'print "Hello, " name "!")
+ 'done))))
+ (send-message system 'ping
+ (make-actor (make-beh (self)
+ (('pong) =>
+ (send-message system 'print
+ "Received pong from system!")
+ 'done))))
+ (send-message-later system 10 'print "Boo!")
+ 'done))