diff --git a/csys/csys.lisp b/csys/csys.lisp index ba809bb..8e91236 100644 --- a/csys/csys.lisp +++ b/csys/csys.lisp @@ -183,20 +183,19 @@ ;;;; public shortcuts -(defun send-create (rcvr &rest args &key (domain :csys) (cat :c00) name connect op) +(defun send-create (cell &rest args &key (domain :csys) (cat :c00) name connect op) (let ((args+ (if name `(:addr ,(list domain cat name)) `(:categ ,(list domain cat))))) (setf args (alx:remove-from-plist :domain :cat :name)) - (actor:send rcvr + (actor:send cell (message:create (list domain :create) :data (append args+ args))))) -(defun send-connect (rcvr target &key op (domain :csys)) - (actor:send rcvr +(defun send-connect (cell target &key op (domain :csys)) + (actor:send cell (message:create (list domain :connect) :data (list :target target :op op)))) - ;;;; internal helpers (defun new-msg-head (msg scope) diff --git a/csys/environ.lisp b/csys/environ.lisp index 6fe7230..a003598 100644 --- a/csys/environ.lisp +++ b/csys/environ.lisp @@ -10,7 +10,7 @@ (:util :scopes/util)) (:export #:create #:actions - #:forward)) + #:send-value)) (in-package :scopes/csys/environ) @@ -45,8 +45,14 @@ (dolist (cell (find-cells (cells scope) (message:addr msg))) (actor:send cell msg)) nil) + +;;;; public shortcuts + +(defun send-value (env val &key (domain :csys) (cat :c00) (name "")) + (let ((head (list domain :value cat name))) + (actor:send env (message:create head :data `(:value ,val))))) -;;;; helpers +;;;; internal helpers (defun register-cell (reg addr cell) (destructuring-bind (dom cat &optional (key "")) addr diff --git a/test/test-csys.lisp b/test/test-csys.lisp index 3e56ee5..4ef3933 100644 --- a/test/test-csys.lisp +++ b/test/test-csys.lisp @@ -89,8 +89,7 @@ (rcvr (tc:receiver t:*test-suite*))) (sleep 0.1) ;(tc:expect rcvr (message:create '(:csys :effect :e01) :data '(:value 1))) - ;(environ:send-value 1 :cat :s01 :name "0-1") - (actor:send env (message:create '(:csys :value :s01 "0-1") :data '(:value 1))) - (actor:send env (message:create '(:csys :value :s01 "0-1") :data '(:value 2))) + (environ:send-value env 1 :cat :s01 :name "0-1") + (environ:send-value env 2 :cat :s01 :name "0-1") (sleep 0.1) (core:shutdown)))