public ProcessManagerDispatcher( DispatchCommand dispatchCommand, IProcessManagerCheckpointRepository <TCheckpoint> checkpointRepository, IProcessManagerFactory processManagerFactory = null, BuildProcessManagerId buildProcessId = null) { _checkpointRepository = checkpointRepository; _dispatchCommand = dispatchCommand; _processManagerFactory = processManagerFactory ?? new DefaultProcessManagerFactory(); _buildProcessId = buildProcessId ?? DefaultBuildProcessManagerId; _byCorrelationId = new Dictionary <Type, Func <object, string> >(); _activeProcesses = new ConcurrentDictionary <string, CheckpointedProcess>(); }
public static ProcessHandler <TProcess, TCheckpoint> For <TProcess, TCheckpoint>( DispatchCommand dispatchCommand, IProcessManagerCheckpointRepository <TCheckpoint> checkpointRepository, IProcessManagerFactory processManagerFactory = null, ProcessHandler <TProcess, TCheckpoint> .BuildProcessManagerId buildProcessId = null) where TProcess : IProcessManager where TCheckpoint : IComparable <string> { return(new ProcessHandler <TProcess, TCheckpoint>( dispatchCommand, checkpointRepository, processManagerFactory, buildProcessId)); }