Update of /project/elephant/cvsroot/elephant/src In directory common-lisp.net:/tmp/cvs-serv13592/src
Modified Files: elephant.lisp Log Message: license, name changes, with-transaction* defaulters
Date: Fri Aug 27 10:32:10 2004 Author: blee
Index: elephant/src/elephant.lisp diff -u elephant/src/elephant.lisp:1.2 elephant/src/elephant.lisp:1.3 --- elephant/src/elephant.lisp:1.2 Thu Aug 26 19:57:52 2004 +++ elephant/src/elephant.lisp Fri Aug 27 10:32:10 2004 @@ -1,11 +1,58 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;; +;;; elephant.lisp -- package definition and utilities +;;; +;;; Initial version 8/26/2004 by Ben Lee +;;; blee@common-lisp.net +;;; +;;; part of +;;; +;;; Elephant: an object-oriented database for Common Lisp +;;; +;;; Copyright (c) 2004 by Andrew Blumberg and Ben Lee +;;; ablumberg@common-lisp.net blee@common-lisp.net +;;; +;;; This program is free software; you can redistribute it +;;; and/or modify it under the terms of the GNU General +;;; Public License as published by the Free Software +;;; Foundation; either version 2 of the License, or (at +;;; your option) any later version. +;;; +;;; This program is distributed in the hope that it will be +;;; useful, but WITHOUT ANY WARRANTY; without even the +;;; implied warranty of MERCHANTABILITY or FITNESS FOR A +;;; PARTICULAR PURPOSE. See the GNU General Public License +;;; for more details. +;;; +;;; The GNU General Public License can be found in the file +;;; LICENSE which should have been distributed with this +;;; code. It can also be found at +;;; +;;; http://www.opensource.org/licenses/gpl-license.php +;;; +;;; You should have received a copy of the GNU General +;;; Public License along with this program; if not, write +;;; to the Free Software Foundation, Inc., 59 Temple Place, +;;; Suite 330, Boston, MA 02111-1307 USA +;;; + (defpackage elephant (:nicknames ele :ele) (:use common-lisp sleepycat) + (:shadow with-transaction with-transaction-retry) (:export *store-controller* *current-transaction* *auto-commit* store-controller open-controller close-controller - with-open-controller + with-open-controller controller-path controller-environment + controller-db controller-root + add-to-root get-from-root persistent persistent-object persistent-metaclass - with-transaction with-transaction-retry) + persistent-collection btree get-value remove-kv + db-transaction-begin db-transaction-abort db-transaction-commit + with-transaction with-transaction-retry + db-env-set-timeout db-env-get-timeout + db-env-set-flags db-env-get-flags + db-env-set-lock-detect db-env-get-lock-detect + ) #+cmu (:import-from :pcl slot-definition-name @@ -36,7 +83,7 @@
(defparameter *store-controller* nil "The store controller which persistent objects talk to.") -(defvar *auto-commit* nil) +(defvar *auto-commit* T)
;; Portable value-weak hash-tables for the cache: when the @@ -57,7 +104,7 @@ (defun get-cache (key cache) #+(or cmu sbcl scl) (let ((val (gethash key cache))) - (if val (values (weak-pointer-value val) t) + (if val (values (ext:weak-pointer-value val) t) (values nil nil))) #-(or cmu sbcl scl) (gethash key cache) @@ -65,8 +112,8 @@
(defun setf-cache (key cache value) #+(or cmu sbcl scl) - (let ((w (make-weak-pointer value))) - (finalize value #'(lambda () (remhash key cache))) + (let ((w (ext:make-weak-pointer value))) + (ext:finalize value #'(lambda () (remhash key cache))) (setf (gethash key cache) w) value) #+allegro