// With update delayer public static IComputedState <T> NewComputed <T>( this IStateFactory factory, IUpdateDelayer updateDelayer, Func <IComputedState <T>, CancellationToken, Task <T> > computer) { var options = new ComputedState <T> .Options() { UpdateDelayer = updateDelayer, }; return(factory.NewComputed(options, computer)); }
public PresenceService( Options?options, IAuthService authService, ISessionResolver sessionResolver, ILogger <PresenceService>?log = null) { options ??= new(); Log = log ?? NullLogger <PresenceService> .Instance; AuthService = authService; SessionResolver = sessionResolver; UpdateDelayer = new UpdateDelayer(new UpdateDelayer.Options() { Delay = options.UpdatePeriod, CancellationDelay = TimeSpan.Zero, }); }
public static TOptions WithUpdateDelayer <TOptions>(this TOptions options, IUpdateDelayer updateDelayer) where TOptions : class, ILiveState.IOptions { options.UpdateDelayerFactory = _ => updateDelayer; return(options); }