public Worker(string name, IpAddress ipAddress, int port, IReplyServer electionReplyServer, string primaryDirectory, IDirectoryPreparerAsync directoryPreparer, IElectionRequester electionRequester, IMasterFileReader masterFileReader, IMasterFileWriter masterFileWriter, IUnitOfWorkFileReader unitOfWorkFileReader, IUnitOfWorkFileWriter unitOfWorkFileWriter, IWorkerLogger logger = null, IWorkProcessor workProcessor = null ) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException("name", string.Format(Messages.StringNullEmptyOrWhiteSpace, "name")); } Connection = new WorkerConnection { Name = name, IpAddress = ipAddress ?? throw new ArgumentNullException("ipAddress", string.Format(Messages.ObjectNull, "ipAddress")), Port = (port > 1024 && port < 65536) ? port : throw new ArgumentNullException("port", Messages.PortNoInRange) }; _DirectoryPreparer = directoryPreparer ?? throw new ArgumentNullException("directoryPreparer", string.Format(Messages.ObjectNull, "directoryPreparer"));; _PrimaryDirectory = primaryDirectory; _ReplyServer = electionReplyServer ?? throw new ArgumentNullException("electionReplyServer", string.Format(Messages.ObjectNull, "electionReplyServer")); _ElectionRequester = electionRequester ?? throw new ArgumentNullException("electionRequester", string.Format(Messages.ObjectNull, "electionRequester")); _MasterFileReader = masterFileReader ?? throw new ArgumentNullException("masterFileReader", string.Format(Messages.ObjectNull, "masterFileReader")); _MasterFileWriter = masterFileWriter ?? throw new ArgumentNullException("masterFileWriter", string.Format(Messages.ObjectNull, "masterFileWriter")); _UnitOfWorkFileReader = unitOfWorkFileReader ?? throw new ArgumentNullException("unitOfWorkFileReader", string.Format(Messages.ObjectNull, "unitOfWorkFileReader")); _UnitOfWorkFileWriter = unitOfWorkFileWriter ?? throw new ArgumentNullException("unitOfWorkFileWriter", string.Format(Messages.ObjectNull, "unitOfWorkFileWriter")); _Logger = logger; if (_Logger == null) { _Logger = new MultiLogger(name, new ConsoleLogger(), new Log4NetLogger(LogManager.GetLogger(Assembly.GetExecutingAssembly(), $"{Connection.Name}.log"))); } _WorkProcessor = workProcessor ?? new WorkProcessor(_Logger); _WorkProcessor.OnComplete += OnWorkComplete; }
public Worker(ITaskConsumer <T> taskQueue, ISubscriberCollection <T> subscribers, IWorkerLogger logger) { m_taskQueue = taskQueue; m_subscribers = subscribers; m_logger = logger; }
public WorkProcessor(IWorkerLogger logger) { _Logger = logger; }