diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-06-29 22:38:29 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-06-30 05:38:57 +0000 |
commit | ad1391aa4e0f8610d756dadf9bb21b35d5f00a96 (patch) | |
tree | 1af5a13c4a1f340f16736896d50bfcb44b0676ab /ui/capture.h | |
parent | 7d1a93f7fdf93e00b16335acc8f9277bbb25ae8f (diff) |
Move capture.[ch] to libui.
Change-Id: I86e7e781cc9e14abab0374a18b95438529b046f0
Reviewed-on: https://code.wireshark.org/review/2711
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'ui/capture.h')
-rw-r--r-- | ui/capture.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/ui/capture.h b/ui/capture.h new file mode 100644 index 0000000000..6aaa5035be --- /dev/null +++ b/ui/capture.h @@ -0,0 +1,108 @@ +/* capture.h + * Definitions for packet capture windows + * + * 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 + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +/* This file should only be included if libpcap is present */ + +#ifndef __CAPTURE_H__ +#define __CAPTURE_H__ + +/** @file + * Capture related things. + */ + +#include "capture_opts.h" +#include <capchild/capture_session.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +typedef enum { + capture_cb_capture_prepared, + capture_cb_capture_update_started, + capture_cb_capture_update_continue, + capture_cb_capture_update_finished, + capture_cb_capture_fixed_started, + capture_cb_capture_fixed_continue, + capture_cb_capture_fixed_finished, + capture_cb_capture_stopping, + capture_cb_capture_failed +} capture_cbs; + +typedef void (*capture_callback_t) (gint event, capture_session *cap_session, + gpointer user_data); + +extern void +capture_callback_add(capture_callback_t func, gpointer user_data); + +extern void +capture_callback_remove(capture_callback_t func); + +/** + * Start a capture session. + * + * @param capture_opts the numerous capture options + * @param cap_session a handle for the capture session + * @param update_cb update screen + * @return TRUE if the capture starts successfully, FALSE otherwise. + */ +extern gboolean +capture_start(capture_options *capture_opts, capture_session *cap_session, void(*update_cb)(void)); + +/** Stop a capture session (usually from a menu item). */ +extern void +capture_stop(capture_session *cap_session); + +/** Restart the current captured packets and start again. */ +extern void +capture_restart(capture_session *cap_session); + +/** Terminate the capture child cleanly when exiting. */ +extern void +capture_kill_child(capture_session *cap_session); + +struct if_stat_cache_s; +typedef struct if_stat_cache_s if_stat_cache_t; + +/** + * Start gathering capture statistics for the interfaces specified. + * @param capture_opts A structure containing options for the capture. + * @return A pointer to the statistics state data. + */ +extern if_stat_cache_t * capture_stat_start(capture_options *capture_opts); + +/** + * Fetch capture statistics, similar to pcap_stats(). + */ +struct pcap_stat; /* Stub in case we don't or haven't yet included pcap.h */ +extern gboolean capture_stats(if_stat_cache_t *sc, char *ifname, struct pcap_stat *ps); + +/** + * Stop gathering capture statistics. + */ +void capture_stat_stop(if_stat_cache_t *sc); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* capture.h */ |