コード例 #1
0
        public BandwidthCheckDialog(NetworkType networkType)
        {
            InitializeComponent();
            this.DataContext = this;
            this.NetworkType = networkType;
            Uri    target_uri;
            string uri_key;

            switch (networkType)
            {
            case NetworkType.IPv6:
                uri_key = "BandwidthCheckerV6";
                break;

            case NetworkType.IPv4:
            default:
                uri_key = "BandwidthChecker";
                break;
            }
            if (AppSettingsReader.TryGetUri(uri_key, out target_uri))
            {
                this.checker = new BandwidthChecker(target_uri);
                this.checker.BandwidthCheckCompleted += checker_BandwidthCheckCompleted;
                this.checker.RunAsync();
                this.Status = "帯域測定中";
            }
            else
            {
                this.IsChecking = false;
                this.Status     = "接続先設定が取得できません";
            }
        }
コード例 #2
0
        protected override async void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);
            Uri    target_uri;
            string uri_key;

            switch (NetworkType)
            {
            case NetworkType.IPv6:
                uri_key = "BandwidthCheckerV6";
                break;

            case NetworkType.IPv4:
            default:
                uri_key = "BandwidthChecker";
                break;
            }
            if (AppSettingsReader.TryGetUri(uri_key, out target_uri))
            {
                Status     = "帯域測定中";
                IsChecking = true;
                cancellationTokenSource = new CancellationTokenSource();
                var checker = new BandwidthChecker(target_uri, NetworkType);
                try {
                    var result = await checker.RunAsync(cancellationTokenSource.Token);

                    if (result.Succeeded)
                    {
                        Result = (int)((result.Bitrate / 1000) * 0.8 / 100) * 100;
                        Status = String.Format("帯域測定完了: {0}kbps, 設定推奨値: {1}kbps",
                                               result.Bitrate / 1000,
                                               (int)((result.Bitrate / 1000) * 0.8 / 100) * 100);
                    }
                    else
                    {
                        Status = "帯域測定失敗。接続できませんでした";
                    }
                }
                catch (OperationCanceledException) {
                    Status = "キャンセルされました";
                }
                IsChecking = false;
            }
            else
            {
                this.IsChecking = false;
                this.Status     = "接続先設定が取得できません";
            }
        }
コード例 #3
0
            public CheckBandwidthCommand(SettingViewModel owner)
            {
                this.owner = owner;
                Uri target_uri;

                if (AppSettingsReader.TryGetUri("BandwidthChecker", out target_uri))
                {
                    this.checker = new BandwidthChecker(target_uri);
                    this.checker.BandwidthCheckCompleted += checker_BandwidthCheckCompleted;
                }
                else
                {
                    canExecute = false;
                }
            }
コード例 #4
0
        protected override void OnStart()
        {
            var target_uri = TargetUriV4;

            if (target_uri == null &&
                AppSettingsReader.TryGetUri("PCPPortChecker", out target_uri))
            {
                TargetUriV4 = target_uri;
            }
            if (TargetUriV6 == null &&
                AppSettingsReader.TryGetUri("PCPPortCheckerV6", out target_uri))
            {
                TargetUriV6 = target_uri;
            }
            base.OnStart();
        }
コード例 #5
0
        public void PortCheck()
        {
            var ports = peerCast.OutputListeners
                        .Where(listener => (listener.GlobalOutputAccepts & OutputStreamType.Relay) != 0)
                        .Select(listener => listener.LocalEndPoint.Port);
            Uri target_uri;

            if (!AppSettingsReader.TryGetUri("PCPPortChecker", out target_uri))
            {
                return;
            }
            var checker = new PeerCastStation.UI.PCPPortChecker(peerCast.SessionID, target_uri, ports);

            checker.PortCheckCompleted += checker_PortCheckCompleted;
            checker.RunAsync();
            PortCheckStatus = PortCheckStatus.Checking;
        }
コード例 #6
0
        public BandwidthCheckDialog()
        {
            InitializeComponent();
            this.DataContext = this;
            Uri target_uri;

            if (AppSettingsReader.TryGetUri("BandwidthChecker", out target_uri))
            {
                this.checker = new BandwidthChecker(target_uri);
                this.checker.BandwidthCheckCompleted += checker_BandwidthCheckCompleted;
                this.checker.RunAsync();
                this.Status = "帯域測定中";
            }
            else
            {
                this.IsChecking = false;
                this.Status     = "接続先設定が取得できません";
            }
        }
コード例 #7
0
        protected override void OnStart()
        {
            var target_uri = TargetUriV4;

            if (target_uri == null &&
                AppSettingsReader.TryGetUri("PCPPortChecker", out target_uri))
            {
                TargetUriV4 = target_uri;
            }
            if (TargetUriV6 == null &&
                AppSettingsReader.TryGetUri("PCPPortCheckerV6", out target_uri))
            {
                TargetUriV6 = target_uri;
            }
            base.OnStart();
            CheckAsync()
            .ContinueWith(prev => {
                if (prev.IsCanceled || prev.IsFaulted)
                {
                    return;
                }
                foreach (var result in prev.Result)
                {
                    if (!result.Success)
                    {
                        continue;
                    }
                    if (result.IsOpen)
                    {
                        this.Application.PeerCast.SetPortStatus(result.LocalAddress.AddressFamily, PortStatus.Open);
                    }
                    else
                    {
                        this.Application.PeerCast.SetPortStatus(result.LocalAddress.AddressFamily, PortStatus.Firewalled);
                    }
                }
            });
        }