mς TγΈEc@sodZdklZdklZdklZdkZdkZdefd„ƒYZdefd„ƒYZdS( sό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. (sz64(sMappingStorage(s BaseStorageNt anydbmStoragecBs tZddd„Zd„ZRS(NtriΆcCs^ti||ƒti|||ƒ|_g|_ |ii ƒ}|ot |ƒ|_ ndS(N( t BaseStoraget__init__tselftfilenametanydbmtopentflagtmodet_indext_tindextkeystmaxt_oid(RRRR R ((t./data/zmath/zope/lib/python/ZODB/dbmStorage.pyRs  cCs„|iƒzhy4ti|idƒdti|idƒdSWn-yti|iƒdSWqqdSqqXnXWd|iƒXdS(Ns.datais.diri(Rt _lock_acquiretoststatt__name__t _lock_release(R((RtgetSize's 4(Rt __module__RR(((RRs t gdbmStoragecBs2tZddd„Zd„Zd„Zd„ZRS(NRiΆcCs˜ti||ƒdk}|i||d d|ƒ|_}g|_ t }|i ƒ}x0|djo"t||ƒ}|i|ƒ}q[W||_dS(Nitf(RRRRtgdbmRRR R tindexR tz64tmtfirstkeytoidtNoneR tnextkeyR(RRRR RRRR((RR6s $   cCs4|iƒzti|iƒdSWd|iƒXdS(Ni(RRRRRR(R((RREs c Cs+|iƒz|i}tg}|i}h} | i}xT|oL|ƒ}||ƒoq:n||} | | |<| d} || |ƒq:Wg}|iƒ}x?|djo1||ƒp|i|ƒn|i|ƒ}q£Wd} }x|D] }||=qσW|iƒ|iƒWd|iƒXdS(Ni(RRR RRtrootltpoptpindexthas_keyt referencedRRtpt referencesftdeletedRRtappendR tsynct reorganizeR( RttR'RR%R!R(RR"R&R#R((RtpackJs<                cCs;|i}x!|iD]\}}|||