Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
 private void CleanUp(Transação transação)
 {
     Transações.Remove(transação);
     Locks.Release(transação.Locks);
 }
Exemplo n.º 5
0
 public DBData MinhaVisão(Transação transação)
 {
     return(Dados.Clone().ExecAções(transação.Ações));
 }
Exemplo n.º 6
0
 public void Rollback(Transação transação)
 {
     CleanUp(transação);
 }
Exemplo n.º 7
0
 public void Commit(Transação transação)
 {
     Dados.ExecAções(transação.Ações);
     CleanUp(transação);
     DBUpdated?.Invoke(this, null);
 }
Exemplo n.º 8
0
 public DeadlockException(Transação t1, Transação t2)
 {
     T1 = t1;
     T2 = t2;
 }