From c26d30dffcd3f4408213b1c8287f72055c4bde5c Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Wed, 11 Nov 2015 10:57:21 +0100 Subject: [PATCH] decorator: use server API --- repos/gems/src/app/decorator/main.cc | 50 +++++++++++++------------- repos/gems/src/app/decorator/target.mk | 2 +- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/repos/gems/src/app/decorator/main.cc b/repos/gems/src/app/decorator/main.cc index 99ee30b06..84dd31afa 100644 --- a/repos/gems/src/app/decorator/main.cc +++ b/repos/gems/src/app/decorator/main.cc @@ -18,6 +18,7 @@ #include #include #include +#include /* decorator includes */ #include @@ -36,7 +37,7 @@ namespace Decorator { struct Decorator::Main : Window_factory_base { - Signal_receiver &sig_rec; + Server::Entrypoint &ep; Nitpicker::Connection nitpicker; @@ -55,8 +56,8 @@ struct Decorator::Main : Window_factory_base */ void handle_window_layout_update(unsigned); - Signal_dispatcher
window_layout_dispatcher = { - sig_rec, *this, &Main::handle_window_layout_update }; + Signal_rpc_member
window_layout_dispatcher = { + ep, *this, &Main::handle_window_layout_update }; Attached_rom_dataspace window_layout { "window_layout" }; @@ -65,8 +66,8 @@ struct Decorator::Main : Window_factory_base */ void handle_pointer_update(unsigned); - Signal_dispatcher
pointer_dispatcher = { - sig_rec, *this, &Main::handle_pointer_update }; + Signal_rpc_member
pointer_dispatcher = { + ep, *this, &Main::handle_pointer_update }; Attached_rom_dataspace pointer { "pointer" }; @@ -97,20 +98,20 @@ struct Decorator::Main : Window_factory_base */ void handle_nitpicker_sync(unsigned); - Signal_dispatcher
nitpicker_sync_dispatcher = { - sig_rec, *this, &Main::handle_nitpicker_sync }; + Signal_rpc_member
nitpicker_sync_dispatcher = { + ep, *this, &Main::handle_nitpicker_sync }; Config config { *Genode::env()->heap() }; void handle_config(unsigned); - Signal_dispatcher
config_dispatcher = { - sig_rec, *this, &Main::handle_config}; + Signal_rpc_member
config_dispatcher = { + ep, *this, &Main::handle_config}; /** * Constructor */ - Main(Signal_receiver &sig_rec) : sig_rec(sig_rec) + Main(Server::Entrypoint &ep) : ep(ep) { Genode::config()->sigh(config_dispatcher); handle_config(0); @@ -121,6 +122,10 @@ struct Decorator::Main : Window_factory_base nitpicker.framebuffer()->sync_sigh(nitpicker_sync_dispatcher); hover_reporter.enabled(true); + + /* import initial state */ + handle_pointer_update(0); + handle_window_layout_update(0); } /** @@ -293,25 +298,18 @@ void Decorator::Main::handle_pointer_update(unsigned) } -int main(int argc, char **argv) -{ - static Genode::Signal_receiver sig_rec; +/************ + ** Server ** + ************/ - static Decorator::Main application(sig_rec); +namespace Server { - /* import initial state */ - application.handle_pointer_update(0); - application.handle_window_layout_update(0); + char const *name() { return "decorator_ep"; } - /* process incoming signals */ - for (;;) { - using namespace Genode; + size_t stack_size() { return 8*1024*sizeof(long); } - Signal sig = sig_rec.wait_for_signal(); - Signal_dispatcher_base *dispatcher = - dynamic_cast(sig.context()); - - if (dispatcher) - dispatcher->dispatch(sig.num()); + void construct(Entrypoint &ep) + { + static Decorator::Main main(ep); } } diff --git a/repos/gems/src/app/decorator/target.mk b/repos/gems/src/app/decorator/target.mk index 441560143..45468a25d 100644 --- a/repos/gems/src/app/decorator/target.mk +++ b/repos/gems/src/app/decorator/target.mk @@ -2,7 +2,7 @@ TARGET = decorator SRC_CC = main.cc texture_by_id.cc default_font.h window.cc SRC_BIN = closer.rgba maximize.rgba minimize.rgba windowed.rgba SRC_BIN += droidsansb10.tff -LIBS = base config +LIBS = base config server TFF_DIR = $(call select_from_repositories,src/app/scout/data) INC_DIR += $(PRG_DIR)