update epan/dissectors/pidl/drsuapi/drsuapi.idl from samba
[wireshark-sm.git] / ui / qt / sctp_graph_dialog.h
blob06cfdd94ce9c0992e303fa471fd641a4120f92d2
1 /** @file
3 * Wireshark - Network traffic analyzer
4 * By Gerald Combs <gerald@wireshark.org>
5 * Copyright 1998 Gerald Combs
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 */
10 #ifndef SCTP_GRAPH_DIALOG_H
11 #define SCTP_GRAPH_DIALOG_H
13 #include <config.h>
15 #include "cfile.h"
17 #include <QDialog>
19 namespace Ui {
20 class SCTPGraphDialog;
23 class QCPAbstractPlottable;
24 class QCustomPlot;
26 struct _sctp_assoc_info;
28 struct chunk_header {
29 uint8_t type;
30 uint8_t flags;
31 uint16_t length;
34 struct data_chunk_header {
35 uint8_t type;
36 uint8_t flags;
37 uint16_t length;
38 uint32_t tsn;
39 uint16_t sid;
40 uint16_t ssn;
41 uint32_t ppi;
44 struct gaps {
45 uint16_t start;
46 uint16_t end;
49 struct sack_chunk_header {
50 uint8_t type;
51 uint8_t flags;
52 uint16_t length;
53 uint32_t cum_tsn_ack;
54 uint32_t a_rwnd;
55 uint16_t nr_of_gaps;
56 uint16_t nr_of_dups;
57 struct gaps gaps[1];
60 struct nr_sack_chunk_header {
61 uint8_t type;
62 uint8_t flags;
63 uint16_t length;
64 uint32_t cum_tsn_ack;
65 uint32_t a_rwnd;
66 uint16_t nr_of_gaps;
67 uint16_t nr_of_nr_gaps;
68 uint16_t nr_of_dups;
69 uint16_t reserved;
70 struct gaps gaps[1];
74 class SCTPGraphDialog : public QDialog
76 Q_OBJECT
78 public:
79 explicit SCTPGraphDialog(QWidget *parent = 0, const _sctp_assoc_info *assoc = NULL,
80 capture_file *cf = NULL, int dir = 0);
81 ~SCTPGraphDialog();
82 static void save_graph(QDialog *dlg, QCustomPlot *plot);
84 public slots:
85 void setCaptureFile(capture_file *cf) { cap_file_ = cf; }
87 private slots:
88 void on_pushButton_clicked();
90 void on_pushButton_2_clicked();
92 void on_pushButton_3_clicked();
94 void on_pushButton_4_clicked();
96 void graphClicked(QCPAbstractPlottable* plottable, int, QMouseEvent* event);
98 void on_saveButton_clicked();
100 void on_relativeTsn_stateChanged(int arg1);
102 private:
103 Ui::SCTPGraphDialog *ui;
104 uint16_t selected_assoc_id;
105 capture_file *cap_file_;
106 int frame_num;
107 int direction;
108 QVector<double> xt, yt, xs, ys, xg, yg, xd, yd, xn, yn;
109 QVector<uint32_t> ft, fs, fg, fd, fn;
110 QVector<QString> typeStrings;
111 bool relative;
112 int type;
114 void drawGraph(const _sctp_assoc_info* selected_assoc = NULL);
115 void drawTSNGraph(const _sctp_assoc_info* selected_assoc);
116 void drawSACKGraph(const _sctp_assoc_info* selected_assoc);
117 void drawNRSACKGraph(const _sctp_assoc_info* selected_assoc);
120 #endif // SCTP_GRAPH_DIALOG_H