From 171dbab2f07df50ac5b1daedfbef6d60860b7935 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 11 Dec 2016 11:14:25 -0600 Subject: [PATCH] actors: Make the <-* message sending procedures official, not aliases. * 8sync/systems/actors.scm (send-message, send-message-wait) (reply-message, reply-message-wait): Removed. (<-, <-wait, <-reply, <-reply-wait): Converted from being aliases to being the official procedure names. --- 8sync/systems/actors.scm | 31 +++++++++---------------------- tests/test-actors.scm | 8 ++++---- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/8sync/systems/actors.scm b/8sync/systems/actors.scm index 919ebb1..40f860c 100644 --- a/8sync/systems/actors.scm +++ b/8sync/systems/actors.scm @@ -68,9 +68,6 @@ message-wants-reply message-ref - send-message send-message-wait - reply-message reply-message-wait - <- <-wait <-reply <-reply-wait ez-run-hive @@ -186,7 +183,10 @@ If key not found and DFLT not provided, throw an error." args))))) -(define (send-message from-actor to-id action . message-body-args) +;;; See: https://web.archive.org/web/20081223021934/http://mumble.net/~jar/articles/oo-moon-weinreb.html +;;; (also worth seeing: http://mumble.net/~jar/articles/oo.html ) + +(define (<- from-actor to-id action . message-body-args) "Send a message from an actor to another actor" (let* ((hive (actor-hive from-actor)) (message (make-message (hive-gen-message-id hive) to-id @@ -194,7 +194,7 @@ If key not found and DFLT not provided, throw an error." (kwarg-list-to-alist message-body-args)))) (8sync (hive-process-message hive message)))) -(define (send-message-wait from-actor to-id action . message-body-args) +(define (<-wait from-actor to-id action . message-body-args) "Send a message from an actor to another, but wait until we get a response" (let* ((hive (actor-hive from-actor)) (abort-to (hive-prompt (actor-hive from-actor))) @@ -209,8 +209,7 @@ If key not found and DFLT not provided, throw an error." ;; not have an exception thrown and instead just have a message with ;; the appropriate '*error* message returned. -(define (reply-message from-actor original-message - . message-body-args) +(define (<-reply from-actor original-message . message-body-args) "Reply to a message" (set-message-replied! original-message #t) (let* ((hive (actor-hive from-actor)) @@ -221,8 +220,7 @@ If key not found and DFLT not provided, throw an error." #:in-reply-to (message-id original-message)))) (8sync (hive-process-message hive new-message)))) -(define (reply-message-wait from-actor original-message - . message-body-args) +(define (<-reply-wait from-actor original-message . message-body-args) "Reply to a messsage, but wait until we get a response" (set-message-replied! original-message #t) (let* ((hive (actor-hive from-actor)) @@ -236,16 +234,6 @@ If key not found and DFLT not provided, throw an error." (abort-to-prompt abort-to from-actor new-message))) -;;; Aliases! -;;; See: http://mumble.net/~jar/articles/oo-moon-weinreb.html -;;; (also worth seeing: http://mumble.net/~jar/articles/oo.html ) - -(define <- send-message) -(define <-wait send-message-wait) -(define <-reply reply-message) -(define <-reply-wait reply-message-wait) - - ;;; Main actor implementation ;;; ========================= @@ -516,8 +504,7 @@ more compact following syntax: ;; Possibly autoreply (if (message-needs-reply message) ;; @@: Should we give *autoreply* as the action instead of *reply*? - (reply-message actor message - #:*auto-reply* #t))) + (<-reply actor message #:*auto-reply* #t))) (define (resolve-actor-to) "Get the actor the message was aimed at" @@ -720,7 +707,7 @@ an integer." (define (bootstrap-message hive to-id action . message-body-args) (wrap - (apply send-message hive to-id action message-body-args))) + (apply <- hive to-id action message-body-args))) diff --git a/tests/test-actors.scm b/tests/test-actors.scm index 36614b2..4c8795a 100644 --- a/tests/test-actors.scm +++ b/tests/test-actors.scm @@ -98,13 +98,13 @@ (define-simple-actor ((pester-rep actor message) (~display "customer> I'm calling customer service about this!\n") - (let ((reply (send-message-wait actor (message-ref message 'who-to-call) - 'field-call))) + (let ((reply (<-wait actor (message-ref message 'who-to-call) + 'field-call))) (if (message-ref reply '*auto-reply* #f) (~display "customer> Whaaaaat? I can't believe I got voice mail!\n") (begin (~format "*customer hears*: ~a\n" (message-ref reply 'msg)) - (let ((reply (reply-message-wait + (let ((reply (<-reply-wait actor reply #:msg "Yes, it didn't work, I'm VERY ANGRY!"))) (if (message-ref reply '*auto-reply* #f) @@ -115,7 +115,7 @@ ((field-call actor message) (~display "good-rep> Hm, another call from a customer...\n") (let ((reply - (reply-message-wait + (<-reply-wait actor message #:msg "Have you tried turning it off and on?"))) (~format "*rep hears*: ~a\n" (message-ref reply 'msg)) -- 2.31.1