protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);

            var channel = new EtwVisualRxChannel();

            VisualRxPublishersSettings.Default.TryAddChannels(channel);
            VisualRxPublishersSettings.Default.AddFilter((key, provider) => true);
            VisualRxPublishersSettings.Default.MachineInfo = Environment.MachineName;
        }
Exemple #2
0
        public async Task ETW_Send_Receive_Test()
        {
            const int count = 4;

            // arrange
            using (var listener = new VisualRxEtwListener())
            {
                // listen
                IObservable <Marble> listenStream =
                    await listener.GetStreamAsync();

                listenStream = listenStream.Replay().RefCount();
                ITestableObserver <Marble> listenObserver =
                    _scheduler.CreateObserver <Marble>();
                listenStream
                .Subscribe(listenObserver);

                // publish
                var channel = new EtwVisualRxChannel();
                await PublisherSetting.TryAddChannels(channel);

                PublisherSetting.AddFilter((key, provider) => true);

                // act
                var xs = Observable.Range(0, count, _scheduler)
                         .Select(i => new Person(i))
                         .Monitor("Test", PublisherSetting);
                xs.Subscribe(v => { });
                _scheduler.AdvanceBy(5);

                await listenStream
                //.Do(v => { },() => { })
                .Take(count + 1);

                for (int i = 0; i < count; i++)
                {
                    Assert.AreEqual(NotificationKind.OnNext,
                                    listenObserver.Messages[i].Value.Kind);
                    var marble = listenObserver.Messages[i].Value.Value;
                    var p      = marble.GetValue <Person>();
                    Assert.AreEqual(i, p.Id);
                }
                Marble lastMarble = listenObserver.Messages[count].Value.Value;
                Assert.AreEqual(NotificationKind.OnCompleted,
                                lastMarble.Kind);
            }
        }