Wireshark  4.3.0
The Wireshark network protocol analyzer
follow_stream_dialog.h
Go to the documentation of this file.
1 
10 #ifndef FOLLOW_STREAM_DIALOG_H
11 #define FOLLOW_STREAM_DIALOG_H
12 
13 #include <config.h>
14 
15 #include <stdio.h>
16 
17 #ifdef HAVE_UNISTD_H
18 #include <unistd.h>
19 #endif
20 
21 #include "file.h"
22 
23 #include "epan/follow.h"
24 
25 #include "wireshark_dialog.h"
26 
27 #include <QFile>
28 #include <QMap>
29 #include <QPushButton>
30 #include <QTextCodec>
31 
32 namespace Ui {
33 class FollowStreamDialog;
34 }
35 
37 {
38  Q_OBJECT
39 
40 public:
41  explicit FollowStreamDialog(QWidget &parent, CaptureFile &cf, int proto_id);
43 
44  void addCodecs(const QMap<QString, QTextCodec *> &codecMap);
45  bool follow(QString previous_filter = QString(), bool use_stream_index = false, unsigned stream_num = 0, unsigned sub_stream_num = 0);
46 
47 protected:
48  bool eventFilter(QObject *obj, QEvent *event);
49  void keyPressEvent(QKeyEvent *event);
50  void captureFileClosed();
51 
52 private slots:
53  void cbCharsetCurrentIndexChanged(int idx);
54  void deltaComboBoxCurrentIndexChanged(int idx);
55  void cbDirectionsCurrentIndexChanged(int idx);
56  void bFindClicked();
57  void leFindReturnPressed();
58 
59  void helpButton();
60  void backButton();
61  void close();
62  void filterOut();
63  void useRegexFind(bool use_regex);
64  void findText(bool go_back = true);
65  void saveAs();
66  void printStream();
67  void fillHintLabel(int pkt = 0);
68  void goToPacketForTextPos(int pkt = 0);
69 
70  void streamNumberSpinBoxValueChanged(int stream_num);
71  void subStreamNumberSpinBoxValueChanged(int sub_stream_num);
72 
73  void buttonBoxRejected();
74 
75 signals:
76  void updateFilter(QString filter, bool force);
77  void goToPacket(int packet_num);
78 
79 private:
80  // Callback for register_tap_listener
81  static void resetStream(void *tapData);
82 
83  void removeStreamControls();
84  void resetStream(void);
85  void updateWidgets(bool follow_in_progress);
86  void updateWidgets() { updateWidgets(false); } // Needed for WiresharkDialog?
87  void showBuffer(QByteArray &buffer, size_t nchars, bool is_from_server,
88  uint32_t packet_num, nstime_t abs_ts, uint32_t *global_pos);
89  void readStream();
90  void readFollowStream();
91 
92  void followStream();
93  void addText(QString text, bool is_from_server, uint32_t packet_num, bool colorize = true);
94 
95  Ui::FollowStreamDialog *ui;
96 
97  QPushButton *b_filter_out_;
98  QPushButton *b_find_;
99  QPushButton *b_print_;
100  QPushButton *b_save_;
101  QPushButton *b_back_;
102 
103  follow_info_t follow_info_;
104  register_follow_t* follower_;
105  QString previous_filter_;
106  QString filter_out_filter_;
107  QString output_filter_;
108  int client_buffer_count_;
109  int server_buffer_count_;
110  int client_packet_count_;
111  int server_packet_count_;
112  uint32_t last_packet_;
113  bool last_from_server_;
114  nstime_t last_ts_;
115  int turns_;
116 
117  bool use_regex_find_;
118 
119  bool terminating_;
120 
121  int previous_sub_stream_num_;
122 };
123 
124 #endif // FOLLOW_STREAM_DIALOG_H
Definition: capture_file.h:21
Definition: follow_stream_dialog.h:37
void captureFileClosed()
Called when the capture file was closed. This can be used to enable or disable widgets according to t...
Definition: follow_stream_dialog.cpp:1173
Definition: wireshark_dialog.h:35
Definition: follow.h:51
Definition: mcast_stream.h:30
Definition: nstime.h:26
Definition: follow.c:23