Overte C++ Documentation
OctreeStatsDialog.h
1 //
2 // OctreeStatsDialog.h
3 // interface/src/ui
4 //
5 // Created by Brad Hefta-Gaub on 7/19/13.
6 // Copyright 2013 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef hifi_OctreeStatsDialog_h
13 #define hifi_OctreeStatsDialog_h
14 
15 #include <QDialog>
16 #include <QFormLayout>
17 #include <QLabel>
18 
19 #include <OctreeSceneStats.h>
20 
21 #define MAX_STATS 100
22 
23 class OctreeStatsDialog : public QDialog {
24  Q_OBJECT
25 public:
26  // Sets up the UI
27  OctreeStatsDialog(QWidget* parent, NodeToOctreeSceneStats* model);
28  ~OctreeStatsDialog();
29 
30 signals:
31  void closed();
32 
33 public slots:
34  void reject() override;
35  void moreless(const QString& link);
36 
37 protected:
38  // State <- data model held by BandwidthMeter
39  void paintEvent(QPaintEvent*) override;
40 
41  // Emits a 'closed' signal when this dialog is closed.
42  void closeEvent(QCloseEvent*) override;
43 
44  int AddStatItem(const char* caption, unsigned colorRGBA = 0);
45  void RemoveStatItem(int item);
46  void showAllOctreeServers();
47 
48  void showOctreeServersOfType(NodeType_t serverType);
49 
50 private:
51  enum details {
52  LESS,
53  MORE,
54  MOST
55  };
56 
57  QFormLayout* _form { nullptr };
58  QLabel* _labels[MAX_STATS];
59  NodeToOctreeSceneStats* _model { nullptr };
60  int _statCount { 0 };
61 
62  int _octreeServerLabel;
63 
64  int _sendingMode;
65  int _serverElements;
66  int _localElements;
67  int _localElementsMemory;
68 
69  int _entityUpdateTime;
70  int _entityUpdates;
71  int _processedPackets;
72  int _processedPacketsElements;
73  int _processedPacketsEntities;
74  int _processedPacketsTiming;
75  int _outboundEditPackets;
76 
77  const int SAMPLES_PER_SECOND { 10 };
78  SimpleMovingAverage _averageUpdatesPerSecond { SAMPLES_PER_SECOND };
79  quint64 _lastWindowAt { usecTimestampNow() };
80  quint64 _lastKnownTrackedEdits { 0 };
81 
82  quint64 _lastRefresh { 0 };
83 
84  details _extraServerDetails { LESS };
85 };
86 
87 #endif // hifi_OctreeStatsDialog_h
quint8 NodeType_t
An 8-bit value identifying the type of a node - domain server, audio mixer, etc.
Definition: NodeType.h:22
Definition: OctreeSceneStats.h:274