示例#1
0
        private void InitializeCarBuffer()
        {
            var wait   = TimeSpan.FromSeconds(2);
            var period = TimeSpan.FromSeconds(5);

            _bufferObservable = Observable.Buffer(_observableCarList, wait, period);
        }
示例#2
0
 public void BufferWithCount_ArgumentChecking()
 {
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), 1, 1));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, 0, 1));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, 1, 0));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), 1));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, 0));
 }
示例#3
0
 public void Buffer_ArgumentChecking()
 {
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), DummyFunc <IObservable <int> > .Instance));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(DummyObservable <int> .Instance, default(Func <IObservable <int> >)));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), DummyObservable <int> .Instance, DummyFunc <int, IObservable <int> > .Instance));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(DummyObservable <int> .Instance, default(IObservable <int>), DummyFunc <int, IObservable <int> > .Instance));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(DummyObservable <int> .Instance, DummyObservable <int> .Instance, default(Func <int, IObservable <int> >)));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), DummyObservable <int> .Instance));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(DummyObservable <int> .Instance, default(IObservable <int>)));
 }
示例#4
0
 public void BufferWithTimeOrCount_ArgumentChecking()
 {
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), TimeSpan.FromTicks(1), 1, DummyScheduler.Instance));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, TimeSpan.FromTicks(-1), 1, DummyScheduler.Instance));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, TimeSpan.FromTicks(1), 0, DummyScheduler.Instance));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(DummyObservable <int> .Instance, TimeSpan.FromTicks(1), 1, null));
     ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), TimeSpan.FromTicks(1), 1));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, TimeSpan.FromTicks(-1), 1));
     ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable <int> .Instance, TimeSpan.FromTicks(1), 0));
 }
示例#5
0
        public void Buffer_Single_ArgumentChecking()
        {
            var someObservable = Observable.Empty <int>();

            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), 1));
            ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(someObservable, 0));
            ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(someObservable, -1));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), 1, 1));
            ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(someObservable, 1, 0));
            ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => Observable.Buffer(someObservable, 0, 1));
        }
示例#6
0
        public void Buffer_Time_ArgumentChecking()
        {
            var scheduler      = new TestScheduler();
            var someObservable = Observable.Empty <int>();

            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), TimeSpan.Zero));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(someObservable, TimeSpan.Zero, null));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), TimeSpan.Zero, scheduler));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), TimeSpan.Zero, TimeSpan.Zero));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(someObservable, TimeSpan.Zero, TimeSpan.Zero, null));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Buffer(default(IObservable <int>), TimeSpan.Zero, TimeSpan.Zero, scheduler));
        }
示例#7
0
        public static ExpressionDefinition BufferWithTime()
        {
            Expression <Func <IObservable <string>,
                              IObservable <string> > > expression
                = a => a.Buffer(TimeSpan.FromSeconds(3)).
                  Select(i => string.Join(",", i.ToArray()));

            var @operator = ReflectionHelper.GetMethod(
                () => Observable.Buffer <string>(null, TimeSpan.FromSeconds(3)));

            return(ExpressionDefinition.Create(expression,
                                               new ExpressionSettings {
                Operator = @operator, Name = "BufferWithTime"
            }));
        }
 public static IObservable <IList <T> > Buffer <T>(
     this IObservable <T> source, TimeSpan?timeSpan, int?count, IScheduler scheduler)
 {
     if (!timeSpan.HasValue)
     {
         return(count.HasValue ? source.Buffer(count.Value) : source.ToList());
     }
     // Need to consider timespan
     if (!count.HasValue) // No count either
     {
         return(scheduler is null?source.Buffer(timeSpan.Value) : source.Buffer(timeSpan.Value, scheduler));
     }
     return(scheduler is null
         ? source.Buffer(timeSpan.Value, count.Value)
         : Observable.Buffer(source, timeSpan.Value, count.Value, scheduler));
 }
        public TestState()
        {
            Data2Cache  = new SourceCache <TestStateType2, Guid>(i => i.Id);
            Data1Cache  = new SourceCache <TestStateType1, Guid>(i => i.Id);
            Data3Scalar = new Subject <TestStateType1>();

            AtomicStream = Observable.Create <TestStateAtomicStream>(observer =>
            {
                var data1Updates = Observable.Buffer(this.Data1.Connect(), LastAtomicOperationCompleted);
                var data2Updates = Observable.Buffer(this.Data2.Connect(), LastAtomicOperationCompleted);
                var data3Updates = Observable.Buffer(this.Data3.AsChangeSet(), LastAtomicOperationCompleted);

                return(Observable.Zip(LastAtomicOperationCompleted, data1Updates, data2Updates, data3Updates,
                                      (lastOperation, data1, data2, data3) => (Data1Changes: data1, Data2Changes: data2, Data3Changes: data3, LastOperation: lastOperation))
                       .DistinctUntilChanged(x => x.LastOperation)
                       .Select(CreateState)
                       .Subscribe(observer.OnNext, observer.OnError, observer.OnCompleted));
            }).Publish();
        }
