telepathy-mission-control: Add CONNECTIVITY_NONE, and make state transitions clearer
Simon McVittie
smcv at kemper.freedesktop.org
Wed Sep 4 05:38:36 PDT 2013
Module: telepathy-mission-control
Branch: master
Commit: c5e96690fd558b4de8de794bce04fb3937b03799
URL: http://cgit.freedesktop.org/telepathy/telepathy-mission-control/commit/?id=c5e96690fd558b4de8de794bce04fb3937b03799
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date: Tue Sep 3 19:16:32 2013 +0100
Add CONNECTIVITY_NONE, and make state transitions clearer
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68758
Signed-off-by: Simon McVittie <simon.mcvittie at collabora.co.uk>
Reviewed-by: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
---
src/connectivity-monitor.c | 54 +++++++++++++++++++++++++++++++-------------
1 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/src/connectivity-monitor.c b/src/connectivity-monitor.c
index 4484f98..7fac1ec 100644
--- a/src/connectivity-monitor.c
+++ b/src/connectivity-monitor.c
@@ -69,6 +69,8 @@ struct _McdInhibit {
};
typedef enum {
+ CONNECTIVITY_NONE = 0,
+
/* Set if the device is not suspended; clear if it is suspending
* (or suspended, but we don't get scheduled then). */
CONNECTIVITY_AWAKE = (1 << 0),
@@ -166,6 +168,26 @@ connectivity_monitor_change_states (
}
}
+/* Calling this function makes us "more online" or has no effect */
+static inline void
+connectivity_monitor_add_states (
+ McdConnectivityMonitor *self,
+ Connectivity set,
+ McdInhibit *inhibit)
+{
+ connectivity_monitor_change_states (self, set, CONNECTIVITY_NONE, inhibit);
+}
+
+/* Calling this function makes us "less online" or has no effect */
+static inline void
+connectivity_monitor_remove_states (
+ McdConnectivityMonitor *self,
+ Connectivity clear,
+ McdInhibit *inhibit)
+{
+ connectivity_monitor_change_states (self, CONNECTIVITY_NONE, clear, inhibit);
+}
+
#ifdef HAVE_NM
#if !defined(NM_CHECK_VERSION)
@@ -198,14 +220,14 @@ connectivity_monitor_nm_state_change_cb (NMClient *client,
{
DEBUG ("New NetworkManager network state %d (unstable state)", state);
- connectivity_monitor_change_states (connectivity_monitor,
- 0, CONNECTIVITY_STABLE, NULL);
+ connectivity_monitor_remove_states (connectivity_monitor,
+ CONNECTIVITY_STABLE, NULL);
}
else
{
DEBUG ("New NetworkManager network state %d (stable state)", state);
- connectivity_monitor_change_states (connectivity_monitor,
- CONNECTIVITY_STABLE, 0, NULL);
+ connectivity_monitor_add_states (connectivity_monitor,
+ CONNECTIVITY_STABLE, NULL);
}
}
#endif
@@ -226,15 +248,15 @@ connectivity_monitor_network_changed (GNetworkMonitor *monitor,
{
DEBUG ("GNetworkMonitor (%s) says we are at least partially online",
G_OBJECT_TYPE_NAME (monitor));
- connectivity_monitor_change_states (connectivity_monitor,
- CONNECTIVITY_UP, 0, NULL);
+ connectivity_monitor_add_states (connectivity_monitor, CONNECTIVITY_UP,
+ NULL);
}
else
{
DEBUG ("GNetworkMonitor (%s) says we are offline",
G_OBJECT_TYPE_NAME (monitor));
- connectivity_monitor_change_states (connectivity_monitor,
- 0, CONNECTIVITY_UP, NULL);
+ connectivity_monitor_remove_states (connectivity_monitor,
+ CONNECTIVITY_UP, NULL);
}
}
@@ -245,9 +267,9 @@ connectivity_monitor_set_awake (
gboolean awake)
{
if (awake)
- connectivity_monitor_change_states (self, CONNECTIVITY_AWAKE, 0, NULL);
+ connectivity_monitor_add_states (self, CONNECTIVITY_AWAKE, NULL);
else
- connectivity_monitor_change_states (self, 0, CONNECTIVITY_AWAKE, NULL);
+ connectivity_monitor_remove_states (self, CONNECTIVITY_AWAKE, NULL);
}
static void
@@ -372,14 +394,14 @@ login1_prepare_for_sleep_cb (GDBusConnection *system_bus G_GNUC_UNUSED,
if (sleeping)
{
DEBUG ("about to suspend");
- connectivity_monitor_change_states (self, 0, CONNECTIVITY_AWAKE,
+ connectivity_monitor_remove_states (self, CONNECTIVITY_AWAKE,
self->priv->login1_inhibit);
}
else
{
DEBUG ("woke up, or suspend was cancelled");
connectivity_monitor_renew_inhibit (self);
- connectivity_monitor_change_states (self, CONNECTIVITY_AWAKE, 0,
+ connectivity_monitor_add_states (self, CONNECTIVITY_AWAKE,
self->priv->login1_inhibit);
}
}
@@ -412,14 +434,14 @@ login1_prepare_for_shutdown_cb (GDBusConnection *system_bus G_GNUC_UNUSED,
if (shutting_down)
{
DEBUG ("about to shut down");
- connectivity_monitor_change_states (self, 0, CONNECTIVITY_RUNNING,
+ connectivity_monitor_remove_states (self, CONNECTIVITY_RUNNING,
self->priv->login1_inhibit);
}
else
{
DEBUG ("shutdown was cancelled");
connectivity_monitor_renew_inhibit (self);
- connectivity_monitor_change_states (self, CONNECTIVITY_RUNNING, 0,
+ connectivity_monitor_add_states (self, CONNECTIVITY_RUNNING,
self->priv->login1_inhibit);
}
}
@@ -735,8 +757,8 @@ mcd_connectivity_monitor_set_use_conn (McdConnectivityMonitor *connectivity_moni
else
{
/* !use_conn basically means "always assume it's stable and up". */
- connectivity_monitor_change_states (connectivity_monitor,
- CONNECTIVITY_STABLE|CONNECTIVITY_UP, 0, NULL);
+ connectivity_monitor_add_states (connectivity_monitor,
+ CONNECTIVITY_STABLE|CONNECTIVITY_UP, NULL);
}
g_object_notify (G_OBJECT (connectivity_monitor), "use-conn");
More information about the telepathy-commits
mailing list