Wireshark  2.9.0-477-g68ec514b
The Wireshark network protocol analyzer
field_information.h
1 /* field_information.h
2  *
3  * Wireshark - Network traffic analyzer
4  * By Gerald Combs <gerald@wireshark.org>
5  * Copyright 1998 Gerald Combs
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9 
10 #ifndef FIELD_INFORMATION_H_
11 #define FIELD_INFORMATION_H_
12 
13 #include <config.h>
14 
15 #include <epan/proto.h>
16 
17 #include "data_printer.h"
18 
19 #include <QObject>
20 
21 class FieldInformation : public QObject, public IDataPrintable
22 {
23  Q_OBJECT
24  Q_INTERFACES(IDataPrintable)
25 
26 public:
27 
28  struct HeaderInfo
29  {
30  QString name;
31  QString description;
32  QString abbreviation;
33  bool isValid;
34  enum ftenum type;
35  int parent;
36  int id;
37  };
38 
39  struct Position
40  {
41  int start;
42  int length;
43  };
44 
45  explicit FieldInformation(field_info * fi, QObject * parent = Q_NULLPTR);
46  explicit FieldInformation(proto_node * node, QObject * parent = Q_NULLPTR);
47 
48  bool isValid() const;
49  bool isLink() const ;
50 
51  field_info * fieldInfo() const;
52 
53  HeaderInfo headerInfo() const;
54  Position position() const;
55  Position appendix() const;
56 
57  void setParentField(field_info * fi);
58  int treeType();
59  FieldInformation * parentField() const;
60  bool tvbContains(FieldInformation *);
61  unsigned flag(unsigned mask);
62  const QString moduleName();
63  QString url();
64 
65  const QByteArray printableData();
66 
67 private:
68 
69  field_info * fi_;
70  field_info * parent_fi_;
71 };
72 
73 
74 #endif // FIELD_INFORMATION_H_
75 
76 /*
77  * Editor modelines
78  *
79  * Local Variables:
80  * c-basic-offset: 4
81  * tab-width: 8
82  * indent-tabs-mode: nil
83  * End:
84  *
85  * ex: set shiftwidth=4 tabstop=8 expandtab:
86  * :indentSize=4:tabSize=8:noTabs=true:
87  */
Definition: field_information.h:21
Definition: field_information.h:28
Definition: proto.h:673
Definition: idata_printable.h:22
Definition: field_information.h:39
Definition: proto.h:759