示例#10
0
        public MainViewModel()
        {
            ApiBaseUrl     = "";
            ConsumerKey    = "";
            ConsumerSecret = "";

            ProgressVisible = false;
            DataStorage     = new DataStorage();
            BookmarkList    = new BookmarkList();

            ReadabilityClient = new ReadabilityApi.ReadabilityClient(ApiBaseUrl, ConsumerKey, ConsumerSecret);

            Observable.Buffer(Observable.FromEventPattern(this, "ReadingListUpdated").Throttle(TimeSpan.FromSeconds(1)), 1)
            .Subscribe(e =>
            {
                ShellTile tile = ShellTile.ActiveTiles.First();
                if (tile != null && ReadingList.Count > 0)     //Do nothing if there's no tile pinned or there are no items in the list.
                {
                    var firstArticleInReadingList = ReadingList.First().Article;

                    IconicTileData TileData = new IconicTileData()
                    {
                        Title           = "Now Readable",
                        Count           = ReadingListCount,
                        WideContent1    = firstArticleInReadingList.Title,
                        WideContent2    = firstArticleInReadingList.Excerpt.Substring(0, 100),
                        WideContent3    = firstArticleInReadingList.Author,
                        SmallIconImage  = new Uri("Assets/Tiles/SmallIconImage.png", UriKind.Relative),
                        IconImage       = new Uri("Assets/Tiles/IconImage.png", UriKind.Relative),
                        BackgroundColor = System.Windows.Media.Colors.Red
                    };

                    tile.Update(TileData);
                }
            });
        }
 private void Awake()
 {
     if (LightSwitchPoint._commandRefreshEvent == null)
     {
         LightSwitchPoint._commandRefreshEvent = new Subject <Unit>();
         ObservableExtensions.Subscribe <IList <Unit> >(Observable.Where <IList <Unit> >(Observable.TakeUntilDestroy <IList <Unit> >((IObservable <M0>)Observable.Buffer <Unit, Unit>((IObservable <M0>)LightSwitchPoint._commandRefreshEvent, (IObservable <M1>)Observable.ThrottleFrame <Unit>((IObservable <M0>)LightSwitchPoint._commandRefreshEvent, 1, (FrameCountType)0)), (Component)Singleton <Manager.Map> .Instance), (Func <M0, bool>)(_ => !_.IsNullOrEmpty <Unit>())), (Action <M0>)(_ =>
         {
             CommandArea commandArea = Manager.Map.GetCommandArea();
             if (Object.op_Equality((Object)commandArea, (Object)null))
             {
                 return;
             }
             commandArea.RefreshCommands();
         }));
     }
     if (this._linkMapObject)
     {
         LightSwitchData lightSwitchData = LightSwitchData.Get(this._linkID);
         if (Object.op_Inequality((Object)lightSwitchData, (Object)null))
         {
             this._onModeObjects  = lightSwitchData.OnModeObjects;
             this._offModeObjects = lightSwitchData.OffModeObjects;
         }
     }
     this.ActiveChange(this._firstLightEnable);
 }
示例#12
0
 static FPSCounter()
 {
     Utils.UniRx.FPSCounter.Current = (IReadOnlyReactiveProperty <float>)ReactivePropertyExtensions.ToReadOnlyReactiveProperty <float>((IObservable <M0>)Observable.Select <IList <float>, float>((IObservable <M0>)Observable.Buffer <float>((IObservable <M0>)Observable.Select <long, float>((IObservable <M0>)Observable.EveryUpdate(), (Func <M0, M1>)(_ => Time.get_deltaTime())), 5, 1), (Func <M0, M1>)(x => 1f / x.Average())));
 }