mò /á¸Ec@s9dZdkZdfd„ƒYZdfd„ƒYZdS(sHProvide support for linking an external transaction manager with Zope's NtTMcBsqtZdZeZd„Zd„Zd„ZeZd„Z d„Z d„Z d„Z d„Z e Zd „ZRS( sÒMix-in class that provides transaction management support A sub class should call self._register() whenever it performs any transaction-dependent operations (e.g. sql statements). The sub class will need to override _finish, to finalize work, _abort, to roll-back work, and perhaps _begin, if any work is needed at the start of a transaction. A subclass that uses locking during transaction commit must defined a sortKey() method. cCsdS(N((tself((t0/data/zmath/zope/lib/python/Shared/DC/ZRDB/TM.pyt_begin"scCsU|ipGy9tiƒit|ƒƒ|iƒd|_d|_WqQqQXndS(Nii(Rt _registeredt transactiontgettregistert SurrogateRt _finalize(R((Rt _register$s    cGsdS(N((Rtignored((Rt tpc_begin-scCs|iiƒdS(N(Rtdbtcommit(R((Rt_finish0scCs|iiƒdS(N(RR trollback(R((Rt_abort3scGs d|_dS(Ni(RR (RR ((Rttpc_vote6scGs-|ioz|iƒWdd|_XndS(Ni(RR RR(RR ((Rt tpc_finish9s cGsz|iƒWdd|_XdS(Ni(RRR(RR ((Rtabort?scGsdS(s The sortKey method is used for recent ZODB compatibility which needs to have a known commit order for lock acquisition. Most DA's talking to RDBMS systems do not care about commit order, so return the constant 1 iN((RR ((RtsortKeyEs(t__name__t __module__t__doc__tNoneRRR R RRRRRRt tpc_abortR(((RRs        RcBstZd„ZRS(NcCs%||_|i|_|i|_dS(N(R Rt_p_jarRt__inform_commit__Rt__inform_abort__(RR ((Rt__init__Os  (RRR(((RRMs(RRRR(RRR((Rt?s ;