Ejemplo n.º 1
0
        protected ConventionProcess()
        {
            var processType = GetType();

            _transitionRouter = new ConventionProcessMessageRouter <TState>(processType);
            _descriptor       = ProcessDescriptor.ScanByConvention(processType);
        }
 public DefaultProcessDependencyFactory(IProcessDescriptor descriptor,
                                        Func <IProcess <TState> > processFactory,
                                        Func <IProcessStateFactory <TState> > processStateFactory)
 {
     RouteMapCreator     = () => MessageRouteMap.New(descriptor);
     ProcessName         = descriptor.ProcessType.BeautyName();
     ProcessFactory      = processFactory;
     ProcessStateFactory = processStateFactory;
 }
Ejemplo n.º 3
0
        public Task RegisterProcess(IProcessDescriptor processDescriptor, string name = null)
        {
            var processHubActorType = typeof(ProcessHubActor <>).MakeGenericType(processDescriptor.StateType);
            var processHubActor     = CreateDIActor(processHubActorType, name ?? processDescriptor.ProcessType.BeautyName() + "_Hub");

            var processStateHubType = typeof(ProcessStateHubActor <>).MakeGenericType(processDescriptor.StateType);
            //will be consumed in ProcessActor
            var processStateHubActor = CreateDIActor(processStateHubType, processDescriptor.StateType.BeautyName() + "_Hub");

            var processor = new ActorAskMessageProcessor <IProcessCompleted>(processHubActor);


            foreach (var acceptMsg in processDescriptor.AcceptMessages)
            {
                _processCatalog.Add(acceptMsg.MessageType, processor);
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 4
0
 public static IMessageRouteMap New(IProcessDescriptor descriptor, string name = null)
 {
     return(new CustomRouteMap(name ?? $"map for {descriptor.GetType().Name}", r => r.RegisterProcess(descriptor)));
 }