static void soup_address_address_enumerator_finalize (GObject *object) { SoupAddressAddressEnumerator *addr_enum = SOUP_ADDRESS_ADDRESS_ENUMERATOR (object); g_object_unref (addr_enum->addr); G_OBJECT_CLASS (_soup_address_address_enumerator_parent_class)->finalize (object); }
static GSocketAddress * soup_address_address_enumerator_next_finish (GSocketAddressEnumerator *enumerator, GAsyncResult *result, GError **error) { SoupAddressAddressEnumerator *addr_enum = SOUP_ADDRESS_ADDRESS_ENUMERATOR (enumerator); GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); if (g_simple_async_result_propagate_error (simple, error)) return NULL; else return next_address (addr_enum); }
static GSocketAddress * soup_address_address_enumerator_next (GSocketAddressEnumerator *enumerator, GCancellable *cancellable, GError **error) { SoupAddressAddressEnumerator *addr_enum = SOUP_ADDRESS_ADDRESS_ENUMERATOR (enumerator); SoupAddressPrivate *priv = SOUP_ADDRESS_GET_PRIVATE (addr_enum->addr); if (!priv->sockaddr) { if (resolve_sync_internal (addr_enum->addr, cancellable, error) != SOUP_STATUS_OK) return NULL; } return next_address (addr_enum); }
static void soup_address_address_enumerator_next_async (GSocketAddressEnumerator *enumerator, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { SoupAddressAddressEnumerator *addr_enum = SOUP_ADDRESS_ADDRESS_ENUMERATOR (enumerator); SoupAddressPrivate *priv = SOUP_ADDRESS_GET_PRIVATE (addr_enum->addr); GTask *task; task = g_task_new (enumerator, cancellable, callback, user_data); if (!priv->sockaddr) { soup_address_resolve_async (addr_enum->addr, g_main_context_get_thread_default (), cancellable, got_addresses, task); } else { g_task_return_pointer (task, next_address (addr_enum), g_object_unref); g_object_unref (task); } }
static void soup_address_address_enumerator_next_async (GSocketAddressEnumerator *enumerator, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { SoupAddressAddressEnumerator *addr_enum = SOUP_ADDRESS_ADDRESS_ENUMERATOR (enumerator); SoupAddressPrivate *priv = SOUP_ADDRESS_GET_PRIVATE (addr_enum->addr); GSimpleAsyncResult *simple; simple = g_simple_async_result_new (G_OBJECT (enumerator), callback, user_data, soup_address_address_enumerator_next_async); if (!priv->sockaddr) { soup_address_resolve_async (addr_enum->addr, NULL, cancellable, got_addresses, simple); } else { g_simple_async_result_complete_in_idle (simple); g_object_unref (simple); } }