Chatterino
RatelimitBucket.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QList>
4 #include <QObject>
5 #include <QString>
6 
7 namespace chatterino {
8 
9 class RatelimitBucket : public QObject
10 {
11 public:
12  RatelimitBucket(int budget, int cooldown,
13  std::function<void(QString)> callback, QObject *parent);
14 
15  void send(QString channel);
16 
17 private:
21  int budget_;
22 
26  const int cooldown_;
27 
28  std::function<void(QString)> callback_;
29  QList<QString> queue_;
30 
37  void handleOne();
38 };
39 
40 } // namespace chatterino
RatelimitBucket(int budget, int cooldown, std::function< void(QString)> callback, QObject *parent)
Definition: RatelimitBucket.cpp:7
Definition: Application.cpp:48
void send(QString channel)
Definition: RatelimitBucket.cpp:17
Definition: RatelimitBucket.hpp:9