public JobProcessManager(IFactory factory) { Logger.Log.Instance.Info("JobProcessManager. Constructor. Initialize job chunk provider and dispatcher"); _factory = factory; _jobChunksProvider = factory.CreateChunksProvider(); _jobJobChunkRegistrator = factory.CreateJobChunkRegistrator(); _jobJobChunkRegistrator.JobMapComplete += new Action<object, string>(_jobJobChunkRegistrator_JobMapComplete); _jobJobChunkRegistrator.JobReduceComplete += new Action<object, string>(_jobJobChunkRegistrator_JobReduceComplete); _chunkDispatcher = factory.CreateChunkDispatcher(_jobJobChunkRegistrator); _jobHistoryUpdater = factory.CreateJobHistoryUpdater(); _jobChunkResultWatcher = factory.CreateChunkResultWatcher(); _jobChunkResultWatcher.ChunkResultArrive += new Action<object, ChunkResultMessage>(_chunkResultWatcher_ChunkResultArrive); _jobChunkResultWatcher.StartWatch(); _jobProcessDataCollection = new Dictionary<string, JobProcessData>(); }