def show_results(self, timed_out=False):
# At this point we either have all our output or we give up waiting
self.stop_benchmark()
if self.output_timeout:
gobject.source_remove(self.output_timeout)
if self.more_output:
gobject.source_remove(self.more_output)
upload_col = self.get('upload_column')
download_col = self.get('download_column')
upload_col.set_cell_data_func(self.get('cellrenderertext2'), self.data_func, 1)
download_col.set_cell_data_func(self.get('cellrenderertext3'), self.data_func, 2)
results_n = len(self.results)
if results_n > 0:
graph_entries = []
total_up = 0
total_down = 0
# List all the clients regardless of if we received measurements
for client_ip in self.clients:
client_name = self.clients[client_ip][1]
if client_ip in self.results:
up, down = self.results[client_ip]
else:
up, down = (0,0)
graph_entries.append((client_name, bits_to_mbits(up), bits_to_mbits(down)))
self.get('results_store').append([client_name, up, down])
total_up += up
total_down += down
self.graph = self.create_graph(graph_entries)
self.graph.set_visible(True)
self.dlg.set_visible(False)
results_dlg = self.get('results_dialog')
results_dlg.set_transient_for(self.parent)
results_dlg.show_all()
clients_n = len(self.clients)
self.get('avg_client').set_text(humanize(total_up / clients_n, unit='bps'))
self.get('total_client').set_text(humanize(total_up, unit='bps'))
self.get('avg_server').set_text(humanize(total_down / clients_n, unit='bps'))
self.get('total_server').set_text(humanize(total_down, unit='bps'))
if timed_out:
self.get('warning_hbox').show()
else:
self.get('warning_hbox').hide()
else:
self.error_message(_("Did not get measurements from any of the clients. Check your network settings."))
self.dlg.set_visible(False)