GUI peers with network version

This commit is contained in:
SergiySW 2017-08-04 12:39:45 +03:00
commit 9019c98ff6
5 changed files with 27 additions and 24 deletions

View file

@ -1568,13 +1568,13 @@ std::vector <rai::endpoint> rai::peer_container::list ()
return result;
}
std::map<rai::endpoint, unsigned> rai::peer_container::list_version ()
std::map <rai::endpoint, unsigned> rai::peer_container::list_version ()
{
std::map<rai::endpoint, unsigned> result;
std::map <rai::endpoint, unsigned> result;
std::lock_guard <std::mutex> lock (mutex);
for (auto i (peers.begin ()), j (peers.end ()); i != j; ++i)
{
result.insert (std::pair<rai::endpoint, unsigned> (i->endpoint, i->network_version));
result.insert (std::pair <rai::endpoint, unsigned> (i->endpoint, i->network_version));
}
return result;
}

View file

@ -180,7 +180,7 @@ public:
std::vector <peer_information> representatives (size_t);
// List of all peers
std::vector <rai::endpoint> list ();
std::map<rai::endpoint, unsigned> list_version ();
std::map <rai::endpoint, unsigned> list_version ();
// A list of random peers with size the square root of total peer count
std::vector <rai::endpoint> list_sqrt ();
// Get the next peer for attempting bootstrap

View file

@ -1471,7 +1471,7 @@ void rai::rpc_handler::peers ()
{
boost::property_tree::ptree response_l;
boost::property_tree::ptree peers_l;
auto peers_list (node.peers.list_version());
auto peers_list (node.peers.list_version ());
for (auto i (peers_list.begin ()), n (peers_list.end ()); i != n; ++i)
{
std::stringstream text;

View file

@ -1445,8 +1445,8 @@ ledger_refresh (new QPushButton ("Refresh")),
ledger_back (new QPushButton ("Back")),
peers_window (new QWidget),
peers_layout (new QVBoxLayout),
peers_model (new QStringListModel),
peers_view (new QListView),
peers_model (new QStandardItemModel),
peers_view (new QTableView),
bootstrap_label (new QLabel ("IPV6:port \"::ffff:192.168.0.1:7075\"")),
bootstrap_line (new QLineEdit),
peers_bootstrap (new QPushButton ("Initiate Bootstrap")),
@ -1478,8 +1478,13 @@ wallet (wallet_a)
ledger_layout->setContentsMargins (0, 0, 0, 0);
ledger_window->setLayout (ledger_layout);
peers_model->setHorizontalHeaderItem (0, new QStandardItem ("IPv6 address:port"));
peers_model->setHorizontalHeaderItem (1, new QStandardItem ("Net version"));
peers_view->setEditTriggers (QAbstractItemView::NoEditTriggers);
peers_view->verticalHeader ()->hide ();
peers_view->setModel (peers_model);
peers_view->setColumnWidth(0,220);
peers_view->setSortingEnabled(true);
peers_layout->addWidget (peers_view);
peers_layout->addWidget (bootstrap_label);
peers_layout->addWidget (bootstrap_line);
@ -1607,22 +1612,20 @@ wallet (wallet_a)
void rai_qt::advanced_actions::refresh_peers ()
{
auto list (wallet.node.peers.list ());
std::sort (list.begin (), list.end (), [] (rai::endpoint const & lhs, rai::endpoint const & rhs)
peers_model->removeRows (0, peers_model->rowCount ());
auto list (wallet.node.peers.list_version ());
for (auto i (list.begin ()), n (list.end ()); i != n; ++i)
{
return lhs < rhs;
});
QStringList peers;
for (auto i: list)
{
std::stringstream endpoint;
endpoint << i.address ().to_string ();
endpoint << ':';
endpoint << i.port ();
QString qendpoint (endpoint.str().c_str ());
peers << qendpoint;
}
peers_model->setStringList (peers);
std::stringstream endpoint;
endpoint << i->first.address ().to_string ();
endpoint << ':';
endpoint << i->first.port ();
QString qendpoint (endpoint.str().c_str ());
QList <QStandardItem *> items;
items.push_back (new QStandardItem (qendpoint));
items.push_back (new QStandardItem (QString (std::to_string (i->second).c_str ())));
peers_model->appendRow (items);
}
}
void rai_qt::advanced_actions::refresh_ledger ()

View file

@ -81,8 +81,8 @@ namespace rai_qt {
QWidget * peers_window;
QVBoxLayout * peers_layout;
QStringListModel * peers_model;
QListView * peers_view;
QStandardItemModel * peers_model;
QTableView * peers_view;
QLabel * bootstrap_label;
QLineEdit * bootstrap_line;
QPushButton * peers_bootstrap;