Init Commit
This commit is contained in:
52
RateSeveral.h
Normal file
52
RateSeveral.h
Normal 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
|
||||
Reference in New Issue
Block a user