Пример #1
0
        static void Main(string[] args)
        {
            RxSpySession.Launch();

            var dummy = new [] { "Foo", "Bar", "Baz" };

            while (true)
            {
                var obs1 = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1));
                var obs2 = obs1.Select(x => dummy[x % dummy.Length]);
                var obs3 = obs1.Select(x => "---");

                var obs4   = obs2.Where(x => x.StartsWith("B"));
                var obsErr = Observable.Throw <string>(new InvalidOperationException()).Catch(Observable.Return(""));

                var toJoin = new List <IObservable <string> > {
                    obs3, obs4, obsErr
                };

                var obs5 = Observable.CombineLatest(toJoin);
                var obs6 = obs5.Select(x => string.Join(", ", x));

                //using (obs.Subscribe())
                using (obs6.Subscribe(Console.WriteLine))
                {
                    Console.ReadLine();
                    Console.WriteLine("Disposing of all observables");
                }

                Console.WriteLine("Press enter to begin again");
                Console.ReadLine();
            }
        }
Пример #2
0
 internal QueryLanguageProxy(RxSpySession session, object realQueryLanguage)
     : base(typeof(ContextBoundObject))
 {
     _queryLanguage          = realQueryLanguage;
     _queryLanguageType      = realQueryLanguage.GetType();
     _queryLanguageInterface = _queryLanguageType.GetInterface("IQueryLanguage");
     _session = session;
 }
Пример #3
0
 internal QueryLanguageProxy(RxSpySession session, object realQueryLanguage)
     : base(typeof(ContextBoundObject))
 {
     _queryLanguage = realQueryLanguage;
     _queryLanguageType = realQueryLanguage.GetType();
     _queryLanguageInterface = _queryLanguageType.GetInterface("IQueryLanguage");
     _session = session;
 }
Пример #4
0
        public OperatorObservable(RxSpySession session, IObservable <T> inner, OperatorInfo operatorInfo)
        {
            if (inner == null)
            {
                throw new ArgumentNullException("source");
            }

            _inner        = inner;
            _session      = session;
            _operatorInfo = operatorInfo;

            _session.OnCreated(Event.OperatorCreated(operatorInfo));
        }
Пример #5
0
        public OperatorConnection(RxSpySession session, IObservable <T> parent, OperatorInfo childInfo)
        {
            _session = session;
            _parent  = parent;

            var oobs = parent as IOperatorObservable;

            if (oobs != null)
            {
                _parentInfo = oobs.OperatorInfo;
            }

            _childInfo = childInfo;
        }
Пример #6
0
        static void Main(string[] args)
        {
            // This app is meant as a tool for benchmarking performance when developing features.
            // Run it a few times before starting work on a new feature and then continually as you
            // make changes to monitor your progress.

            var sw = Stopwatch.StartNew();

            Run();

            var warmupRun = sw.Elapsed;

            Console.WriteLine("Warm up round without RxSpy took {0:N4}", warmupRun.TotalSeconds);

            sw.Restart();
            Run();

            var pureRun = sw.Elapsed;

            Console.WriteLine("Stress test without RxSpy took {0:N4}", pureRun.TotalSeconds);

            // Launching with the streamwriter will benchmark serialization performance but not
            // create a huge file on disk.
            var fakeStream   = new StressTestStream();
            var eventHandler = new StressTestEventHandler(new RxSpyStreamWriter(fakeStream));

            sw.Restart();

            using (RxSpySession.Launch(eventHandler))
            {
                Run();
            }

            var spyRun = sw.Elapsed;

            Log("Stress test run took {0:N4}, captured {1:N0} events, {2:N0} observables", spyRun.TotalSeconds, eventHandler.EventCount, eventHandler.ObservableCount);
            Log("Produced {0:N0} bytes of event output", fakeStream.Length);
            Log("RxSpy was {0:N2}x slower", spyRun.TotalSeconds / pureRun.TotalSeconds);

            if (!Debugger.IsAttached)
            {
                Console.ReadLine();
            }
        }
Пример #7
0
 public ConnectableOperatorConnection(RxSpySession session, IConnectableObservable <T> parent, OperatorInfo childInfo)
     : base(session, parent, childInfo)
 {
     _connectableObservable = parent;
 }
 public ConnectableOperatorObservable(RxSpySession session, IConnectableObservable <T> parent, OperatorInfo operatorInfo)
     : base(session, parent, operatorInfo)
 {
     _connectableObservable = parent;
 }