Init Commit

This commit is contained in:
2021-12-27 23:16:23 +08:00
commit 94bddf23c9
5 changed files with 187 additions and 0 deletions

52
RateSeveral.h Normal file
View File

@@ -0,0 +1,52 @@
//
// Created by fly on 2021/12/27.
//
#ifndef RATESEVERAL_RATESEVERAL_H
#define RATESEVERAL_RATESEVERAL_H
#include <QObject>
#include <QPair>
#include <QList>
#include <QAtomicInt>
#include <QVector>
#include <QTimer>
#include <QReadWriteLock>
class RateSeveral : public QObject {
Q_OBJECT
public:
explicit RateSeveral(QObject *parent = nullptr);
void setTimerInterval(qint32 second);
void addRateInterval(quint32 second);
void removeRateInterval(quint32 second);
void record(quint32 val = 1);
quint32 getMaxListSize() const;
void setMaxListSize(quint32 maxSize);
signals:
void RateSignals(quint32 interval, quint32 rate);
protected slots:
void onTimerTimeout();
protected:
QReadWriteLock intervalLock;
QReadWriteLock listLock;
quint32 maxListSize{1000};
QTimer timer;
QVector<quint32> vInterval;
QList<QPair<qint64, QAtomicInteger<quint32>>> recordList;
QAtomicInteger<qint64> recordTimestamp;
};
#endif //RATESEVERAL_RATESEVERAL_H