diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /ui/qt/capture_file.h | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ui/qt/capture_file.h')
-rw-r--r-- | ui/qt/capture_file.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/ui/qt/capture_file.h b/ui/qt/capture_file.h new file mode 100644 index 00000000..2249f8e0 --- /dev/null +++ b/ui/qt/capture_file.h @@ -0,0 +1,164 @@ +/** @file + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef CAPTURE_FILE_H +#define CAPTURE_FILE_H + +#include <QObject> + +#include <config.h> + +#include <glib.h> + +#include "cfile.h" +#include "capture_event.h" + +class CaptureFile : public QObject +{ + Q_OBJECT +public: + explicit CaptureFile(QObject *parent = 0, capture_file *cap_file = NULL); + ~CaptureFile(); + + capture_file *capFile() const { return isValid() ? cap_file_ : NULL; } + void setCapFile(capture_file *cap_file) { cap_file_ = cap_file; } + + /** Check capture file validity + * + * @return true if the file is open, readable, and tappable. false if the file + * is closed. + */ + bool isValid() const; + + /** Return the full pathname. + * + * @return The entire pathname, converted from the native OS's encoding + * to Unicode if necessary, or a null string if the conversion can't + * be done. + */ + const QString filePath(); + + /** Return the plain filename. + * + * @return The last component of the pathname, including the extension, + * converted from the native OS's encoding to Unicode if necessary, or + * a null string if the conversion can't be done. + */ + const QString fileName(); + + /** Return the plain filename without an extension. + * + * @return The last component of the pathname, without the extension, + * converted from the native OS's encoding to Unicode if necessary, or + * a null string if the conversion can't be done. + */ + const QString fileBaseName(); + + /** Return a string representing the file suitable for use for + * display in the UI in places such as a main window title. + * + * @return One of: + * + * the devices on which the capture was done, if the file is a + * temporary file for a capture; + * + * the last component of the capture file's name, converted + * from the native OS's encoding to Unicode if necessary (and + * with REPLACEMENT CHARACTER inserted if the string can't + * be converted). + * + * a null string, if there is no capture file. + */ + const QString fileDisplayName(); + + /** Return a string representing the file suitable for use in an + * auxiliary window title. + * + * @return One of: + * + * the result of fileDisplayName(), if the file is open; + * + * the result of fileDisplayName() followed by [closing], if + * the file is being closed; + * + * the result of fileDisplayName() followed by [closed], if + * the file has been closed; + * + * [no capture file], if there is no capture file. + */ + const QString fileTitle(); + + /** Return the current packet information. + * + * @return A pointer to the current packet_info struct or NULL. + */ + struct _packet_info *packetInfo(); + + /** Timestamp precision for the current file. + * @return One of the WTAP_TSPREC_x values defined in wiretap/wtap.h, + * or WTAP_TSPREC_UNKNOWN if no file is open. + */ + int timestampPrecision(); + + /** Reload the capture file + */ + void reload(); + + /** Return any set display filter + */ + QString displayFilter() const; + + // XXX This shouldn't be needed. + static capture_file *globalCapFile(); + + gpointer window(); + +signals: + void captureEvent(CaptureEvent); + +public slots: + /** Retap the capture file. Convenience wrapper for cf_retap_packets. + * Application events are processed periodically via update_progress_dlg. + */ + void retapPackets(); + + /** Retap the capture file after the current batch of application events + * is processed. If you call this instead of retapPackets or + * cf_retap_packets in a dialog's constructor it will be displayed before + * tapping starts. + */ + void delayedRetapPackets(); + + /** Cancel any tapping that might be in progress. + */ + void stopLoading(); + + /** Sets the capture file's "stop_flag" member. + * + * @param stop_flag If true, stops the current capture file operation. + */ + void setCaptureStopFlag(bool stop_flag = true); + +private: + static void captureFileCallback(gint event, gpointer data, gpointer user_data); +#ifdef HAVE_LIBPCAP + static void captureCallback(gint event, capture_session *cap_session, gpointer user_data); +#endif + + void captureFileEvent(int event, gpointer data); + void captureSessionEvent(int event, capture_session *cap_session); + const QString &getFileBasename(); + + static QString no_capture_file_; + + capture_file *cap_file_; + QString file_state_; +}; + +#endif // CAPTURE_FILE_H |