possible de récupérer le temps restant sur un événement glib ‘?

Je crée un événement avec g_timeout_add ou g_timeout_add_seconds qui renvoie un identifiant d’événement; Je peux annuler l’événement en appelant g_source_remove .

Cependant, à un moment donné, j’aimerais savoir combien de temps il rest avant que l’événement soit déclenché. Existe-t-il un moyen simple de le faire avec l’API Glib ou dois-je stocker et comparer manuellement les horodatages avec g_source_get_current_time ?

Il n’y a pas de moyen raisonnable de le faire dans GLib.

La manière déraisonnable serait d’obtenir le GSource (g_main_context_find_source_by_id) et d’appeler ensuite l’opération source-> source_funcs-> prepare () sur le GSource, qui renverrait le temps jusqu’à ce que la source soit dissortingbuée. C’est un peu sommaire: source_funcs est private, et prepare () n’est pas vraiment destiné à être utilisé, sauf en interne par la boucle principale.

Le mieux, je peux dire que cela fonctionnerait bien. Je ne l’ai pas essayé

enregistrer l’heure de début + intervalle d’expiration, sous-résumé de l’heure actuelle lorsque vous souhaitez connaître le temps restant.