public static Props GetActorProps <TActor>(ActorSystem system, ActorSetUpOptions options = null) { var props = Props.Create(typeof(TActor)); props = PrepareProps(options, props); return(props); }
public static Props PrepareProps(ActorSetUpOptions options, Props props) { if (options == null) { return(props); } if (options.RouterConfig != null) { props = props.WithRouter(options.RouterConfig); } if (options.SupervisoryStrategy != null) { props = props.WithSupervisorStrategy(options.SupervisoryStrategy); } if (options.Dispatcher != null) { props = props.WithDispatcher(options.Dispatcher); } if (options.MailBox != null) { props = props.WithMailbox(options.MailBox); } return(props); }
/// <summary> /// Requires RemoteActorViewerActorAddress to be in app config in order to call CreateActorInDebugMode //todo : pass address from here /// </summary> public static IActorRef CreateActorInDebugMode <TActorType>(this ActorSystem system, ActorSetUpOptions options = null, Action <object> messageLogger = null, string debugerPrefix = "DEBUG_") where TActorType : ActorBase { var actorName = typeof(TActorType).Name; return(system.ActorOf(Props.Create(() => new MainDebugModeActor(GetActorProps <TActorType>(system, options), debugerPrefix + actorName, messageLogger)), actorName)); }