コード例 #1
0
ファイル: VostokHost.cs プロジェクト: ArXa1L/hosting
        public VostokHost([NotNull] VostokHostSettings settings)
        {
            this.settings = settings ?? throw new ArgumentNullException(nameof(settings));

            ShutdownTokenSource = new CancellationTokenSource();

            onApplicationStateChanged = new CachingObservable <VostokApplicationState>();
            ChangeStateTo(VostokApplicationState.NotInitialized);
        }
コード例 #2
0
        public void Subscribe_should_pass_initial_value_to_observer_immediately()
        {
            observable = new CachingObservable <string>("initial");

            observable.Subscribe(observer1);

            observer1.ReceivedCalls().Should().HaveCount(1);
            observer1.Received().OnNext("initial");
        }
コード例 #3
0
        public void TestSetup()
        {
            observable = new CachingObservable <string>();

            observer1 = Substitute.For <IObserver <string> >();
            observer2 = Substitute.For <IObserver <string> >();

            error1 = new Exception();
            error2 = new Exception();
        }
コード例 #4
0
        /// <summary>
        /// Creates a new instance of <see cref="ClusterConfigClient"/> with given <paramref name="settings"/> merged with default settings from <see cref="DefaultSettingsProvider"/> (non-default user settings take priority).
        /// </summary>
        public ClusterConfigClient([NotNull] ClusterConfigClientSettings settings)
        {
            this.settings = settings = ConfigurationMerger.Merge(DefaultSettingsProvider.Settings, settings ?? throw new ArgumentNullException(nameof(settings)));

            log = settings.Log.ForContext <ClusterConfigClient>();

            stateSource               = new TaskCompletionSource <ClusterConfigClientState>(TaskCreationOptions.RunContinuationsAsynchronously);
            stateObservable           = new CachingObservable <ClusterConfigClientState>();
            clientState               = new AtomicInt(State_NotStarted);
            cancellationSource        = new CancellationTokenSource();
            observablePropagationLock = new object();
        }
コード例 #5
0
 public PeriodicObservable(Func <T> valueProvider, TimeSpan period)
 {
     baseObservable = new CachingObservable <T>();
     updateAction   = new PeriodicalAction(() => baseObservable.Next(valueProvider()), _ => {}, () => period);
 }
コード例 #6
0
 public Subscription(CachingObservable <T> observable, IObserver <T> observer)
 {
     this.observable = observable;
     this.observer   = observer;
 }