public static StrategyDecision New( Directive processDirective, MessageDirective messageDirective, IEnumerable <ProcessId> affects, Time pause ) => new StrategyDecision(processDirective, messageDirective, affects, pause);
public StrategyDecision( Directive processDirective, MessageDirective messageDirective, IEnumerable <ProcessId> affects, Time pause ) { ProcessDirective = processDirective; MessageDirective = messageDirective; Affects = affects; Pause = pause; }
public static State <Directive, Option <MessageDirective> > Otherwise(MessageDirective directive) => Otherwise(_ => directive);
internal static State <Directive, Option <MessageDirective> > When(MessageDirective directive, Directive dir) => When(_ => directive, dir);
public static State <Directive, Option <MessageDirective> > When <TDirective>(MessageDirective directive) where TDirective : Directive => When <TDirective>(_ => directive);
/// <summary> /// Provides a message redirection strategy that always uses the same MessageDirective /// regardless of the Directive provided. /// </summary> /// <param name="defaultDirective">Default message directive</param> /// <returns>Strategy computation as a State monad</returns> public static State <StrategyContext, Unit> Redirect(MessageDirective defaultDirective) => Redirect(Otherwise(defaultDirective));