# # patch "ChangeLog" # from [57d565f3778c1c511828115215cbd8fd7e2555d7] # to [08edad29c22077ab1880b0472c28ff9b719b5ba2] # # patch "netsync.cc" # from [04871c9d35e04f3f8ed0d10c6311c643c5f79df1] # to [98bb94f9c22a40bc6f826cad62737a7f9bfb9a04] # # patch "ui.cc" # from [f0e2ff249a83fa8a210f961d773ca560bb281592] # to [bf5397526968d5189f12fef56ecd4990f622beef] # --- ChangeLog +++ ChangeLog @@ -1,3 +1,9 @@ +2005-04-15 Sebastian Spaeth + + * ui.cc: print byte progress to one decimal place + in k or M. + * netsync.cc: update dot ticker every 1024 bytes. + 2005-04-15 Matt Johnston * change_set.cc (confirm_proper_tree): use bitsets rather than maps --- netsync.cc +++ netsync.cc @@ -2897,8 +2897,8 @@ session sess(role, client_voice, collections, all_collections, app, address(), server.get_socketfd(), timeout); - sess.byte_in_ticker.reset(new ticker("bytes in", ">", 256, true)); - sess.byte_out_ticker.reset(new ticker("bytes out", "<", 256, true)); + sess.byte_in_ticker.reset(new ticker("bytes in", ">", 1024, true)); + sess.byte_out_ticker.reset(new ticker("bytes out", "<", 1024, true)); if (role == sink_role) { sess.cert_in_ticker.reset(new ticker("certs in", "c", 3)); --- ui.cc +++ ui.cc @@ -5,6 +5,7 @@ #include "transforms.hh" #include +#include #include // copyright (C) 2002, 2003 graydon hoare @@ -84,15 +85,28 @@ i != ui.tickers.end(); ++i) { string suffix; - int div = 1; + ostringstream disptick; if (i->second->kilocount && i->second->ticks >= 10000) - { - div = 1024; - suffix = "k"; + { // automatic unit conversion is enabled + float div; + if (i->second->ticks >= 1048576) { + // ticks >=1MB, use Mb + div = 1048576; + suffix = "M"; + } else { + // ticks <1MB, use kb + div = 1024; + suffix = "k"; + } + disptick << std::fixed << std::setprecision(1) << + (i->second->ticks / div); + } else { + // no automatic unit conversion. + disptick << i->second->ticks; } tickline += string(" [") - + i->first + ": " + lexical_cast(i->second->ticks / div) + + i->first + ": " + disptick.str() + suffix + "]"; }