コード例 #1
0
        public CoordinationLockManager(ICoordinationSessionOwner sessionOwner,
                                       ISessionManager sessionManager,
                                       CoordinationEntryCache cache,
                                       ICoordinationStorage storage,
                                       IStoredEntryManager storedEntryManager,
                                       ICoordinationWaitManager waitManager,
                                       ICoordinationExchangeManager exchangeManager,
                                       ILogger <CoordinationLockManager> logger = null)
        {
            if (cache == null)
            {
                throw new ArgumentNullException(nameof(cache));
            }

            if (storage == null)
            {
                throw new ArgumentNullException(nameof(storage));
            }

            if (storedEntryManager == null)
            {
                throw new ArgumentNullException(nameof(storedEntryManager));
            }

            if (waitManager == null)
            {
                throw new ArgumentNullException(nameof(waitManager));
            }

            if (exchangeManager == null)
            {
                throw new ArgumentNullException(nameof(exchangeManager));
            }

            if (sessionOwner == null)
            {
                throw new ArgumentNullException(nameof(sessionOwner));
            }

            if (sessionManager == null)
            {
                throw new ArgumentNullException(nameof(sessionManager));
            }

            _sessionOwner       = sessionOwner;
            _sessionManager     = sessionManager;
            _cache              = cache;
            _storage            = storage;
            _storedEntryManager = storedEntryManager;
            _waitManager        = waitManager;
            _exchangeManager    = exchangeManager;
            _logger             = logger;

            _sessionTerminationSource = new DisposableAsyncLazy <TaskCancellationTokenSource>(
                factory: BuildSessionTerminationSourceAsync,
                disposal: DestroySessionTerminationSourceAsync,
                DisposableAsyncLazyOptions.Autostart | DisposableAsyncLazyOptions.ExecuteOnCallingThread);
        }
コード例 #2
0
        public CoordinationWaitManager(ICoordinationSessionOwner sessionOwner,
                                       ICoordinationStorage storage,
                                       IStoredEntryManager storedEntryManager,
                                       ISessionManager sessionManager,
                                       ICoordinationExchangeManager exchangeManager,
                                       ILockWaitDirectory lockWaitDirectory,
                                       ILogger <CoordinationWaitManager> logger = null)
        {
            if (sessionOwner == null)
            {
                throw new ArgumentNullException(nameof(sessionOwner));
            }

            if (storage == null)
            {
                throw new ArgumentNullException(nameof(storage));
            }

            if (storedEntryManager == null)
            {
                throw new ArgumentNullException(nameof(storedEntryManager));
            }

            if (sessionManager == null)
            {
                throw new ArgumentNullException(nameof(sessionManager));
            }

            if (exchangeManager == null)
            {
                throw new ArgumentNullException(nameof(exchangeManager));
            }

            if (lockWaitDirectory == null)
            {
                throw new ArgumentNullException(nameof(lockWaitDirectory));
            }

            _sessionOwner       = sessionOwner;
            _storage            = storage;
            _storedEntryManager = storedEntryManager;
            _sessionManager     = sessionManager;
            _exchangeManager    = exchangeManager;
            _lockWaitDirectory  = lockWaitDirectory;
            _logger             = logger;
        }