Update of /project/elephant/cvsroot/elephant/src/elephant
In directory clnet:/tmp/cvs-serv12829/src/elephant
Modified Files:
controller.lisp variables.lisp
Log Message:
Minor edits only, checkpointing after unrolling some experiments.
--- /project/elephant/cvsroot/elephant/src/elephant/controller.lisp 2006/09/04 05:01:06 1.13
+++ /project/elephant/cvsroot/elephant/src/elephant/controller.lisp 2006/11/10 01:48:49 1.14
@@ -29,7 +29,6 @@
;; Dynamic tracking of active connections
-
(defparameter *elephant-backends*
'((:bdb (:ele-bdb))
(:clsql (:ele-clsql))
@@ -110,6 +109,54 @@
;; ================================================
;;
+;; Callback hooks for persistent variables
+;;
+
+(defvar *variable-hooks* nil
+ "An alist (specs -> varlist) where varlist is tuple of
+ lisp name, store name (auto) and policy")
+
+;;(defun add-hook (name spec)
+;; (if (assoc spec *variable-hooks* :test #'equal)
+;; (push name (assoc spec *variable-hooks* :test #'equal))
+;; (push (cons spec (list name)) *variable-hooks*)))
+
+;;(defun remove-hook (name spec)
+;; (if (assoc spec *variable-hooks* :test #'equal)
+;; (setf (assoc spec *variable-hooks* :test #'equal)
+;; (remove name (assoc spec *variable-hooks* :test #'equal)))
+;; (error "No hooks declared on ~A" spec)))
+
+;; (defmacro defpvar (name spec (policy &rest accessors) initial-value &optional (documentation nil))
+;; `(progn
+;; (defvar ,name ,initial-value ,documentation)
+;; (add-hook ,name ,spec)
+;; ,(case policy
+;; (:wrap-mutators
+;; `(progn
+;; ,(loop for accessor in accessors do
+;; (let ((gf (ensure-generic-function
+;; `(defmethod ,accessor :after (
+
+;; (defpvar *agencies* (:wrap-mutators
+;; 'add-agent
+;; 'remove-agent
+;; 'clear-agents)
+;; nil
+;; "test")
+
+;; (defmethod add-agent (agent)
+;; (push agent *agencies*))
+
+;; (defmethod remove-agent (agent)
+;; (setf *agencies* (remove agent *agencies*)))
+
+;; (defmethod clear-agents (agent)
+;; (setf *agencies* nil))
+
+
+
+;;
;; Open a Store
;;
--- /project/elephant/cvsroot/elephant/src/elephant/variables.lisp 2006/09/05 03:23:17 1.4
+++ /project/elephant/cvsroot/elephant/src/elephant/variables.lisp 2006/11/10 01:48:49 1.5
@@ -69,7 +69,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Thread-local specials
-(defparameter *store-controller* nil
+(defvar *store-controller* nil
"The store controller which persistent objects talk to.")
;; Specials which control persistent objects