summaryrefslogtreecommitdiffstats
path: root/ui/time_shift.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /ui/time_shift.h
parentInitial commit. (diff)
downloadwireshark-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/time_shift.h')
-rw-r--r--ui/time_shift.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/ui/time_shift.h b/ui/time_shift.h
new file mode 100644
index 0000000..89dd661
--- /dev/null
+++ b/ui/time_shift.h
@@ -0,0 +1,90 @@
+/** @file
+ *
+ * Submitted by Edwin Groothuis <wireshark@mavetju.org>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef __TIME_SHIFT_H__
+#define __TIME_SHIFT_H__
+
+#include "cfile.h"
+#include <wsutil/nstime.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * XXX - We might want to move all of this somewhere more accessible to
+ * editcap so that we can make its time adjustments more versatile.
+ */
+
+/**
+ * Parse a time string and fill in each component.
+ *
+ * If year, month, and day are non-NULL a full time format "[YYYY-MM-DD] hh:mm:ss[.decimals]"
+ * is allowed. Otherwise an offset format "[-][[hh:]mm:]ss[.decimals]" is allowed.
+ *
+ * @param time_text Time string
+ * @param year Year. May be NULL
+ * @param month Month. May be NULL
+ * @param day Day. May be NULL.
+ * @param negative Time offset is negative. May be NULL if year, month, and day are not NULL.
+ * @param hour Hours. Must not be NULL.
+ * @param minute Minutes. Must not be NULL.
+ * @param second Seconds. Must not be NULL.
+ *
+ * @return NULL on success or an error description on failure.
+ */
+
+const gchar * time_string_parse(const gchar *time_text, int *year, int *month, int *day, gboolean *negative, int *hour, int *minute, long double *second);
+
+/** Shift all packets by an offset
+ *
+ * @param cf Capture file to shift
+ * @param offset_text String representation of the offset.
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_all(capture_file *cf, const gchar *offset_text);
+
+/* Set the time for a single packet
+ *
+ * @param cf Capture file to set
+ * @param packet_num Packet to set
+ * @param time_text String representation of the time
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_settime(capture_file *cf, guint packet_num, const gchar *time_text);
+
+/* Set the time for two packets and extrapolate the rest
+ *
+ * @param cf Capture file to set
+ * @param packet1_num First packet to set
+ * @param time1_text String representation of the first packet time
+ * @param packet2_num Second packet to set
+ * @param time2_text String representation of the second packet time
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_adjtime(capture_file *cf, guint packet1_num, const gchar *time1_text, guint packet2_num, const gchar *time2_text);
+
+/* Reset the times for all packets
+ *
+ * @param cf Capture file to set
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_undo(capture_file *cf);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIME_SHIFT_H__ */