コード例 #1
0
        private void btnResolve_Click(object sender, RoutedEventArgs e)
        {
            if (txtPeerName.Text.Length > 0)
            {
                // 建立PeerName物件
                PeerName peerName = new PeerName(txtPeerName.Text);

                // 建立PeerNameResolver物件
                PeerNameResolver resolver = new PeerNameResolver();

                // 宣告非同步解析作業正在執行中所觸發之事件
                // 並定義所呼叫的方法為ResolveProgressChangedCallback
                resolver.ResolveProgressChanged += new EventHandler <ResolveProgressChangedEventArgs>(ResolveProgressChangedCallback);

                // 宣告非同步解析作業完成時所觸發之事件
                // 並定義所呼叫的方法為ResolveCompletedCallback
                resolver.ResolveCompleted += new EventHandler <ResolveCompletedEventArgs>(ResolveCompletedCallback);

                lstPeerNameRecord.Items.Clear();
                progressBar.Visibility = Visibility.Visible;

                // 非同步將PNRP Peer Name解析為PNRP Peer Name記錄物件
                resolver.ResolveAsync(peerName, 1);
            }
            else
            {
                MessageBox.Show("Please enter Peer Name.", "Peer Name Resolver", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Br3nda/sfdocsamples
        static void Main(string[] args)
        {
            Console.Write("Peer Classifier to Resolve: ");
            string classifier = Console.ReadLine();

            PeerNameResolver resolver = new PeerNameResolver();

            Console.Write("Please wait. Resolving...");

            try
            {
                //records = resolver.Resolve(new PeerName(classifier, PeerNameType.Unsecured));
                //DisplayResults();

                resolver.ResolveCompleted       += new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);
                resolver.ResolveProgressChanged += new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolveProgressChanged);
                resolver.ResolveAsync(new PeerName(classifier, PeerNameType.Unsecured), Guid.NewGuid());

                while (isRunning)
                {
                    Thread.Sleep(1000);
                    //Console.Write(".");
                }
            }
            catch (PeerToPeerException ex)
            {
                Console.WriteLine("PeerToPeer Exception: {0}", ex.Message);
            }

            Console.WriteLine();
            Console.WriteLine("Press Enter to Exit...");
            Console.ReadLine();
        }
コード例 #3
0
        public PeerNameResolver ResolvePeerName(PeerName peerName)
        {
            var peerNameResolver = new PeerNameResolver();

            peerNameResolver.ResolveCompleted += peerNameResolver_ResolveCompleted;
            peerNameResolver.ResolveAsync(peerName, Guid.NewGuid());
            return(peerNameResolver);
        }
コード例 #4
0
 /// <summary>
 /// Обновление списка пиров, с методом обратного вызова
 /// </summary>
 /// <param name="callback"></param>
 public void ReloadPeers(Constants.VoidCallback callback)
 {
     if (callback != null)
     {
         _callbacks.Add(callback);
     }
     _peerList.Clear();
     _resolver.ResolveAsync(new PeerName("0." + ConnectionConstants.MainPeerName), 1);
 }
コード例 #5
0
        public void FindPeers()
        {
            // Создание распознавателя и добавление обработчиков событий
            PeerNameResolver resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged += resolver_ResolveProgressChanged;
            resolver.ResolveCompleted       += resolver_ResolveCompleted;

            // Преобразование незащищенных имен пиров асинхронным образом
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);
        }
コード例 #6
0
ファイル: Window1.xaml.cs プロジェクト: zilo312/aa
        private void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            // Create resolver and add event handlers
            PeerNameResolver resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged += new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolveProgressChanged);
            resolver.ResolveCompleted       += new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);

            // Prepare for new peers
            PeerList.Items.Clear();
            RefreshButton.IsEnabled = false;

            // Resolve unsecured peers asynchronously
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);
        }
コード例 #7
0
ファイル: PNRPService.cs プロジェクト: Br3nda/sfdocsamples
        public void LookupRegistrationAsync(PeerName peerName, EventHandler <ResolveProgressChangedEventArgs> progressChanged, EventHandler <ResolveCompletedEventArgs> completed)
        {
            if (peerName == null)
            {
                throw new ArgumentException("Cannot have null PeerName");
            }


            _resolver = new PeerNameResolver();

            _resolver.ResolveCompleted       += new EventHandler <ResolveCompletedEventArgs>(completed);
            _resolver.ResolveProgressChanged += new EventHandler <ResolveProgressChangedEventArgs>(progressChanged);
            Debug.WriteLine(string.Format("Resolving: {0}", peerName.ToString()));
            _resolver.ResolveAsync(peerName, peerName);
        }
