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); }
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; }