Mir
server_configuration.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2012, 2016 Canonical Ltd.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Authored by: Alan Griffiths <alan@octopull.co.uk>
17  */
18 #ifndef MIR_SERVER_CONFIGURATION_H_
19 #define MIR_SERVER_CONFIGURATION_H_
20 
21 #include <functional>
22 #include <memory>
23 
24 namespace mir
25 {
26 namespace cookie
27 {
28 class Authority;
29 }
30 namespace compositor
31 {
32 class Compositor;
33 }
34 namespace frontend
35 {
36 class Connector;
37 class Shell;
38 }
39 namespace shell
40 {
41 class SessionContainer;
42 }
43 namespace graphics
44 {
45 class Display;
46 class DisplayConfigurationPolicy;
47 class Platform;
48 }
49 namespace input
50 {
51 class InputManager;
52 class InputDispatcher;
53 class EventFilter;
54 class InputConfiguration;
55 }
56 
57 namespace scene
58 {
59 class ApplicationNotRespondingDetector;
60 }
61 
62 class MainLoop;
63 class ServerStatusListener;
64 class DisplayChanger;
65 class EmergencyCleanup;
66 
68 {
69 public:
70  // TODO most of these interfaces are wider DisplayServer needs...
71  // TODO ...some or all of them need narrowing
72  virtual std::shared_ptr<frontend::Connector> the_connector() = 0;
73  virtual std::shared_ptr<frontend::Connector> the_prompt_connector() = 0;
74  virtual std::shared_ptr<graphics::Display> the_display() = 0;
75  virtual std::shared_ptr<compositor::Compositor> the_compositor() = 0;
76  virtual std::shared_ptr<input::InputManager> the_input_manager() = 0;
77  virtual std::shared_ptr<input::InputDispatcher> the_input_dispatcher() = 0;
78  virtual std::shared_ptr<MainLoop> the_main_loop() = 0;
79  virtual std::shared_ptr<ServerStatusListener> the_server_status_listener() = 0;
80  virtual std::shared_ptr<DisplayChanger> the_display_changer() = 0;
81  virtual std::shared_ptr<graphics::Platform> the_graphics_platform() = 0;
82  virtual std::shared_ptr<EmergencyCleanup> the_emergency_cleanup() = 0;
83  virtual std::shared_ptr<cookie::Authority> the_cookie_authority() = 0;
84  virtual auto the_fatal_error_strategy() -> void (*)(char const* reason, ...) = 0;
85  virtual std::shared_ptr<scene::ApplicationNotRespondingDetector> the_application_not_responding_detector() = 0;
86  virtual std::function<void()> the_stop_callback() = 0;
87 
88 protected:
89  ServerConfiguration() = default;
90  virtual ~ServerConfiguration() = default;
91 
93  ServerConfiguration& operator=(ServerConfiguration const&) = delete;
94 };
95 }
96 
97 
98 #endif /* MIR_SERVER_CONFIGURATION_H_ */
All things Mir.
Definition: atomic_callback.h:25
Definition: server_configuration.h:67

Copyright © 2012-2015 Canonical Ltd.
Generated on Thu Sep 8 14:50:19 UTC 2016