mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-07 03:40:15 +00:00
This patch brings the input filter into a shape that is easier to re-mold into an event filter, reversing the client/server roles of the component. * The 'Sink &destination' is no longer passed as constructor argument to the individual filters but passed as argument to the 'generate' method. This way, the final destination does not need to exist at the construction time of the filter chain but can be created on the fly (clearing the way for using 'Event::Client::with_batch'). * A new 'Source::Filter' interface with the 'apply' method aids the cascading of filters during 'generate'. The modules now implement the 'Source::Filter::filter_event' interface instead of the 'Source::Sink::submit_event' interface. * Since the 'Sink &destination' is no longer a member of the filter modules, character-repeat events can no longer be emitted in an ad-hoc way. Instead, the character-repeat mechanism now invokes a new 'Trigger::trigger_generate' hook that prompts the execution of the regular 'generate' mechanism by the main program. This patch is supposed to leave the semantics of the input filter unchanged (validated by the input_filter.run script). Issue #3827