19 #ifndef MIRAL_INTERNAL_CLIENT_H
20 #define MIRAL_INTERNAL_CLIENT_H
28 namespace mir {
class Server;
namespace scene {
class Session; }}
47 std::function<
void(std::weak_ptr<mir::scene::Session>
const session)> connect_notification);
49 template <
typename ClientObject>
54 std::function<
void(struct ::wl_display* display)> client_code,
55 std::function<
void(std::weak_ptr<mir::scene::Session>
const session)> connect_notification);
57 template <
typename ClientObject>
67 std::shared_ptr<Self> internal_client;
79 std::string
const&
name,
81 std::function<
void(std::weak_ptr<mir::scene::Session>
const session)>
const& connect_notification)
const;
83 template <
typename ClientObject>
84 void launch(std::string
const&
name, ClientObject& client_object)
const
89 [&](std::weak_ptr<mir::scene::Session>
const session) { client_object(session); });
93 std::function<
void(struct ::wl_display* display)>
const& wayland_fd,
94 std::function<
void(std::weak_ptr<mir::scene::Session>
const session)>
const& connect_notification)
const;
96 template <
typename ClientObject>
97 void launch(ClientObject& client_object)
const
100 [&](struct ::wl_display* display) { client_object(display); },
101 [&](std::weak_ptr<mir::scene::Session>
const session) { client_object(session); });
106 std::shared_ptr<Self>
self;
110 #endif //MIRAL_INTERNAL_CLIENT_H