Migrate app/global_keys_handler to timeout framework

This commit is contained in:
Ehmry - 2019-09-16 13:07:34 +02:00
parent 2a526a8cfa
commit 922ed3dfce
1 changed files with 10 additions and 7 deletions

View File

@ -170,14 +170,18 @@ struct Global_keys_handler::Main
xml.attribute("enabled", _curr_value ? "yes" : "no"); });
}
void _generate_report(Genode::Duration) { _generate_report(); }
/*
* Handler used for generating delayed reports
*/
Constructible<Timer::Connection> _timer { };
Timer::Connection _timer;
uint64_t const _delay_ms;
Signal_handler<Report> _timer_handler;
Timer::One_shot_timeout<Report> _timer_handler {
_timer, *this, &Report::_generate_report };
Report(Env &env, Allocator &alloc,
Registry<Report> &reports,
@ -189,8 +193,8 @@ struct Global_keys_handler::Main
_element(reports, *this),
_bool_states(bool_states),
_reporter(env, _name.string()),
_delay_ms(node.attribute_value("delay_ms", (uint64_t)0)),
_timer_handler(env.ep(), *this, &Report::_generate_report)
_timer(env),
_delay_ms(node.attribute_value("delay_ms", (uint64_t)0))
{
_reporter.enabled(true);
@ -201,8 +205,7 @@ struct Global_keys_handler::Main
new (alloc) Hover_condition(_hover_conditions, hovered); });
if (_delay_ms) {
_timer.construct(env);
_timer->sigh(_timer_handler);
_timer_handler.schedule(Microseconds{_delay_ms * 1000});
}
}
@ -233,7 +236,7 @@ struct Global_keys_handler::Main
_initial_report = false;
if (_delay_ms)
_timer->trigger_once(_delay_ms*1000);
_timer_handler.schedule(Microseconds{_delay_ms * 1000});
else
_generate_report();
}