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;
46 class DisplayConfiguration;
47 class LifecycleControl;
51 class MirBasicRpcChannel;
110 unsigned int formats_size,
unsigned int& valid_formats);
126 std::recursive_mutex mutex;
128 std::shared_ptr<mir::client::rpc::MirBasicRpcChannel> channel;
129 mir::protobuf::DisplayServer::Stub server;
130 std::shared_ptr<mir::logging::Logger> logger;
131 mir::protobuf::Void void_response;
132 mir::protobuf::Connection connect_result;
133 mir::protobuf::Void ignored;
134 mir::protobuf::ConnectParameters connect_parameters;
135 mir::protobuf::DRMAuthMagicStatus drm_auth_magic_status;
136 mir::protobuf::DisplayConfiguration display_configuration_response;
138 std::shared_ptr<mir::client::ClientPlatformFactory>
const client_platform_factory;
139 std::shared_ptr<mir::client::ClientPlatform> platform;
140 std::shared_ptr<EGLNativeDisplayType> native_display;
142 std::shared_ptr<mir::input::receiver::InputPlatform>
const input_platform;
144 std::string error_message;
151 std::mutex release_wait_handle_guard;
152 std::vector<MirWaitHandle*> release_wait_handles;
154 std::shared_ptr<mir::client::DisplayConfiguration>
const display_configuration;
156 std::shared_ptr<mir::client::LifecycleControl>
const lifecycle_control;
158 std::shared_ptr<mir::client::SurfaceMap> surface_map;
162 void done_disconnect();