public Synchronizer(IOriginReader originReader, IDestinationWriter destinationWriter, IQueuingTaskManager taskManager, ILogger <Synchronizer>?logger) { _originReader = originReader ?? throw new ArgumentNullException(nameof(originReader)); _destinationWriter = destinationWriter ?? throw new ArgumentNullException(nameof(destinationWriter)); _taskManager = taskManager ?? throw new ArgumentNullException(nameof(taskManager)); _logger = logger; }
private ISynchronizer Create(string name, IOriginReader originReader, IDestinationWriter destinationWriter, IQueuingTaskManager taskManager) => new TimedSynchronizer( new RobustSynchronizer( new TracingSynchronizer( new Synchronizer(originReader, destinationWriter, taskManager, _synchronizerLogger), _syncLogger, name)), _syncTimeHolderResolver.Resolve(name));