コード例 #8
0
        internal void Refresh()
        {
            // Создание распознавателя и добавление обработчиков событий
            var resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged += ResolveProgressChanged;
            resolver.ResolveCompleted       += ResolveCompleted;

            // Подготовка к добавлению новых пиров
            _home.ListPeerEntryClear();
            _home.SetRefreshMenuEnabled(false);

            // Преобразование защищенных имен пиров асинхронным образом
            resolver.ResolveAsync(new PeerName("P2P Sample", PeerNameType.Secured), _home.DlgSetting.Id);
        }
コード例 #9
0
        private void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            // create recognizers and event handlers
            PeerNameResolver resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged +=
                resolver_ResolveProgressChanged;
            resolver.ResolveCompleted +=
                resolver_ResolveCompleted;

            PeerList.Items.Clear();
            RefreshButton.IsEnabled = false;

            // parse names async
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);
        }
コード例 #10
0
        public void ResolveAsync()
        {
            // Create resolver.
            resolver = new PeerNameResolver();
            resolver.ResolveProgressChanged +=
                new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolveProgressChanged);
            resolver.ResolveCompleted +=
                new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);

            // Prepare for new peer adding
            Vault.Peers.Clear();

            // Solve peer names async
            //resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);
            //PeerName peername = new PeerName(Application.ProductName, PeerNameType.Unsecured);
            resolver.ResolveAsync(peerName, Cloud.Available);
        }
コード例 #11
0
        public void RefreshPeers()
        {
            // Создание распознавателя и добавление обработчиков событий
            PeerNameResolver resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged +=
                new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolveProgressChanged);
            resolver.ResolveCompleted +=
                new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);

            // Подготовка к добавлению новых пиров
            PeerList.Clear();
            CanRefreshPeers = false;

            // Преобразование незащищенных имен пиров асинхронным образом
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);
        }
コード例 #12
0
        private void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            // Создание распознавателя и добавление обработчиков событий
            PeerNameResolver resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged +=
                new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolveProgressChanged);
            resolver.ResolveCompleted +=
                new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);

            // Подготовка к добавлению новых пиров
            PeerList.Items.Clear();
            RefreshButton.IsEnabled = false;

            // Преобразование незащищенных имен пиров асинхронным образом
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);
        }
コード例 #13
0
        private async void RefreshButton_OnClick(object sender, RoutedEventArgs e)
        {
            // Создание распознавателя и добавление обработчиков событий
            var resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged += Resolver_ResolveProgressChanged;
            resolver.ResolveCompleted       += Resolver_ResolveCompleted;

            // Подготовка новых равноправных участников
            _peerList.Clear();
            RefreshButton.IsEnabled = false;

            // Распознавание незащищенных равноправных участников асинхронным образом
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);

            await Task.Delay(5000); // NOTE: Для вызова события ResolveCompleted после максимум 5 секунд

            resolver.ResolveAsyncCancel(1);
        }
コード例 #14
0
        private void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var resolver = new PeerNameResolver();
                resolver.ResolveProgressChanged += resolver_ResolveProgressChanged;
                resolver.ResolveCompleted       += resolver_ResolveCompleted;

                PeerList.Items.Clear();
                RefreshButton.IsEnabled = false;

                resolver.ResolveAsync(new PeerName("0.P2P Sample"), Cloud.Available, 20);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
                MessageBox.Show(exception.StackTrace);
            }
        }
コード例 #15
0
        private void FindPeers()
        {
            // obj unlocks in OnPeerResolveComplete
            if (_canUpdatePeers)
            {
                _canUpdatePeers = false;
                try
                {
                    _logger.Debug("Searching peers...");

                    _foundPeers.Clear();
                    _peerResolver.ResolveAsync(_peerName, 1);
                }
                catch (Exception ex)
                {
                    _logger.Error(ex, $"Find peers error: {ex.Message}");
                }
            }
        }
コード例 #16
0
        private async void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            // Create resolver and add event handlers
            var resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged += new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolveProgressChanged);
            resolver.ResolveCompleted       += new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);

            // Prepare for new peers
            peerList.Clear();
            RefreshButton.IsEnabled = false;

            // Resolve unsecured peers asynchronously
            resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1);

            await Task.Delay(5000); // to fire the Completed event latest after 5 seconds

            resolver.ResolveAsyncCancel(1);
        }
コード例 #17
0
        public async Task Refresh()
        {
            //creating recognizer and add event handler

            PeerNameResolver resolver = new PeerNameResolver();

            resolver.ResolveProgressChanged +=
                new EventHandler <ResolveProgressChangedEventArgs>(resolver_ResolverProgressChanged);
            resolver.ResolveCompleted +=
                new EventHandler <ResolveCompletedEventArgs>(resolver_ResolveCompleted);

            //prepare to add new peers
            peerList.Clear();

            //lock (obj)
            //{
            //asynchronous transformation not secured peers

            await Task.Run(() => resolver.ResolveAsync(new PeerName("0.P2P Sample"), 1));



            //}
        }