ObserveReceiveEventData() public method

public ObserveReceiveEventData ( ) : IObservable
return IObservable
Ejemplo n.º 1
0
            public ConnectionInfoViewModel(ObservablePhotonPeer peer)
            {
                this.MaxSize = "0B";
                this.MaxSent = "0B";
                this.MaxReceived = "0B";
                this.Peer = new WeakReference(peer);
                this.GraphList = new CircularBuffer<UniRx.Tuple<int, int>>(lastWidth);

                var interval = TimeSpan.FromMilliseconds(100);

                var send = peer.ObserveSendOpCustom().Select(x => GetSize(x)).Buffer(interval, Scheduler.ThreadPool);
                var sendReceive = peer.ObserveOperationResponse().Select(x => GetSize(x.OperationResponse.Parameters)).Buffer(interval, Scheduler.ThreadPool);
                var receive = peer.ObserveReceiveEventData().Select(x => GetSize(x.Parameters)).Buffer(interval, Scheduler.ThreadPool);

                subscription = Observable.Zip(send, sendReceive, receive, (x, y, z) => Tuple.Create(x.Sum(), y.Sum() + z.Sum()))
                    .Subscribe(x =>
                    {
                        lock (GraphListLock)
                        {
                            TotalSent += x.Item1;
                            TotalReceived += x.Item2;
                            GraphList.Enqueue(x);
                        }
                    });
            }