forked from osmocom/wireshark
Compute the loading time and show it in the main status bar.
(Modified code from Didier Gautheron). svn path=/trunk/; revision=29592
This commit is contained in:
parent
5cba22a89b
commit
2cd2eecd0a
21
file.c
21
file.c
|
@ -81,6 +81,7 @@ gboolean auto_scroll_live;
|
|||
static nstime_t first_ts;
|
||||
static nstime_t prev_dis_ts;
|
||||
static guint32 cum_bytes = 0;
|
||||
static gulong computed_elapsed;
|
||||
|
||||
static void cf_reset_state(capture_file *cf);
|
||||
|
||||
|
@ -410,6 +411,23 @@ void outofmemory_cb(gpointer dialog _U_, gint btn _U_, gpointer data _U_)
|
|||
main_window_exit();
|
||||
}
|
||||
|
||||
gulong
|
||||
cf_get_computed_elapsed(void){
|
||||
return computed_elapsed;
|
||||
}
|
||||
static void compute_elapsed(GTimeVal *start_time)
|
||||
{
|
||||
gdouble delta_time;
|
||||
GTimeVal time_now;
|
||||
|
||||
g_get_current_time(&time_now);
|
||||
|
||||
delta_time = (time_now.tv_sec - start_time->tv_sec) * 1e6 +
|
||||
time_now.tv_usec - start_time->tv_usec;
|
||||
|
||||
computed_elapsed = (gulong) (delta_time / 1000); /* ms*/
|
||||
}
|
||||
|
||||
cf_read_status_t
|
||||
cf_read(capture_file *cf)
|
||||
{
|
||||
|
@ -596,6 +614,9 @@ cf_read(capture_file *cf)
|
|||
* don't need after the sequential run-through of the packets. */
|
||||
postseq_cleanup_all_protocols();
|
||||
|
||||
/* compute the time it took to load the file */
|
||||
compute_elapsed(&start_time);
|
||||
|
||||
/* Set the file encapsulation type now; we don't know what it is until
|
||||
we've looked at all the packets, as we don't know until then whether
|
||||
there's more than one type (and thus whether it's
|
||||
|
|
1
file.h
1
file.h
|
@ -256,6 +256,7 @@ cf_status_t cf_filter_packets(capture_file *cf, gchar *dfilter, gboolean force);
|
|||
*/
|
||||
void cf_reftime_packets(capture_file *cf);
|
||||
|
||||
gulong cf_get_computed_elapsed(void);
|
||||
/**
|
||||
* At least one "Refence Time" flag has changed, rescan all packets.
|
||||
*
|
||||
|
|
|
@ -368,6 +368,8 @@ void
|
|||
packets_bar_update(void)
|
||||
{
|
||||
|
||||
gulong computed_elapsed = cf_get_computed_elapsed();
|
||||
|
||||
if(packets_bar) {
|
||||
/* remove old status */
|
||||
if(packets_str) {
|
||||
|
@ -381,8 +383,12 @@ packets_bar_update(void)
|
|||
packets_str = g_strdup_printf(" Packets: %u Displayed: %u Marked: %u Dropped: %u",
|
||||
cfile.count, cfile.displayed_count, cfile.marked_count, cfile.drops);
|
||||
} else {
|
||||
packets_str = g_strdup_printf(" Packets: %u Displayed: %u Marked: %u",
|
||||
cfile.count, cfile.displayed_count, cfile.marked_count);
|
||||
packets_str = g_strdup_printf(" Packets: %u Displayed: %u Marked: %u Time: %02lu:%02lu:%02lu.%03lu",
|
||||
cfile.count, cfile.displayed_count, cfile.marked_count,
|
||||
computed_elapsed/3600000,
|
||||
computed_elapsed%3600000/60000,
|
||||
computed_elapsed%60000/1000,
|
||||
computed_elapsed%1000);
|
||||
}
|
||||
} else {
|
||||
packets_str = g_strdup(" No Packets");
|
||||
|
|
Loading…
Reference in New Issue