Как установить часы и время ожидания для giomm::dbus?
Я работаю над реализацией плагина, который использует giomm::dbus для IPC. Но в приложении уже есть пользовательский mainloop, в котором есть механизм опроса. Пользовательский mainloop ожидает файловый дескриптор и события от плагина
Пример:
класс DbusHandler;
class MainHandler {
public:
void fun(){
mDBusHandler = new DbusHandler;
mDbusHandler->start();
}
void startListening(....){
...
do poll
}
private:
DbusHandler *mDbusHandler;};
void on_bus_acquired_test () {};
void on_name_acquired_test () {};
void on_name_lost_test () {};
класс DbusHandler {
public:
DbusHandler(): bus_acquired_slot(sigc::ptr_fun(&on_bus_acquired_test)), //
name_acquired_slot(sigc::ptr_fun(&on_name_acquired_test)), //
name_lost_slot(sigc::ptr_fun(&on_name_lost_test)), // {};
void start() {
Glib::init();
Gio::init();
const auto ownedNameID = Gio::DBus::own_name( Gio::DBus::BUS_TYPE_SESSION,
"org.abc.xyz", //
bus_acquired_slot, //
name_acquired_slot, //
name_lost_slot);}
private:
Gio::DBus::SlotBusAcquired bus_acquired_slot;
Gio::DBus::SlotNameAcquired name_acquired_slot;
Gio::DBus::SlotNameLost name_lost_slot; };