/* * \brief Utility for producing reports to a report session * \author Norman Feske * \date 2014-02-14 */ /* * Copyright (C) 2014 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ #ifndef _INCLUDE__GEMS__LOCAL_REPORTER_H_ #define _INCLUDE__GEMS__LOCAL_REPORTER_H_ /* Genode includes */ #include #include #include struct Local_reporter { Report::Session_client _session; Genode::Attached_dataspace _ds; char const *_name; Local_reporter(char const *name, Genode::Capability session_cap) : _session(session_cap), _ds(_session.dataspace()), _name(name) { } struct Xml_generator : public Genode::Xml_generator { template Xml_generator(Local_reporter &reporter, FUNC const &func) : Genode::Xml_generator(reporter._ds.local_addr(), reporter._ds.size(), reporter._name, func) { reporter._session.submit(used()); } }; }; #endif /* _INCLUDE__GEMS__LOCAL_REPORTER_H_ */