[elephant-cvs] CVS elephant/src/elephant

ieslick ieslick at common-lisp.net
Wed Feb 14 17:41:29 UTC 2007


Update of /project/elephant/cvsroot/elephant/src/elephant
In directory clnet:/tmp/cvs-serv23282/src/elephant

Modified Files:
	controller.lisp package.lisp 
Log Message:
User parameter if; deadlock detector param support

--- /project/elephant/cvsroot/elephant/src/elephant/controller.lisp	2007/02/14 04:36:10	1.32
+++ /project/elephant/cvsroot/elephant/src/elephant/controller.lisp	2007/02/14 17:41:29	1.33
@@ -99,6 +99,15 @@
 	dep-list))
 
 ;;
+;; PER-USER INSTALLATION PARAMETERS
+;;
+
+(defun get-user-configuration-parameter (name)
+  (elephant-system::get-config-option
+   name
+   (asdf:find-system :elephant)))
+
+;;
 ;; COMMON STORE CONTROLLER FUNCTIONALITY
 ;;
 
@@ -128,6 +137,35 @@
     (for garbage collection,) et cetera."))
 
 ;;
+;; Per-controller instance caching
+;;
+
+(defun cache-instance (sc obj)
+  "Cache a persistent object with the controller."
+  (declare (type store-controller sc))
+  (ele-with-lock ((instance-cache-lock sc))
+    (setf (get-cache (oid obj) (instance-cache sc)) obj)))
+
+(defun get-cached-instance (sc oid class-name)
+  "Get a cached instance, or instantiate!"
+  (declare (type store-controller sc)
+	   (type fixnum oid))
+  (let ((obj (get-cache oid (instance-cache sc))))
+    (if obj obj
+	;; Should get cached since make-instance calls cache-instance
+	(make-instance (handle-legacy-classes class-name nil)
+		       :from-oid oid :sc sc))))
+
+(defmethod flush-instance-cache ((sc store-controller))
+  "Reset the instance cache (flush object lookups).  Useful 
+   for testing.  Does not reclaim existing objects so there
+   will be duplicate instances with identical functionality"
+  (ele-with-lock ((instance-cache-lock sc))
+    (setf (instance-cache sc)
+	  (make-cache-table :test 'eql))))
+
+
+;;
 ;; Database versioning
 ;;
 
@@ -240,35 +278,6 @@
 (defun string-pair->symbol (name)
   (intern (string-upcase (cdr name)) (car name)))
 
-;;
-;; Per-controller instance caching
-;;
-
-(defun cache-instance (sc obj)
-  "Cache a persistent object with the controller."
-  (declare (type store-controller sc))
-  (ele-with-lock ((instance-cache-lock sc))
-    (setf (get-cache (oid obj) (instance-cache sc)) obj)))
-
-(defun get-cached-instance (sc oid class-name)
-  "Get a cached instance, or instantiate!"
-  (declare (type store-controller sc)
-	   (type fixnum oid))
-  (let ((obj (get-cache oid (instance-cache sc))))
-    (if obj obj
-	;; Should get cached since make-instance calls cache-instance
-	(make-instance (handle-legacy-classes class-name nil)
-		       :from-oid oid :sc sc))))
-
-(defmethod flush-instance-cache ((sc store-controller))
-  "Reset the instance cache (flush object lookups).  Useful 
-   for testing.  Does not reclaim existing objects so there
-   will be duplicate instances with identical functionality"
-  (ele-with-lock ((instance-cache-lock sc))
-    (setf (instance-cache sc)
-	  (make-cache-table :test 'eql))))
-
-
 ;; ================================================================================
 ;;
 ;;                  BACKEND STORE CONTROLLER PROTOCOL
--- /project/elephant/cvsroot/elephant/src/elephant/package.lisp	2007/02/08 23:07:19	1.12
+++ /project/elephant/cvsroot/elephant/src/elephant/package.lisp	2007/02/14 17:41:29	1.13
@@ -36,6 +36,7 @@
 	   #:controller-symbol-cache #:controller-symbol-id-cache
 	   #:controller-fast-symbols-p
 	   #:optimize-storage
+	   #:get-user-configuration-parameter
 
 	   #:upgrade
 




More information about the Elephant-cvs mailing list