public void Rollback(Enlistment enlistment) {
            SqliteAdoConnection cnn = _transaction.Connection;
            cnn._enlistment = null;

            try {
                _transaction.Rollback();
                enlistment.Done();
            }
            finally {
                Cleanup(cnn);
            }
        }
        public void Commit(Enlistment enlistment) {
            SqliteAdoConnection cnn = _transaction.Connection;
            cnn._enlistment = null;

            try {
                _transaction.IsValid(true);
                _transaction.Connection._transactionLevel = 1;
                _transaction.Commit();

                enlistment.Done();
            }
            finally {
                Cleanup(cnn);
            }
        }
 private void DoCommitPhase()
 {
     foreach (IEnlistmentNotification enlisted in this.Volatiles)
     {
         var e = new Enlistment();
         enlisted.Commit(e);
         /* Note: e.Done doesn't matter for volatile RMs */
     }
 }
 public void InDoubt(Enlistment enlistment) {
     enlistment.Done();
 }