;;;; cl-scopes/csys/environ - communication system environment (defpackage :scopes/csys/environ (:use :common-lisp) (:local-nicknames (:actor :scopes/core/actor) (:csys :scopes/csys) (:message :scopes/core/message) ) (:export #:forward #:forward-message) ) (in-package :scopes/csys/environ) (defclass scope (csys:scope) (cells :reader cells :initarg :cells :initform (make-hash-table :test #'equal))) ;;;; action handlers, public callables (defun cell-created (msg scope)) (defun forward-message (head scope &key data customer) (forward (message:create head :data data :customer customer) scope)) (defun forward (msg scope) (dolist (cell (find-cells (cells scope) (message:addr msg))) (actor:send cell msg))) ;;;; helpers (defun register-cell (reg addr cell)) (defun find-cells (reg addr))