18 #ifndef MIR_CLIENT_MIR_CONNECTION_H_
19 #define MIR_CLIENT_MIR_CONNECTION_H_
23 #include <unordered_set>
24 #include <unordered_map>
45 class ConnectionConfiguration;
46 class ClientPlatformFactory;
47 class ConnectionSurfaceMap;
48 class DisplayConfiguration;
49 class LifecycleControl;
50 class EventHandlerRegister;
54 class MirBasicRpcChannel;
114 unsigned int formats_size,
unsigned int& valid_formats);
137 std::shared_ptr<mir::logging::Logger>
const&
the_logger()
const;
142 {
MirConnection*
const self; ~Deregisterer(); } deregisterer;
146 std::shared_ptr<mir::SharedLibrary>
const platform_library;
150 std::shared_ptr<google::protobuf::RpcChannel>
const channel;
152 std::shared_ptr<mir::logging::Logger>
const logger;
160 std::shared_ptr<mir::client::ClientPlatformFactory>
const client_platform_factory;
161 std::shared_ptr<mir::client::ClientPlatform> platform;
162 std::shared_ptr<EGLNativeDisplayType> native_display;
164 std::shared_ptr<mir::input::receiver::InputPlatform>
const input_platform;
166 std::string error_message;
173 std::mutex release_wait_handle_guard;
174 std::vector<MirWaitHandle*> release_wait_handles;
176 std::shared_ptr<mir::client::DisplayConfiguration>
const display_configuration;
178 std::shared_ptr<mir::client::LifecycleControl>
const lifecycle_control;
180 std::shared_ptr<mir::client::ConnectionSurfaceMap>
const surface_map;
182 std::shared_ptr<mir::client::EventHandlerRegister>
const event_handler_register;
184 std::vector<int> extra_platform_data;
186 struct SurfaceRelease;
190 void set_error_message(std::string
const&
error);
191 void done_disconnect();
193 void released(SurfaceRelease );
MirWaitHandle * connect(const char *app_name, mir_connected_callback callback, void *context)
Definition: mir_connection.cpp:267
All things Mir.
Definition: aging_buffer.h:24
Definition: client_types.h:266
Definition: mir_surface.h:56
MirPromptSession * create_prompt_session()
Definition: mir_connection.cpp:214
Definition: mir_wait_handle.h:31
Definition: mir_protobuf.pb.h:3348
MirConnection & operator=(MirConnection const &)=delete
std::shared_ptr< mir::logging::Logger > const & the_logger() const
Definition: mir_connection.cpp:531
void available_surface_formats(MirPixelFormat *formats, unsigned int formats_size, unsigned int &valid_formats)
Definition: mir_connection.cpp:386
Definition: mir_protobuf.pb.h:69
MirWaitHandle * release_surface(MirSurface *surface, mir_surface_callback callback, void *context)
Definition: mir_connection.cpp:189
void done_display_configure()
Definition: mir_connection.cpp:466
bool set_extra_platform_data(std::vector< int > const &extra_platform_data)
Definition: mir_connection.cpp:511
std::shared_ptr< mir::client::ClientPlatform > get_client_platform()
Definition: mir_connection.cpp:407
MirConnection * mir_connection()
Definition: mir_connection.cpp:414
EGLNativeDisplayType egl_native_display()
Definition: mir_connection.cpp:419
Definition: mir_protobuf.pb.h:1834
Definition: mir_protobuf.pb.h:2127
void populate(MirPlatformPackage &platform_package)
Definition: mir_connection.cpp:354
void register_display_change_callback(mir_display_config_callback callback, void *context)
Definition: mir_connection.cpp:436
MirWaitHandle * drm_auth_magic(unsigned int magic, mir_drm_auth_magic_callback callback, void *context)
Definition: mir_connection.cpp:319
Definition: mir_prompt_session.h:40
Definition: client_context.h:27
std::shared_ptr< google::protobuf::RpcChannel > rpc_channel() const
Definition: mir_connection.h:131
Definition: mir_protobuf.pb.h:1737
void on_surface_created(int id, MirSurface *surface)
Definition: mir_connection.cpp:426
~MirConnection() noexcept
Definition: mir_connection.cpp:116
MirWaitHandle * disconnect()
Definition: mir_connection.cpp:301
MirWaitHandle * configure_display(MirDisplayConfiguration *configuration)
Definition: mir_connection.cpp:478
MirConnection(std::string const &error_message)
Definition: mir_connection.cpp:86
error
Definition: connector_report_tp.h:60
char const * get_error_message()
Definition: mir_connection.cpp:141
Definition: mir_connection.h:72
void register_lifecycle_event_callback(mir_lifecycle_event_callback callback, void *context)
Definition: mir_connection.cpp:431
Definition: connection_configuration.h:54
mir::protobuf::DisplayServer & display_server()
Definition: mir_connection.cpp:526
static bool is_valid(MirConnection *connection)
Definition: mir_connection.cpp:337
MirWaitHandle * create_surface(MirSurfaceParameters const ¶ms, mir_surface_callback callback, void *context)
Definition: mir_connection.cpp:131
Definition: mir_protobuf.pb.h:3255
MirDisplayConfiguration * create_copy_of_display_config()
Definition: mir_connection.cpp:380
Definition: mir_protobuf.pb.h:1304
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:135