示例#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);
        }
示例#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;
 }
示例#3
0
文件: Locks.cs 项目: ThFnsc/JinxDB
        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();
        }
示例#4
0
 private void CleanUp(Transação transação)
 {
     Transações.Remove(transação);
     Locks.Release(transação.Locks);
 }
示例#5
0
 public DBData MinhaVisão(Transação transação)
 {
     return(Dados.Clone().ExecAções(transação.Ações));
 }
示例#6
0
 public void Rollback(Transação transação)
 {
     CleanUp(transação);
 }
示例#7
0
 public void Commit(Transação transação)
 {
     Dados.ExecAções(transação.Ações);
     CleanUp(transação);
     DBUpdated?.Invoke(this, null);
 }
示例#8
0
 public DeadlockException(Transação t1, Transação t2)
 {
     T1 = t1;
     T2 = t2;
 }