internal WatchStream(IScheduler scheduler, IWatchState state, Target target, FirestoreDb db, CancellationToken cancellationToken)
        {
            _scheduler = scheduler;
            _state     = state;
            _target    = target;
            _db        = db;
            _callbackCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
            _networkCancellationTokenSource  = CancellationTokenSource.CreateLinkedTokenSource(_callbackCancellationTokenSource.Token);

            // TODO: Make these configurable?
            _backoffSettings = new BackoffSettings(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(30), 2.0);
            _backoffJitter   = RetrySettings.RandomJitter;
        }
Beispiel #2
0
        internal WatchStream(IScheduler scheduler, IWatchState state, Target target, FirestoreDb db, CancellationToken cancellationToken)
        {
            _scheduler = scheduler;
            _state     = state;
            _target    = target;
            _db        = db;
            _callbackCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
            _networkCancellationTokenSource  = CancellationTokenSource.CreateLinkedTokenSource(_callbackCancellationTokenSource.Token);
            _listenCallSettings = CallSettings.FromHeader(FirestoreClientImpl.ResourcePrefixHeader, db.RootPath);

            // TODO: Make these configurable?
            _backoffSettings = RetrySettings.FromExponentialBackoff(
                maxAttempts: int.MaxValue,
                initialBackoff: TimeSpan.FromSeconds(1),
                maxBackoff: TimeSpan.FromSeconds(30),
                backoffMultiplier: 2.0,
                retryFilter: _ => false, // Ignored
                backoffJitter: RetrySettings.RandomJitter);
        }
 internal WatchStream(IWatchState state, Target target, FirestoreDb db, CancellationToken cancellationToken)
     : this(SystemScheduler.Instance, state, target, db, cancellationToken)
 {
 }
Beispiel #4
0
 public void SetCurrentState(IWatchState state)
 {
     _currentState = state;
 }
Beispiel #5
0
 public StopWatch()
 {
     _currentState = new StopState(this);
 }