1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
3 * soup-proxy-uri-resolver.c: HTTP proxy resolver interface, take 2
5 * Copyright (C) 2009 Red Hat, Inc.
12 #include "soup-proxy-uri-resolver.h"
13 #include "soup-session-feature.h"
16 soup_proxy_uri_resolver_get_type (void)
18 static volatile gsize g_define_type_id__volatile = 0;
19 if (g_once_init_enter (&g_define_type_id__volatile))
21 GType g_define_type_id =
22 g_type_register_static_simple (G_TYPE_INTERFACE,
23 g_intern_static_string ("SoupProxyURIResolver"),
24 sizeof (SoupProxyURIResolverInterface),
27 (GInstanceInitFunc)NULL,
29 g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT);
30 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
32 return g_define_type_id__volatile;
36 * SoupProxyURIResolverCallback:
37 * @resolver: the #SoupProxyURIResolver
38 * @status: a #SoupKnownStatusCode
39 * @proxy_uri: the resolved proxy URI, or %NULL
40 * @user_data: data passed to soup_proxy_uri_resolver_get_proxy_uri_async()
42 * Callback for soup_proxy_uri_resolver_get_proxy_uri_async()
46 * soup_proxy_uri_resolver_get_proxy_uri_async:
47 * @proxy_uri_resolver: the #SoupProxyURIResolver
48 * @uri: the #SoupURI you want a proxy for
49 * @async_context: (allow-none): the #GMainContext to invoke @callback in
50 * @cancellable: a #GCancellable, or %NULL
51 * @callback: (scope async): callback to invoke with the proxy address
52 * @user_data: data for @callback
54 * Asynchronously determines a proxy URI to use for @msg and calls
60 soup_proxy_uri_resolver_get_proxy_uri_async (SoupProxyURIResolver *proxy_uri_resolver,
62 GMainContext *async_context,
63 GCancellable *cancellable,
64 SoupProxyURIResolverCallback callback,
67 SOUP_PROXY_URI_RESOLVER_GET_CLASS (proxy_uri_resolver)->
68 get_proxy_uri_async (proxy_uri_resolver, uri,
69 async_context, cancellable,
74 * soup_proxy_uri_resolver_get_proxy_uri_sync:
75 * @proxy_uri_resolver: the #SoupProxyURIResolver
76 * @uri: the #SoupURI you want a proxy for
77 * @cancellable: a #GCancellable, or %NULL
78 * @proxy_uri: (out): on return, will contain the proxy URI
80 * Synchronously determines a proxy URI to use for @uri. If @uri
81 * should be sent via proxy, *@proxy_uri will be set to the URI of the
82 * proxy, else it will be set to %NULL.
84 * Return value: %SOUP_STATUS_OK if successful, or a transport-level
90 soup_proxy_uri_resolver_get_proxy_uri_sync (SoupProxyURIResolver *proxy_uri_resolver,
92 GCancellable *cancellable,
95 return SOUP_PROXY_URI_RESOLVER_GET_CLASS (proxy_uri_resolver)->
96 get_proxy_uri_sync (proxy_uri_resolver, uri, cancellable, proxy_uri);