18 #ifndef MIR_CLIENT_MIR_CONNECTION_H_
19 #define MIR_CLIENT_MIR_CONNECTION_H_
23 #include <unordered_set>
24 #include <unordered_map>
28 #include "mir_protobuf.pb.h"
43 class ConnectionConfiguration;
44 class ClientPlatformFactory;
45 class ConnectionSurfaceMap;
46 class DisplayConfiguration;
47 class LifecycleControl;
51 class MirBasicRpcChannel;
109 unsigned int formats_size,
unsigned int& valid_formats);
136 std::shared_ptr<google::protobuf::RpcChannel>
const channel;
137 mir::protobuf::DisplayServer::Stub server;
138 std::shared_ptr<mir::logging::Logger>
const logger;
139 mir::protobuf::Void void_response;
140 mir::protobuf::Connection connect_result;
141 mir::protobuf::Void ignored;
142 mir::protobuf::ConnectParameters connect_parameters;
143 mir::protobuf::DRMAuthMagicStatus drm_auth_magic_status;
144 mir::protobuf::DisplayConfiguration display_configuration_response;
146 std::shared_ptr<mir::client::ClientPlatformFactory>
const client_platform_factory;
147 std::shared_ptr<mir::client::ClientPlatform> platform;
148 std::shared_ptr<EGLNativeDisplayType> native_display;
150 std::shared_ptr<mir::input::receiver::InputPlatform>
const input_platform;
152 std::string error_message;
159 std::mutex release_wait_handle_guard;
160 std::vector<MirWaitHandle*> release_wait_handles;
162 std::shared_ptr<mir::client::DisplayConfiguration>
const display_configuration;
164 std::shared_ptr<mir::client::LifecycleControl>
const lifecycle_control;
166 std::shared_ptr<mir::client::ConnectionSurfaceMap>
const surface_map;
168 std::vector<int> extra_platform_data;
170 struct SurfaceRelease;
172 void set_error_message(std::string
const&
error);
173 void done_disconnect();
175 void released(SurfaceRelease );
MirWaitHandle * connect(const char *app_name, mir_connected_callback callback, void *context)
Definition: mir_connection.cpp:239
Definition: client_types.h:252
Definition: mir_surface.h:54
Definition: mir_wait_handle.h:31
MirConnection & operator=(MirConnection const &)=delete
void available_surface_formats(MirPixelFormat *formats, unsigned int formats_size, unsigned int &valid_formats)
Definition: mir_connection.cpp:351
MirWaitHandle * release_surface(MirSurface *surface, mir_surface_callback callback, void *context)
Definition: mir_connection.cpp:172
void done_display_configure()
Definition: mir_connection.cpp:431
bool set_extra_platform_data(std::vector< int > const &extra_platform_data)
Definition: mir_connection.cpp:475
std::shared_ptr< mir::client::ClientPlatform > get_client_platform()
Definition: mir_connection.cpp:372
MirConnection * mir_connection()
Definition: mir_connection.cpp:379
EGLNativeDisplayType egl_native_display()
Definition: mir_connection.cpp:384
void populate(MirPlatformPackage &platform_package)
Definition: mir_connection.cpp:319
void register_display_change_callback(mir_display_config_callback callback, void *context)
Definition: mir_connection.cpp:401
MirWaitHandle * drm_auth_magic(unsigned int magic, mir_drm_auth_magic_callback callback, void *context)
Definition: mir_connection.cpp:290
Definition: client_context.h:27
std::shared_ptr< google::protobuf::RpcChannel > rpc_channel() const
Definition: mir_connection.h:126
void on_surface_created(int id, MirSurface *surface)
Definition: mir_connection.cpp:391
~MirConnection() noexcept
Definition: mir_connection.cpp:94
MirWaitHandle * disconnect()
Definition: mir_connection.cpp:273
MirWaitHandle * configure_display(MirDisplayConfiguration *configuration)
Definition: mir_connection.cpp:443
MirConnection(std::string const &error_message)
Definition: mir_connection.cpp:69
error
Definition: connector_report_tp.h:60
char const * get_error_message()
Definition: mir_connection.cpp:124
Definition: mir_connection.h:69
void register_lifecycle_event_callback(mir_lifecycle_event_callback callback, void *context)
Definition: mir_connection.cpp:396
Definition: connection_configuration.h:51
mir::protobuf::DisplayServer & display_server()
Definition: mir_connection.cpp:490
static bool is_valid(MirConnection *connection)
Definition: mir_connection.cpp:307
MirWaitHandle * create_surface(MirSurfaceParameters const ¶ms, mir_surface_callback callback, void *context)
Definition: mir_connection.cpp:114
MirDisplayConfiguration * create_copy_of_display_config()
Definition: mir_connection.cpp:345
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:121