2009-07-18 20:39:31 +00:00
|
|
|
#ifndef TEXTFLOODCHECK_H
|
|
|
|
|
#define TEXTFLOODCHECK_H
|
|
|
|
|
|
|
|
|
|
#include <QtCore>
|
|
|
|
|
#include <third_party/boost/timers.hpp>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
|
2009-07-19 23:14:27 +00:00
|
|
|
class TextFloodCheck: public QObject
|
2009-07-18 20:39:31 +00:00
|
|
|
{
|
2009-07-19 23:14:27 +00:00
|
|
|
Q_OBJECT
|
2009-07-18 20:39:31 +00:00
|
|
|
public:
|
|
|
|
|
TextFloodCheck();
|
2009-07-19 23:14:27 +00:00
|
|
|
|
|
|
|
|
void setTextFloodLevelToTrigger(int level) { textFloodLevelToTrigger = level; }
|
|
|
|
|
|
2009-07-18 20:39:31 +00:00
|
|
|
bool run(unsigned);
|
2009-07-19 23:14:27 +00:00
|
|
|
|
|
|
|
|
public slots:
|
2009-07-18 20:39:31 +00:00
|
|
|
void cleanMsgTimesList();
|
2009-07-19 23:14:27 +00:00
|
|
|
void removeNickFromList(unsigned);
|
2009-07-18 20:39:31 +00:00
|
|
|
|
|
|
|
|
private:
|
2009-07-19 23:14:27 +00:00
|
|
|
QTimer *cleanTimer;
|
2009-07-18 20:39:31 +00:00
|
|
|
boost::timers::portable::second_timer timer;
|
|
|
|
|
struct TextFloodInfos {
|
|
|
|
|
int floodLevel;
|
|
|
|
|
size_t timeStamp;
|
|
|
|
|
};
|
|
|
|
|
TextFloodInfos myTextFloodInfos;
|
|
|
|
|
QMap<unsigned, TextFloodInfos> msgTimesList;
|
2009-07-19 23:14:27 +00:00
|
|
|
|
|
|
|
|
int textFloodLevelToTrigger;
|
2009-07-18 20:39:31 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // TEXTFLOODCHECK_H
|