Example #1
0
        // 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);
 }