Пример #1
0
        public void TimeAutoStart()
        {
            TestScheduler scheduler = new TestScheduler();
            var           xs        = scheduler.CreateHotObservable(s_testData);

            var timeSource = new TimeSource <long>(xs, x => new DateTimeOffset(x, TimeSpan.Zero));
            // Note: no start time specified, result should be the same as 101

            var counts = from window in timeSource.Window(TimeSpan.FromTicks(5), timeSource.Scheduler)
                         from Count in window.Count()
                         select Count;

            var list = new List <Timestamped <int> >();

            counts
            .Timestamp(timeSource.Scheduler)
            .Subscribe(ts => list.Add(ts));

            timeSource.Connect();
            scheduler.AdvanceTo(120);

            Assert.AreEqual(3, list.Count);
            list.AssertEqual(
                Result(106, 2),
                Result(111, 3),
                Result(115, 1));
        }
Пример #2
0
        public void TimeSource101()
        {
            TestScheduler scheduler = new TestScheduler();
            var xs = scheduler.CreateHotObservable(s_testData);

            var timeSource = new TimeSource<long>(xs, x => new DateTimeOffset(x, TimeSpan.Zero));
            timeSource.StartTime = new DateTimeOffset(101, TimeSpan.Zero);

            var counts = from window in timeSource.Window(TimeSpan.FromTicks(5), timeSource.Scheduler)
                         from Count in window.Count()
                         select Count;

            var list = new List<Timestamped<int>>();
            counts
                .Timestamp(timeSource.Scheduler)
                .Subscribe(ts => list.Add(ts));

            timeSource.Connect();
            scheduler.AdvanceTo(120);

            Assert.AreEqual(3, list.Count);
            list.AssertEqual(
                Result(106, 2),
                Result(111, 3),
                Result(115, 1));
        }
Пример #3
0
        public void TimeSource100()
        {
            TestScheduler scheduler = new TestScheduler();
            var           xs        = scheduler.CreateHotObservable(s_testData);

            var timeSource = new TimeSource <long>(xs, x => new DateTimeOffset(x, TimeSpan.Zero));

            timeSource.StartTime = new DateTimeOffset(100, TimeSpan.Zero);

            var counts = from window in timeSource.Window(TimeSpan.FromTicks(5), timeSource.Scheduler)
                         from Count in window.Count()
                         select Count;

            var list = new List <Timestamped <int> >();

            counts
            .Timestamp(timeSource.Scheduler)
            .Subscribe(ts => list.Add(ts));

            timeSource.Connect();
            scheduler.AdvanceTo(120);

            Assert.AreEqual(4, list.Count);
            list.AssertEqual(
                Result(105, 2),
                Result(110, 3),
                Result(115, 0),
                Result(115, 1));
        }
Пример #4
0
        static void Main()
        {
            IObservable<EtwNativeEvent> etl = EtwObservable.FromFiles(@"..\..\..\HTTP_Server.etl");

            var timeSource = new TimeSource<EtwNativeEvent>(etl, e => e.TimeStamp);

            var countPerWindow = from window in timeSource.Window(TimeSpan.FromSeconds(5), timeSource.Scheduler)
                    from Count in window.Count()
                    select Count;

            var withTime = countPerWindow.Timestamp(timeSource.Scheduler);

            withTime.Subscribe(ts => Console.WriteLine("{0} {1}", ts.Timestamp, ts.Value));
            timeSource.Connect();

            Console.ReadLine();
        }
Пример #5
0
        static void Main()
        {
            IObservable <EtwNativeEvent> etl = EtwObservable.FromFiles(@"HTTP_Server.etl");

            var timeSource = new TimeSource <EtwNativeEvent>(etl, e => e.TimeStamp);

            var countPerWindow = from window in timeSource.Window(TimeSpan.FromSeconds(5), timeSource.Scheduler)
                                 from Count in window.Count()
                                 select Count;

            var withTime = countPerWindow.Timestamp(timeSource.Scheduler);

            using (withTime.Subscribe(ts => Console.WriteLine("{0} {1}", ts.Timestamp, ts.Value)))
            {
                timeSource.Connect();

                Console.ReadLine();
            }
        }