static RingTextChannel * get_text_channel(RingTextManager *self, char const *address, gboolean class0, gboolean self_invoked) { TpHandleRepoIface *repo; RingTextChannel *channel = NULL; TpHandle handle, initiator; GError *error = NULL; g_return_val_if_fail (address != NULL, NULL); repo = tp_base_connection_get_handles( (TpBaseConnection *)self->priv->connection, TP_HANDLE_TYPE_CONTACT); error = NULL; handle = tp_handle_ensure(repo, address, ring_network_normalization_context(), &error); if (handle == 0) { DEBUG("tp_handle_ensure: %s: %s (%d@%s)", address, GERROR_MSG_CODE(error)); g_clear_error(&error); /* Xyzzy */ return NULL; } initiator = self_invoked ? self->priv->connection->parent.self_handle : handle; channel = ring_text_manager_request(self, NULL, initiator, handle, 0, class0); if (channel == NULL) tp_handle_unref(repo, handle); return channel; }
static void location_pep_node_changed (WockyPepService *pep, WockyBareContact *contact, WockyStanza *stanza, GabbleConnection *conn) { TpHandleRepoIface *contact_repo = tp_base_connection_get_handles ( (TpBaseConnection *) conn, TP_HANDLE_TYPE_CONTACT); TpBaseConnection *base = (TpBaseConnection *) conn; TpHandle handle; const gchar *jid; jid = wocky_bare_contact_get_jid (contact); handle = tp_handle_ensure (contact_repo, jid, NULL, NULL); if (handle == 0) { DEBUG ("Invalid from: %s", jid); return; } if (handle == base->self_handle) /* Ignore echoed pubsub notifications */ goto out; update_location_from_msg (conn, handle, stanza); out: tp_handle_unref (contact_repo, handle); }
static void finalize (GObject *object) { ExampleCallableMediaChannel *self = EXAMPLE_CALLABLE_MEDIA_CHANNEL (object); TpHandleRepoIface *contact_handles = tp_base_connection_get_handles (self->priv->conn, TP_HANDLE_TYPE_CONTACT); tp_handle_unref (contact_handles, self->priv->handle); tp_handle_unref (contact_handles, self->priv->initiator); g_free (self->priv->object_path); tp_group_mixin_finalize (object); ((GObjectClass *) example_callable_media_channel_parent_class)->finalize (object); }
static void finalize (GObject *object) { ExampleContactListBase *self = EXAMPLE_CONTACT_LIST_BASE (object); TpHandleRepoIface *handle_repo = tp_base_connection_get_handles (self->priv->conn, self->priv->handle_type); tp_handle_unref (handle_repo, self->priv->handle); g_free (self->priv->object_path); tp_group_mixin_finalize (object); ((GObjectClass *) example_contact_list_base_parent_class)->finalize (object); }
gchar * tp_tests_simple_connection_ensure_text_chan (TpTestsSimpleConnection *self, const gchar *target_id, GHashTable **props) { TpTestsTextChannelNull *chan; gchar *chan_path; TpHandleRepoIface *contact_repo; TpHandle handle; static guint count = 0; TpBaseConnection *base_conn = (TpBaseConnection *) self; /* Get contact handle */ contact_repo = tp_base_connection_get_handles (base_conn, TP_HANDLE_TYPE_CONTACT); g_assert (contact_repo != NULL); handle = tp_handle_ensure (contact_repo, target_id, NULL, NULL); chan = g_hash_table_lookup (self->priv->channels, GUINT_TO_POINTER (handle)); if (chan != NULL) { /* Channel already exist, reuse it */ g_object_get (chan, "object-path", &chan_path, NULL); } else { chan_path = g_strdup_printf ("%s/Channel%u", base_conn->object_path, count++); chan = TP_TESTS_TEXT_CHANNEL_NULL ( tp_tests_object_new_static_class ( TP_TESTS_TYPE_TEXT_CHANNEL_NULL, "connection", self, "object-path", chan_path, "handle", handle, NULL)); g_hash_table_insert (self->priv->channels, GUINT_TO_POINTER (handle), chan); } tp_handle_unref (contact_repo, handle); if (props != NULL) *props = tp_tests_text_channel_get_props (chan); return chan_path; }
void tp_tests_simple_connection_set_identifier (TpTestsSimpleConnection *self, const gchar *identifier) { TpBaseConnection *conn = (TpBaseConnection *) self; TpHandleRepoIface *contact_repo = tp_base_connection_get_handles (conn, TP_HANDLE_TYPE_CONTACT); TpHandle handle = tp_handle_ensure (contact_repo, identifier, NULL, NULL); /* if this fails then the identifier was bad - caller error */ g_return_if_fail (handle != 0); tp_base_connection_set_self_handle (conn, handle); tp_handle_unref (contact_repo, handle); }
static void dispose (GObject *object) { ExampleCallStream *self = EXAMPLE_CALL_STREAM (object); TpHandleRepoIface *contact_repo = tp_base_connection_get_handles ( self->priv->conn, TP_HANDLE_TYPE_CONTACT); example_call_stream_close (self); if (self->priv->handle != 0) { tp_handle_unref (contact_repo, self->priv->handle); self->priv->handle = 0; } if (self->priv->conn != NULL) { g_object_unref (self->priv->conn); self->priv->conn = NULL; } ((GObjectClass *) example_call_stream_parent_class)->dispose (object); }