aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
authorDylan Van Assche <me@dylanvanassche.be>2021-05-01 15:50:47 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-05-26 13:14:52 +0000
commit38740e9d11a52f91e41349a62caf35f8e1a67f48 (patch)
treed1c1514d9cf98790a44e1e156ce71adc8922cd0b /src/mm-base-modem.c
parent940063419a1c2eb9f6e197d60b4c7cb42702de8d (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.c25
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,