g_dbus_method_invocation_return_value(invocation, nullptr);
}
+ void on_get_user_list(GDBusMethodInvocation *invocation, std::string_view sender, GVariant *parameters)
+ {
+ //auto [ session_uid ] = tuple_from_g_variant<int>(parameters);
+ g_dbus_method_invocation_return_dbus_error(invocation, "org.freedesktop.DBus.Error.Failed", "TODO");
+ }
+
static void glib_bus_connected(GDBusConnection *conn, const gchar *name, gpointer user_data)
{
auto self = static_cast<sessiond_context *>(user_data);
"<arg name=\"session_uid\" type=\"i\" direction=\"in\"/>"
"<arg name=\"switch_id\" type=\"x\" direction=\"in\"/>"
"</method>"
+ "<method name=\"GetUserList\">"
+ "<arg name=\"session_uid\" type=\"i\" direction=\"in\"/>"
+ "<arg name=\"subsession_id_list\" type=\"ai\" direction=\"out\"/>"
+ "</method>"
"<signal name=\"AddUserStarted\">"
"<arg name=\"session_uid\" type=\"i\" direction=\"out\"/>"
"<arg name=\"subsession_id\" type=\"i\" direction=\"out\"/>"
std::pair<
std::string_view,
void (sessiond_context::*)(GDBusMethodInvocation *, std::string_view, GVariant *)
- >, 9> methods = {
+ >, 10> methods = {
std::make_pair("AddUser", &sessiond_context::on_add_user),
std::make_pair("RemoveUser", &sessiond_context::on_remove_user),
std::make_pair("SwitchUser", &sessiond_context::on_switch_user),
std::make_pair("AddUserDone", &sessiond_context::on_add_user_done),
std::make_pair("RemoveUserDone", &sessiond_context::on_remove_user_done),
std::make_pair("SwitchUserDone", &sessiond_context::on_switch_user_done),
- // TODO: Add all the methods
+ std::make_pair("GetUserList", &sessiond_context::on_get_user_list),
};
std::unordered_map<int, wait_manager<int>> wait_add;