string getIPandPortWithStableSize(const IPv6_addr & ip, const uint16_t & port) { stringstream ipandport; if (ip.isIPv6()) { int fill = INET6_ADDRSTRLEN - ip.toString().size() - 2 /* "]:" */ - 5 /* port */ ; ipandport << setfill(' ') << setw(fill) << "[" << left << ip << "]:" << setw(5) << port; } else { int fill = INET_ADDRSTRLEN - ip.toString().size() - 1 /* ":" */ - 5 /* port */ ; ipandport << setfill(' ') << setw(fill) << left << ip << ":" << setw(5) << port; } return ipandport.str(); }
/** * Add a flow to the rolelist * * \param m_refTreeModel List to append a new row * \param IP IP address * \param graphlet Graphlet number * \param flIdx Index into flowlist * \param flows Number of flows * \param uniflows Number of uniflows * \param protos Number of involved protocols * \param packets Number of packets * \param bytes Number of total bytes */ void ChostModelColumns::add_row(Glib::RefPtr<Gtk::ListStore> m_refTreeModel, IPv6_addr IP, unsigned int graphlet, unsigned int flIdx, unsigned int flows, unsigned int uniflows, unsigned int protos, unsigned int packets, uint64_t bytes) { Gtk::TreeModel::Row row = *(m_refTreeModel->append()); row[m_col_graphlet] = graphlet; row[m_col_IP] = IP.toString(); row[m_col_flIdx] = flIdx; row[m_col_flows] = flows; row[m_col_uniflows] = uniflows; row[m_col_protos] = protos; row[m_col_packets] = packets; row[m_col_bytes] = bytes; }