internal Transação NovaTransação() { Transação transação = new Transação(this, Convert.ToBase64String(BitConverter.GetBytes(random.Next())).Substring(0, 6), Logger); Transações.Add(transação); return(transação); }
public Lock(int id, bool shared, Action <Lock> onOK, Locks locks, Transação owner) { Id = id; Shared = shared; OnOK = onOK; Executed = false; this.locks = locks; Owner = owner; }
public void Request(int id, bool shared, Action <Lock> onOK, Transação owner) { var nLock = new Lock(id, shared, onOK, this, owner); locks.Add(nLock); owner.Locks.Add(nLock); LocksChanged?.Invoke(this, null); CheckLocks(); }
private void CleanUp(Transação transação) { Transações.Remove(transação); Locks.Release(transação.Locks); }
public DBData MinhaVisão(Transação transação) { return(Dados.Clone().ExecAções(transação.Ações)); }
public void Rollback(Transação transação) { CleanUp(transação); }
public void Commit(Transação transação) { Dados.ExecAções(transação.Ações); CleanUp(transação); DBUpdated?.Invoke(this, null); }
public DeadlockException(Transação t1, Transação t2) { T1 = t1; T2 = t2; }