#pragma once #include #include class DbusConnection { public: virtual ~DbusConnection() = default; protected: Glib::RefPtr connection; void connect_session_async(const sigc::slot &)> &callback) { Gio::DBus::Connection::get(Gio::DBus::BusType::SESSION, callback); } static void ensure_gio_init() { try { Gio::init(); } catch (const Glib::Error &) { // Already initialized. } } };