[Zope-Checkins] CVS: Zope/lib/python/ZODB - DB.py:1.33

Shane Hathaway shane@digicool.com
Mon, 27 Aug 2001 15:25:20 -0400


Update of /cvs-repository/Zope/lib/python/ZODB
In directory cvs.zope.org:/tmp/cvs-serv9785/lib/python/ZODB

Modified Files:
	DB.py 
Log Message:
Got cache_detail and cache_extreme_detail working again and added links
from the debugging information screen.


=== Zope/lib/python/ZODB/DB.py 1.32 => 1.33 ===
     def cacheExtremeDetail(self):
         detail=[]
-        def f(con, detail=detail, rc=sys.getrefcount):
+        conn_no = [0]  # A mutable reference to a counter
+        def f(con, detail=detail, rc=sys.getrefcount, conn_no=conn_no):
+            conn_no[0] = conn_no[0] + 1
+            cn = conn_no[0]
             for oid, ob in con._cache.items():
-                id=oid
+                id=''
                 if hasattr(ob,'__dict__'):
                     d=ob.__dict__
                     if d.has_key('id'):
-                        id="%s (%s)" % (oid, d['id'])
+                        id=d['id']
                     elif d.has_key('__name__'):
-                        id="%s (%s)" % (oid, d['__name__'])
+                        id=d['__name__']
     
                 detail.append({
-                    'oid': id,
+                    'conn_no': cn,
+                    'oid': oid,
+                    'id': id,
                     'klass': "%s.%s" % (ob.__class__.__module__,
                                         ob.__class__.__name__),
                     'rc': rc(ob)-4,
-                    'references': con.references(oid),
+                    'state': ob._p_changed,
+                    #'references': con.references(oid),
                     })
 
         self._connectionMap(f)