mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-04 04:54:12 +00:00
4d442bca30
This patch reduces the number of exception types by facilitating globally defined exceptions for common usage patterns shared by most services. In particular, RPC functions that demand a session-resource upgrade not longer reflect this condition via a session-specific exception but via the 'Out_of_ram' or 'Out_of_caps' types. Furthermore, the 'Parent::Service_denied', 'Parent::Unavailable', 'Root::Invalid_args', 'Root::Unavailable', 'Service::Invalid_args', 'Service::Unavailable', and 'Local_service::Factory::Denied' types have been replaced by the single 'Service_denied' exception type defined in 'session/session.h'. This consolidation eases the error handling (there are fewer exceptions to handle), alleviates the need to convert exceptions along the session-creation call chain, and avoids possible aliasing problems (catching the wrong type with the same name but living in a different scope). |
||
---|---|---|
.. | ||
main.cc | ||
README | ||
rom_registry.h | ||
target.mk |
The "report_rom" component is both a report service and a ROM service. It makes incoming reports available as ROM modules. The ROM modules are named after the label of the corresponding report session. Configuration ------------- The report-ROM server hands out ROM modules only if explicitly permitted by a configured policy. For example: ! <config> ! <policy label="decorator -> pointer" report="nitpicker -> pointer"/> ! <policy ... /> ! ... ! </config> The label of an incoming ROM session is matched against the 'label' attribute of all '<policy>' nodes. If the session label matches a policy label, the client obtains the data from the report client with the label specified in the 'report' attribute. In the example above, the nitpicker GUI server sends reports about the pointer position to the report-ROM service. Those reports are handed out to a window decorator (labeled "decorator") as ROM module. The component can be configured to write all incoming reports to the LOG output by setting the 'verbose' attribute of the '<config>' node to "yes".