Change "DCE RPC" to "Distributed Computing Environment / Remote Procedure
[obnox/wireshark/wip.git] / timestats.c
index 48bb86cf27312640d56a75e702e2132dfe4972b6..ccbfa16fd00e73bc560c4543cc109e5c68aaffbb 100644 (file)
@@ -4,8 +4,8 @@
  *
  * $Id$
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
  * Copyright 1998 Gerald Combs
  *
  * This program is free software; you can redistribute it and/or
 
 #include "timestats.h"
 
-/*
- * function: get_timedelta
- * delta = b - a
- */
-
-void get_timedelta(nstime_t *delta, const nstime_t *b, const nstime_t *a )
-{
-       delta->secs = b->secs - a->secs;
-       delta->nsecs= b->nsecs - a->nsecs;
-       if(delta->nsecs<0){
-               delta->nsecs+=1000000000;
-               delta->secs--;
-       }
-}
-
-/*
- * function: addtime
- * sum += a
- */
-
-void addtime(nstime_t *sum, const nstime_t *a)
-{
-       sum->secs += a->secs;
-       sum->nsecs += a->nsecs;
-       if(sum->nsecs>1000000000){
-               sum->nsecs-=1000000000;
-               sum->secs++;
-       }
-}
-
-/*
- * function: nstime_to_msec
- * converts nstime to gdouble, time base is milli seconds
- */
-
-gdouble nstime_to_msec(const nstime_t *time)
+/* Initialize a timestat_t struct */
+void
+time_stat_init(timestat_t *stats)
 {
-       return ((double)time->secs*1000 + (double)time->nsecs/1000000);
+       stats->num = 0;
+       stats->min_num = 0;
+       stats->max_num = 0;
+       nstime_set_zero(&stats->min);
+       nstime_set_zero(&stats->max);
+       nstime_set_zero(&stats->tot);
+       stats->variance = 0.0;
 }
 
-/* A Function to update a timestat_t struct with a new sample*/
-
+/* Update a timestat_t struct with a new sample */
 void
 time_stat_update(timestat_t *stats, const nstime_t *delta, packet_info *pinfo)
 {
        if(stats->num==0){
-               stats->max.secs=delta->secs;
-               stats->max.nsecs=delta->nsecs;
+               stats->max=*delta;
                stats->max_num=pinfo->fd->num;
-       }
-
-       if(stats->num==0){
-               stats->min.secs=delta->secs;
-               stats->min.nsecs=delta->nsecs;
+               stats->min=*delta;
                stats->min_num=pinfo->fd->num;
        }
 
        if( (delta->secs<stats->min.secs)
        ||( (delta->secs==stats->min.secs)
          &&(delta->nsecs<stats->min.nsecs) ) ){
-               stats->min.secs=delta->secs;
-               stats->min.nsecs=delta->nsecs;
+               stats->min=*delta;
                stats->min_num=pinfo->fd->num;
        }
 
        if( (delta->secs>stats->max.secs)
        ||( (delta->secs==stats->max.secs)
          &&(delta->nsecs>stats->max.nsecs) ) ){
-               stats->max.secs=delta->secs;
-               stats->max.nsecs=delta->nsecs;
+               stats->max=*delta;
                stats->max_num=pinfo->fd->num;
        }
 
-       stats->tot.secs += delta->secs;
-       stats->tot.nsecs += delta->nsecs;
-       if(stats->tot.nsecs>1000000000){
-               stats->tot.nsecs-=1000000000;
-               stats->tot.secs++;
-       }
+       nstime_add(&stats->tot, delta);
 
        stats->num++;
 }