Re: DBusWatch function, DBusTimeout functions Why these functions is needed ?
Thiago Macieira <[email protected]>
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <52960697.WWrl52BWLl@tjmaciei-mobl1> |
Em terça-feira, 27 de dezembro de 2016, às 10:40:49 BRST, Денис Котов escreveu: > Okay, you mean DBus uses user's callbacks like a platform specific API for > creating a platform specific timer (QTimer, linux timer and etc.) and DBus > deals only with abstract number that in fact is timeout in milliseconds. Right. The QtDBus binding handles a DBusTimeout add_timeout callback by creating a QTimer (actually, QObject::startTimer). When that expires, it calls the handler function to let libdbus know that the time has passed. > In this case I need only create Timer, check when this timer expired and > then make dbus_timeout_handle() to say DBus that Timer has expired, am I > right ? Right. > And should I restart timer after it expired and start again or I should > remove this timer from list ? QtDBus doesn't remove them. The timers could continue. But I don't know of any operation in D-Bus that would require repeating timers. The handler funciton will call the remove_timeout callback to remove it soon after. > But in this case when DBus request to add watcher for me it seems like > workaround, because with DBus know how to work with this platform specific > file descriptor, but anyway it asks us to say when it will be handled (for > me it seems strange). It can't know. That's simply not possible. How could libdbus add the file descriptor to Qt's file descriptor watching list, for example? -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center _______________________________________________ dbus mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dbus