Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
server_configuration.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2012 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 <memory>
22 
23 namespace mir
24 {
25 namespace compositor
26 {
27 class Compositor;
28 }
29 namespace frontend
30 {
31 class Connector;
32 class Shell;
33 }
34 namespace shell
35 {
36 class SessionContainer;
37 }
38 namespace graphics
39 {
40 class Display;
41 class DisplayConfigurationPolicy;
42 class Platform;
43 }
44 namespace input
45 {
46 class InputManager;
47 class EventFilter;
48 class InputConfiguration;
49 }
50 
51 class MainLoop;
52 class ServerStatusListener;
53 class DisplayChanger;
54 
56 {
57 public:
58  // TODO most of these interfaces are wider DisplayServer needs...
59  // TODO ...some or all of them need narrowing
60  virtual std::shared_ptr<frontend::Connector> the_connector() = 0;
61  virtual std::shared_ptr<graphics::Display> the_display() = 0;
62  virtual std::shared_ptr<compositor::Compositor> the_compositor() = 0;
63  virtual std::shared_ptr<input::InputManager> the_input_manager() = 0;
64  virtual std::shared_ptr<MainLoop> the_main_loop() = 0;
65  virtual std::shared_ptr<ServerStatusListener> the_server_status_listener() = 0;
66  virtual std::shared_ptr<DisplayChanger> the_display_changer() = 0;
67  virtual std::shared_ptr<graphics::Platform> the_graphics_platform() = 0;
68  virtual std::shared_ptr<input::InputConfiguration> the_input_configuration() = 0;
69 
70 protected:
71  ServerConfiguration() = default;
72  virtual ~ServerConfiguration() { /* TODO: make nothrow */ }
73 
76 };
77 }
78 
79 
80 #endif /* MIR_SERVER_CONFIGURATION_H_ */

Copyright © 2012,2013 Canonical Ltd.
Generated on Wed Oct 30 18:52:19 UTC 2013