Update of /project/cl-prevalence/cvsroot/cl-prevalence/src In directory common-lisp.net:/tmp/cvs-serv14563/src
Modified Files: prevalence.lisp serialization.lisp Log Message: more work on integrating sexp serialization added benchmark2
Date: Tue Jun 22 01:37:23 2004 Author: scaekenberghe
Index: cl-prevalence/src/prevalence.lisp diff -u cl-prevalence/src/prevalence.lisp:1.2 cl-prevalence/src/prevalence.lisp:1.3 --- cl-prevalence/src/prevalence.lisp:1.2 Mon Jun 21 08:26:21 2004 +++ cl-prevalence/src/prevalence.lisp Tue Jun 22 01:37:23 2004 @@ -1,6 +1,6 @@ ;;;; -*- mode: Lisp -*- ;;;; -;;;; $Id: prevalence.lisp,v 1.2 2004/06/21 15:26:21 scaekenberghe Exp $ +;;;; $Id: prevalence.lisp,v 1.3 2004/06/22 08:37:23 scaekenberghe Exp $ ;;;; ;;;; Object Prevalence in Common Lisp ;;;; @@ -14,12 +14,12 @@
;;; Public API: Functions and Generic Functions
-(defun make-prevalence-system (directory &key (prevalence-system-class 'prevalence-system)) +(defun make-prevalence-system (directory &key (prevalence-system-class 'prevalence-system) init-args) "Create and return a new prevalence system on directory. When the directory contains a valid snapshot and/or transaction log file, the system will be restored. Optionally specify the prevalence system's class." - (make-instance prevalence-system-class :directory directory)) + (apply #'make-instance prevalence-system-class :directory directory init-args))
(defun make-transaction (function &rest args) "Create and return a new transaction specifying a function name and @@ -87,12 +87,15 @@ :initform nil) (serializer ;; type function :accessor get-serializer + :initarg :serializer :initform #'serialize-xml) (deserializer ;; type function :accessor get-deserializer + :initarg :deserializer :initform #'deserialize-xml) (file-extension ;; type string :accessor get-file-extension + :initarg :file-extension :initform "xml")) (:documentation "Base Prevalence system implementation object"))
Index: cl-prevalence/src/serialization.lisp diff -u cl-prevalence/src/serialization.lisp:1.1.1.1 cl-prevalence/src/serialization.lisp:1.2 --- cl-prevalence/src/serialization.lisp:1.1.1.1 Sun Jun 20 12:13:41 2004 +++ cl-prevalence/src/serialization.lisp Tue Jun 22 01:37:23 2004 @@ -1,6 +1,6 @@ ;;;; -*- mode: Lisp -*- ;;;; -;;;; $Id: serialization.lisp,v 1.1.1.1 2004/06/20 19:13:41 scaekenberghe Exp $ +;;;; $Id: serialization.lisp,v 1.2 2004/06/22 08:37:23 scaekenberghe Exp $ ;;;; ;;;; XML and S-Expression based Serialization for Common Lisp and CLOS ;;;; @@ -45,8 +45,8 @@ (reset serialization-state) (let ((sexp (read stream nil :eof))) (if (eq sexp :eof) - (error "Unexpected end of file while deserializing from s-expression")) - (deserialize-sexp-internal sexp (get-hashtable serialization-state)))) + nil + (deserialize-sexp-internal sexp (get-hashtable serialization-state)))))
(defun make-serialization-state () "Create a reusable serialization state to pass as optional argument to [de]serialize-xml" @@ -102,6 +102,7 @@ ((eq package +keyword-package+) (write-char #: stream)) (t (write-string (package-name package) stream) (write-string "::" stream))) + ;; this is *NOT* correct for unprintable symbols !! (write-string name stream)))
(defmethod serializable-slots ((object structure-object))
cl-prevalence-cvs@common-lisp.net