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

View File

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