[telepathy-mission-control/master] McdConnection: add a "ready" signal, emitted whenever our TpConnection becomes ready
Simon McVittie
simon.mcvittie at collabora.co.uk
Mon Jun 1 09:48:49 PDT 2009
---
.../tmpl/mcd-connection.sgml | 7 +++++++
src/mcd-connection-priv.h | 2 ++
src/mcd-connection.c | 17 +++++++++++++++++
3 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/doc/reference/libmissioncontrol-server/tmpl/mcd-connection.sgml b/doc/reference/libmissioncontrol-server/tmpl/mcd-connection.sgml
index b296e48..b96b1ce 100644
--- a/doc/reference/libmissioncontrol-server/tmpl/mcd-connection.sgml
+++ b/doc/reference/libmissioncontrol-server/tmpl/mcd-connection.sgml
@@ -32,6 +32,13 @@ McdConnection
@arg1:
@arg2:
+<!-- ##### SIGNAL McdConnection::ready ##### -->
+<para>
+
+</para>
+
+ at mcdconnection: the object which received the signal.
+
<!-- ##### SIGNAL McdConnection::self-presence-changed ##### -->
<para>
diff --git a/src/mcd-connection-priv.h b/src/mcd-connection-priv.h
index db5e6bb..b394947 100644
--- a/src/mcd-connection-priv.h
+++ b/src/mcd-connection-priv.h
@@ -46,6 +46,8 @@ void _mcd_connection_set_tp_connection (McdConnection *connection,
G_GNUC_INTERNAL void _mcd_connection_start_dispatching (McdConnection *self);
+G_GNUC_INTERNAL gboolean _mcd_connection_is_ready (McdConnection *self);
+
G_END_DECLS
#endif
diff --git a/src/mcd-connection.c b/src/mcd-connection.c
index 1ac6c6d..e2cc25b 100644
--- a/src/mcd-connection.c
+++ b/src/mcd-connection.c
@@ -148,6 +148,7 @@ enum
enum
{
+ READY,
SELF_PRESENCE_CHANGED,
CONNECTION_STATUS_CHANGED,
N_SIGNALS
@@ -1417,6 +1418,8 @@ on_connection_ready (TpConnection *tp_conn, const GError *error,
_mcd_connection_setup_alias (connection);
_mcd_dispatcher_add_connection (priv->dispatcher, connection);
+
+ g_signal_emit (connection, signals[READY], 0);
}
void
@@ -1850,6 +1853,12 @@ mcd_connection_class_init (McdConnectionClass * klass)
G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0,
NULL, NULL, _mcd_marshal_VOID__UINT_UINT,
G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+
+ signals[READY] = g_signal_new ("ready",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0,
+ NULL, NULL, g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
static void
@@ -2208,3 +2217,11 @@ mcd_connection_get_tp_connection (McdConnection *connection)
return connection->priv->tp_conn;
}
+gboolean
+_mcd_connection_is_ready (McdConnection *self)
+{
+ g_return_val_if_fail (MCD_IS_CONNECTION (self), FALSE);
+
+ return (self->priv->tp_conn != NULL) &&
+ tp_connection_is_ready (self->priv->tp_conn);
+}
--
1.5.6.5
More information about the telepathy-commits
mailing list