diff options
author | Dylan Van Assche <me@dylanvanassche.be> | 2021-05-01 15:50:47 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-05-26 13:14:52 +0000 |
commit | 38740e9d11a52f91e41349a62caf35f8e1a67f48 (patch) | |
tree | d1c1514d9cf98790a44e1e156ce71adc8922cd0b /src/mm-base-modem.c | |
parent | 940063419a1c2eb9f6e197d60b4c7cb42702de8d (diff) |
base-manager: add quick suspend/resume base
Quick suspend/resume infrastructure for
synchronizing the interfaces when resuming.
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r-- | src/mm-base-modem.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index 06562af4..55752999 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -620,6 +620,31 @@ mm_base_modem_wait_link_port (MMBaseModem *self, /******************************************************************************/ +static void +mm_base_modem_sync_ready (MMBaseModem *self, + GAsyncResult *res) +{ + g_autoptr (GError) error = NULL; + + MM_BASE_MODEM_GET_CLASS (self)->sync_finish (self, res, &error); + if (error) { + mm_obj_warn (self, "synchronization failed"); + } +} + +void +mm_base_modem_sync (MMBaseModem *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_assert (MM_BASE_MODEM_GET_CLASS (self)->sync != NULL); + g_assert (MM_BASE_MODEM_GET_CLASS (self)->sync_finish != NULL); + + MM_BASE_MODEM_GET_CLASS (self)->sync (self, + (GAsyncReadyCallback) mm_base_modem_sync_ready, + NULL); +} + gboolean mm_base_modem_disable_finish (MMBaseModem *self, GAsyncResult *res, |