[Zodb-checkins] SVN: ZODB/trunk/src/ZODB/dbmStorage.py Removed untested unsupported dbmstorage fossil.

Jim Fulton jim at zope.com
Thu Sep 2 09:55:21 EDT 2010


Log message for revision 116129:
  Removed untested unsupported dbmstorage fossil.
  

Changed:
  D   ZODB/trunk/src/ZODB/dbmStorage.py

-=-
Deleted: ZODB/trunk/src/ZODB/dbmStorage.py
===================================================================
--- ZODB/trunk/src/ZODB/dbmStorage.py	2010-09-02 13:55:17 UTC (rev 116128)
+++ ZODB/trunk/src/ZODB/dbmStorage.py	2010-09-02 13:55:20 UTC (rev 116129)
@@ -1,117 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE
-#
-##############################################################################
-"""Very Simple dbm-based ZODB storage
-
-This storage provides for use of dbm files as storages that
-don't support versions or Undo.  This may be useful when implementing
-objects like hit counters that don't need or want to participate
-in undo or versions.
-"""
-
-from ZODB.utils import z64
-
-from MappingStorage import MappingStorage
-from BaseStorage import BaseStorage
-import anydbm, os
-
-class anydbmStorage(MappingStorage):
-
-    def __init__(self, filename, flag='r', mode=0666):
-
-
-        BaseStorage.__init__(self, filename)
-        self._index=anydbm.open(filename, flag, mode)
-        self._tindex=[]
-        keys=self._index.keys()
-        if keys: self._oid=max(keys)
-
-    def getSize(self):
-        # This is a little iffy, since we aren't entirely sure what the file is
-        self._lock_acquire()
-        try:
-            try:
-                return (os.stat(self.__name__+'.data')[6] +
-                        os.stat(self.__name__+'.dir')[6]
-                        )
-            except:
-                try: return os.stat(self.__name__)[6]
-                except: return 0
-        finally: self._lock_release()
-
-class gdbmStorage(anydbmStorage):
-
-    def __init__(self, filename, flag='r', mode=0666):
-
-        BaseStorage.__init__(self, filename)
-        import gdbm
-        self._index=index=gdbm.open(filename, flag[:1]+'f', mode)
-        self._tindex=[]
-
-        m=z64
-        oid=index.firstkey()
-        while oid != None:
-            m=max(m, oid)
-            oid=index.nextkey(oid)
-
-        self._oid=m
-
-    def getSize(self):
-        self._lock_acquire()
-        try: return os.stat(self.__name__)[6]
-        finally: self._lock_release()
-
-    def pack(self, t, referencesf):
-
-        self._lock_acquire()
-        try:
-            # Build an index of *only* those objects reachable
-            # from the root.
-            index=self._index
-            rootl=[z64]
-            pop=rootl.pop
-            pindex={}
-            referenced=pindex.has_key
-            while rootl:
-                oid=pop()
-                if referenced(oid): continue
-
-                # Scan non-version pickle for references
-                r=index[oid]
-                pindex[oid]=r
-                p=r[8:]
-                referencesf(p, rootl)
-
-            # Now delete any unreferenced entries:
-
-            deleted=[]
-            oid=index.firstkey()
-            while oid != None:
-                if not referenced(oid): deleted.append(oid)
-                oid=index.nextkey(oid)
-
-            pindex=referenced=None
-
-            for oid in deleted: del index[oid]
-
-            index.sync()
-            index.reorganize()
-
-        finally: self._lock_release()
-
-
-    def _finish(self, tid, user, desc, ext):
-
-        index=self._index
-        for oid, p in self._tindex: index[oid]=p
-        index.sync()



More information about the Zodb-checkins mailing list