コード例 #1
0
ファイル: LockManager.cs プロジェクト: saleyn/agni
 protected override LockTransactionResult DoExecuteLockTransaction(LockSession session, LockTransaction transaction)
 {
     return(Contracts.ServiceClientHub.CallWithRetry <Contracts.ILockerClient, LockTransactionResult>
            (
                (locker) => locker.ExecuteLockTransaction(session.Data, transaction),
                session.ServerHosts
            ));
 }
コード例 #2
0
ファイル: LockManager.cs プロジェクト: saleyn/agni
 protected override bool DoEndLockSession(LockSession session)
 {
     return(Contracts.ServiceClientHub.CallWithRetry <Contracts.ILockerClient, bool>
            (
                (locker) => locker.EndLockSession(session.Data.ID),
                session.ServerHosts
            ));
 }
コード例 #3
0
        public virtual LockSession MakeSession(string path, object shardingID, string description = null, int?maxAgeSec = null)
        {
            var session = new LockSession(this, path, shardingID, description, maxAgeSec);

            m_Sessions[session.ID] = session;

            return(session);
        }
コード例 #4
0
ファイル: LockManager.cs プロジェクト: saleyn/agni
 protected override Task <bool> DoEndLockSessionAsync(LockSession session)
 {
     return(Contracts.ServiceClientHub.CallWithRetryAsync <Contracts.ILockerClient, bool>
            (
                (locker) => locker.Async_EndLockSession(session.Data.ID).AsTaskReturning <bool>(),
                session.ServerHosts
            ));
 }
コード例 #5
0
        private void checkSessionExists(LockSession session)
        {
            var s = this[session.ID];

            if (s == null)
            {
                throw new LockingException(StringConsts.LOCK_SESSION_NOT_ACTIVE_ERROR.Args(session.ID, session.Description));
            }
        }
コード例 #6
0
        public Task <bool> EndLockSessionAsync(LockSession session)
        {
            if (!Running)
            {
                return(Task.FromResult(false));
            }

            if (session == null)
            {
                throw new LockingException(StringConsts.ARGUMENT_ERROR + GetType().Name + ".EndLockSessionAsync(session==null)");
            }

            checkSessionExists(session);

            LockSession d;

            m_Sessions.TryRemove(session.ID, out d);

            return(DoEndLockSessionAsync(session));
        }
コード例 #7
0
        public Task <LockTransactionResult> ExecuteLockTransactionAsync(LockSession session, LockTransaction transaction)
        {
            if (!Running)
            {
                return(Task.FromResult(LockTransactionResult.CallFailed));
            }

            if (session == null || transaction == null)
            {
                throw new LockingException(StringConsts.ARGUMENT_ERROR + GetType().Name + ".ExecuteLockTransactionAsync(session|tran==null)");
            }

            checkSessionExists(session);

            if (m_InstrumentationEnabled)
            {
                m_Stats.IncrementLong(session.Path);
            }

            return(DoExecuteLockTransactionAsync(session, transaction));
        }
コード例 #8
0
        public bool EndLockSession(LockSession session)
        {
            if (!Running)
            {
                return(false);
            }

            if (session == null)
            {
                throw new LockingException(StringConsts.ARGUMENT_ERROR + GetType().Name + ".EndLockSession(session==null)");
            }

            checkSessionExists(session);

            var ended = DoEndLockSession(session);

            LockSession d;

            m_Sessions.TryRemove(session.ID, out d);

            return(ended);
        }
コード例 #9
0
ファイル: NOPLockManager.cs プロジェクト: saleyn/agni
 public bool EndLockSession(LockSession session)
 {
     return(true);
 }
コード例 #10
0
ファイル: NOPLockManager.cs プロジェクト: saleyn/agni
 public LockTransactionResult ExecuteLockTransaction(LockSession session, LockTransaction transaction)
 {
     return(new LockTransactionResult(Guid.Empty, null, LockStatus.TransactionOK, LockErrorCause.Unspecified, null, 0, 0d, null));
 }
コード例 #11
0
ファイル: NOPLockManager.cs プロジェクト: saleyn/agni
 public Task <bool> EndLockSessionAsync(LockSession session)
 {
     return(Task.FromResult(EndLockSession(session)));
 }
コード例 #12
0
ファイル: LockManager.cs プロジェクト: saleyn/agni
 protected override Task <LockTransactionResult> DoExecuteLockTransactionAsync(LockSession session, LockTransaction transaction)
 {
     return(Contracts.ServiceClientHub.CallWithRetryAsync <Contracts.ILockerClient, LockTransactionResult>
            (
                (locker) => locker.Async_ExecuteLockTransaction(session.Data, transaction).AsTaskReturning <LockTransactionResult>(),
                session.ServerHosts
            ));
 }
コード例 #13
0
 protected abstract Task <bool> DoEndLockSessionAsync(LockSession session);
コード例 #14
0
 protected override LockTransactionResult DoExecuteLockTransaction(LockSession session, LockTransaction transaction)
 {
     return(m_Server.ExecuteLockTransaction(session.Data, transaction));
 }
コード例 #15
0
 protected abstract Task <LockTransactionResult> DoExecuteLockTransactionAsync(LockSession session, LockTransaction transaction);
コード例 #16
0
 protected abstract bool DoEndLockSession(LockSession session);
コード例 #17
0
 protected abstract LockTransactionResult DoExecuteLockTransaction(LockSession session, LockTransaction transaction);
コード例 #18
0
 protected override Task <LockTransactionResult> DoExecuteLockTransactionAsync(LockSession session, LockTransaction transaction)
 {
     return(TaskUtils.AsCompletedTask(() => m_Server.ExecuteLockTransaction(session.Data, transaction)));
 }
コード例 #19
0
ファイル: NOPLockManager.cs プロジェクト: saleyn/agni
 public Task <LockTransactionResult> ExecuteLockTransactionAsync(LockSession session, LockTransaction transaction)
 {
     return(Task.FromResult(ExecuteLockTransaction(session, transaction)));
 }
コード例 #20
0
 protected override bool DoEndLockSession(LockSession session)
 {
     return(m_Server.EndLockSession(session.ID));
 }
コード例 #21
0
 protected override Task <bool> DoEndLockSessionAsync(LockSession session)
 {
     return(TaskUtils.AsCompletedTask(() => m_Server.EndLockSession(session.ID)));
 }