148 lines · 4.6 KB · C
RawDownload
////  OctreeStatsProvider.h//  interface/src/ui////  Created by Vlad Stelmahovsky on 3/12/17.//  Copyright 2017 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #ifndef hifi_OctreeStatsProvider_h#define hifi_OctreeStatsProvider_h #include <OctreeSceneStats.h>#include <QTimer>#include <QColor> #include "DependencyManager.h" class OctreeStatsProvider : public QObject, public Dependency {    Q_OBJECT    SINGLETON_DEPENDENCY     Q_PROPERTY(int serversNum READ serversNum NOTIFY serversNumChanged)    Q_PROPERTY(QString serverElements READ serverElements NOTIFY serverElementsChanged)    Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged)    Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged)    Q_PROPERTY(QString sendingMode READ sendingMode NOTIFY sendingModeChanged)    Q_PROPERTY(QString processedPackets READ processedPackets NOTIFY processedPacketsChanged)    Q_PROPERTY(QString processedPacketsElements READ processedPacketsElements NOTIFY processedPacketsElementsChanged)    Q_PROPERTY(QString processedPacketsEntities READ processedPacketsEntities NOTIFY processedPacketsEntitiesChanged)    Q_PROPERTY(QString processedPacketsTiming READ processedPacketsTiming NOTIFY processedPacketsTimingChanged)    Q_PROPERTY(QString outboundEditPackets READ outboundEditPackets NOTIFY outboundEditPacketsChanged)    Q_PROPERTY(QString entityUpdateTime READ entityUpdateTime NOTIFY entityUpdateTimeChanged)    Q_PROPERTY(QString entityUpdates READ entityUpdates NOTIFY entityUpdatesChanged)     Q_PROPERTY(QStringList servers READ servers NOTIFY serversChanged) public:    OctreeStatsProvider(QObject* parent);    ~OctreeStatsProvider();     int serversNum() const;     QString serverElements() const {        return m_serverElements;    }     QString localElements() const {        return m_localElements;    }     QString localElementsMemory() const {        return m_localElementsMemory;    }     QString sendingMode() const {        return m_sendingMode;    }     QString processedPackets() const {        return m_processedPackets;    }     QString processedPacketsElements() const {        return m_processedPacketsElements;    }     QString processedPacketsEntities() const {        return m_processedPacketsEntities;    }     QString processedPacketsTiming() const {        return m_processedPacketsTiming;    }     QString outboundEditPackets() const {        return m_outboundEditPackets;    }     QString entityUpdateTime() const {        return m_entityUpdateTime;    }     QString entityUpdates() const {        return m_entityUpdates;    }     QStringList servers() const {        return m_servers;    } signals:     void serversNumChanged(int serversNum);    void serverElementsChanged(const QString &serverElements);    void localElementsChanged(const QString &localElements);    void sendingModeChanged(const QString &sendingMode);    void processedPacketsChanged(const QString &processedPackets);    void localElementsMemoryChanged(const QString &localElementsMemory);    void processedPacketsElementsChanged(const QString &processedPacketsElements);    void processedPacketsEntitiesChanged(const QString &processedPacketsEntities);    void processedPacketsTimingChanged(const QString &processedPacketsTiming);    void outboundEditPacketsChanged(const QString &outboundEditPackets);    void entityUpdateTimeChanged(const QString &entityUpdateTime);    void entityUpdatesChanged(const QString &entityUpdates);     void serversChanged(const QStringList &servers); public slots:    void startUpdates();    void stopUpdates();    QColor getColor() const; private slots:    void updateOctreeStatsData();protected:    void updateOctreeServers();    void showOctreeServersOfType(NodeType_t serverType); private:    int _statCount;     const int SAMPLES_PER_SECOND = 10;    SimpleMovingAverage _averageUpdatesPerSecond;    quint64 _lastWindowAt = usecTimestampNow();    quint64 _lastKnownTrackedEdits = 0;     quint64 _lastRefresh = 0;     QTimer _updateTimer;    int m_serversNum { 0 };    QString m_serverElements;    QString m_localElements;    QString m_localElementsMemory;    QString m_sendingMode;    QString m_processedPackets;    QString m_processedPacketsElements;    QString m_processedPacketsEntities;    QString m_processedPacketsTiming;    QString m_outboundEditPackets;    QString m_entityUpdateTime;    QString m_entityUpdates;    QStringList m_servers;}; #endif // hifi_OctreeStatsProvider_h