Keep track, in Wiretap, of whether the file is compressed, and provide
[metze/wireshark/wip.git] / summary.h
1 /* summary.h
2  * Definitions for capture file summary data
3  *
4  * $Id$
5  *
6  * Wireshark - Network traffic analyzer
7  * By Gerald Combs <gerald@wireshark.org>
8  * Copyright 1998 Gerald Combs
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  */
24
25 #ifndef __SUMMARY_H__
26 #define __SUMMARY_H__
27
28 #ifdef HAVE_LIBPCAP
29 #include "capture.h"
30 #endif
31
32 typedef struct iface_options_tag {
33     char        *name;
34     char        *descr;
35     char        *cfilter;
36     char        *isb_comment;
37     guint64     drops;                          /**< number of packet drops */
38     gboolean    drops_known;    /**< TRUE if number of packet drops is known */
39     gboolean    has_snap;               /**< TRUE if maximum capture packet length is known */
40     int         snap;                           /**< Maximum captured packet length */
41     int         linktype;                       /**< wiretap encapsulation type */
42 } iface_options;
43
44 typedef struct _summary_tally {
45     guint64     bytes;                          /**< total bytes */
46     double      start_time;                     /**< seconds, with msec resolution */
47     double      stop_time;                      /**< seconds, with msec resolution */
48     double      elapsed_time;           /**< seconds, with msec resolution,
49                                            includes time before first packet
50                                            and after last packet */
51     guint32     marked_count;           /**< number of marked packets */
52     guint32     marked_count_ts;        /**< number of time-stamped marked packets */
53     guint64     marked_bytes;           /**< total bytes in the marked packets */
54     double      marked_start;           /**< time in seconds, with msec resolution */
55     double      marked_stop;            /**< time in seconds, with msec resolution */
56     guint32     ignored_count;          /**< number of ignored packets */
57     guint32     packet_count;           /**< total number of packets in trace */
58     guint32     packet_count_ts;        /**< total number of time-stamped packets in trace */
59     guint32     filtered_count;         /**< number of filtered packets */
60     guint32     filtered_count_ts;      /**< number of time-stamped filtered packets */
61     guint64     filtered_bytes;         /**< total bytes in the filtered packets */
62     double      filtered_start;         /**< time in seconds, with msec resolution */
63     double      filtered_stop;          /**< time in seconds, with msec resolution */
64     const char  *filename;
65     gint64              file_length;    /**< file length in bytes */
66     int                 file_type;              /**< wiretap file type */
67     int         iscompressed;           /**< TRUE if file is compressed */
68     int                 encap_type;             /**< wiretap encapsulation type */
69     gboolean    has_snap;               /**< TRUE if maximum capture packet length is known */
70     int                 snap;                   /**< Maximum captured packet length */
71     gboolean    drops_known;    /**< TRUE if number of packet drops is known */
72     guint64     drops;                  /**< number of packet drops */
73     const char  *dfilter;               /**< display filter */
74     gboolean    is_tempfile;
75         /* from SHB, use summary_fill_shb_inf() to get values */
76     gchar       *opt_comment;           /**< comment from SHB block */
77     gchar       *shb_hardware;          /**< Capture HW from SHB block */
78     gchar       *shb_os;                        /**< The OS the capture was made on from SHB block */
79     gchar       *shb_user_appl;         /**< The application that made the capture from SHB block */
80     /* capture related, use summary_fill_in_capture() to get values */
81     GArray      *ifaces;
82     gboolean    legacy;
83 } summary_tally;
84
85 extern void
86 summary_fill_in(capture_file *cf, summary_tally *st);
87
88 #ifdef HAVE_LIBPCAP
89 extern void
90 summary_fill_in_capture(capture_file *cf, capture_options *capture_opts, summary_tally *st);
91 #endif
92 extern void
93 summary_update_comment(capture_file *cf, gchar *comment);
94
95 #endif /* summary.h */
96
97
98
99
100