csys/environ: add send-value shortcut

This commit is contained in:
Helmut Merz 2026-07-29 13:19:39 +02:00
parent 0a39d11add
commit f3e3af8e0b
3 changed files with 14 additions and 10 deletions

View file

@ -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)

View file

@ -10,7 +10,7 @@
(:util :scopes/util))
(:export #:create
#:actions
#:forward))
#:send-value))
(in-package :scopes/csys/environ)
@ -46,7 +46,13 @@
(actor:send cell msg))
nil)
;;;; helpers
;;;; 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)))))
;;;; internal helpers
(defun register-cell (reg addr cell)
(destructuring-bind (dom cat &optional (key "")) addr

View file

@ -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)))