[elephant-cvs] CVS elephant/src/elephant

rread rread at common-lisp.net
Fri Jan 26 14:41:14 UTC 2007


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

Modified Files:
	backend.lisp controller.lisp serializer.lisp 
Log Message:
Repairing the use of the serializer for the SQL side


--- /project/elephant/cvsroot/elephant/src/elephant/backend.lisp	2007/01/25 19:37:53	1.6
+++ /project/elephant/cvsroot/elephant/src/elephant/backend.lisp	2007/01/26 14:41:13	1.7
@@ -39,6 +39,7 @@
 		#:*elephant-code-version*
 		#:store-controller
 		#:open-controller
+		#:database-version
 		#:close-controller
 		#:controller-serialize
 		#:controller-deserialize
@@ -95,6 +96,7 @@
 		#:*elephant-code-version*
 		#:store-controller
 		#:open-controller
+		#:database-version
 		#:close-controller
 		#:controller-serialize
 		#:controller-deserialize
@@ -136,4 +138,4 @@
 		#:register-backend-con-init
 		#:lookup-backend-con-init
 		))
-		
\ No newline at end of file
+		
--- /project/elephant/cvsroot/elephant/src/elephant/controller.lisp	2007/01/25 19:37:53	1.24
+++ /project/elephant/cvsroot/elephant/src/elephant/controller.lisp	2007/01/26 14:41:13	1.25
@@ -112,8 +112,9 @@
   (assert (consp spec))
   (setq *store-controller* (get-controller spec))
   (load-user-configuration *store-controller*)
+  (apply #'open-controller *store-controller* args)
   (initialize-serializer *store-controller*)
-  (apply #'open-controller *store-controller* args))
+  )
 
 (defun close-store (&optional sc)
   "Conveniently close the store controller."
@@ -178,24 +179,7 @@
 	 (setf (controller-serialize sc) 'elephant-serializer2::serialize)
 	 (setf (controller-deserialize sc) 'elephant-serializer2::deserialize))))
 
-;;
-;; VERSIONING
-;;
 
-(defmethod database-version ((sc store-controller))
-   "A version determination for a given store
-   controller that is independant of the serializer as the
-   serializer is dispatched based on the code version which is a
-   list of the form '(0 6 0)"
-  (let ((version (controller-version-cached sc)))
-    (if version version
-	(let ((path (make-pathname :name "VERSION" :defaults (second (controller-spec sc)))))
-	  (if (probe-file path)
-	      (with-open-file (stream path :direction :input)
-		(setf (controller-version-cached sc) (read stream)))
-	      (with-open-file (stream path :direction :output)
-		(setf (controller-version-cached sc)
-		      (write *elephant-code-version* :stream stream))))))))
 
 (defun prior-version-p (v1 v2)
   "Is v1 an equal or earlier version than v2"
@@ -258,6 +242,15 @@
   (intern (string-upcase (cdr name)) (car name)))
 
 
+
+;;
+;; VERSIONING
+;;
+
+(defgeneric database-version (sc)
+  (:documentation "Backends implement this to store the serializer version")
+  )
+
 ;;
 ;; STORE CONTROLLER PROTOCOL
 ;; 
--- /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp	2007/01/21 21:20:04	1.17
+++ /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp	2007/01/26 14:41:13	1.18
@@ -36,19 +36,24 @@
   (with-buffer-streams (out-buf)
   (cl-base64::usb8-array-to-base64-string
    (elephant-memutil::buffer-read-byte-vector 
-    (serialize x out-buf sc)))))
+    (serialize x out-buf sc)))
+ )
+)
 
 (defun convert-buffer-to-base64-string (bs sc)
   (declare (ignore sc))
   (cl-base64::usb8-array-to-base64-string
-   (elephant-memutil::buffer-read-byte-vector bs)))
+   (elephant-memutil::buffer-read-byte-vector bs)
+)
+)
 
 (defun deserialize-from-base64-string (x sc)
   (with-buffer-streams (other)
     (deserialize 
      (elephant-memutil::buffer-write-byte-vector 
       other 
-      (cl-base64::base64-string-to-usb8-array x))
+      (cl-base64::base64-string-to-usb8-array x)
+      )
      sc)
     ))
 




More information about the Elephant-cvs mailing list