Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
	}
}
Esempio n. 5
0
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);
	}
}