feat: Const methods for module broadcast throttle

This commit is contained in:
Michael Carlberg 2016-06-21 05:01:45 +02:00
parent 006f3f8efd
commit 4366c36704

View File

@ -105,11 +105,19 @@ namespace modules
std::unique_ptr<ModuleFormatter> formatter; std::unique_ptr<ModuleFormatter> formatter;
std::vector<std::thread> threads; std::vector<std::thread> threads;
event_throttler::limit_t broadcast_throttler_limit() const {
return event_throttler::limit_t(1);
}
event_throttler::timewindow_t broadcast_throttler_timewindow() const {
return event_throttler::timewindow_t(25);
}
public: public:
Module(std::string name, bool lazy_builder = true) Module(std::string name, bool lazy_builder = true)
: name_("module/"+ name) : name_("module/"+ name)
, builder(std::make_unique<Builder>(lazy_builder)) , builder(std::make_unique<Builder>(lazy_builder))
, broadcast_throttler(std::make_unique<EventThrottler>(event_throttler::limit_t(1), event_throttler::timewindow_t(25))) , broadcast_throttler(std::make_unique<EventThrottler>(ConstCastModule(ModuleImpl).broadcast_throttler_limit(), ConstCastModule(ModuleImpl).broadcast_throttler_timewindow()))
{ {
this->enable(false); this->enable(false);
this->cache = ""; this->cache = "";
@ -200,7 +208,7 @@ namespace modules
void wakeup() void wakeup()
{ {
log_trace("Releasing sleep lock for "+ this->name_); log_trace("Releasing sleep lock for "+ this->name_);
this->sleep_handler.notify_one(); this->sleep_handler.notify_all();
} }
std::string get_format() { std::string get_format() {
@ -399,7 +407,7 @@ namespace modules
} }
public: public:
InotifyModule(std::string name) explicit InotifyModule(std::string name)
: Module<ModuleImpl>(name) : Module<ModuleImpl>(name)
, poll_throttler(std::make_unique<EventThrottler>(event_throttler::limit_t(ThrottleLimit), event_throttler::timewindow_t(ThrottleWindowMs))) {} , poll_throttler(std::make_unique<EventThrottler>(event_throttler::limit_t(ThrottleLimit), event_throttler::timewindow_t(ThrottleWindowMs))) {}