Git init
[profile/ivi/libsoup2.4.git] / libsoup / soup-proxy-uri-resolver.c
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * soup-proxy-uri-resolver.c: HTTP proxy resolver interface, take 2
4  *
5  * Copyright (C) 2009 Red Hat, Inc.
6  */
7
8 #ifdef HAVE_CONFIG_H
9 #include <config.h>
10 #endif
11
12 #include "soup-proxy-uri-resolver.h"
13 #include "soup-session-feature.h"
14
15 GType
16 soup_proxy_uri_resolver_get_type (void)
17 {
18   static volatile gsize g_define_type_id__volatile = 0;
19   if (g_once_init_enter (&g_define_type_id__volatile))
20     {
21       GType g_define_type_id =
22         g_type_register_static_simple (G_TYPE_INTERFACE,
23                                        g_intern_static_string ("SoupProxyURIResolver"),
24                                        sizeof (SoupProxyURIResolverInterface),
25                                        (GClassInitFunc)NULL,
26                                        0,
27                                        (GInstanceInitFunc)NULL,
28                                        (GTypeFlags) 0);
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);
31     }
32   return g_define_type_id__volatile;
33 }
34
35 /**
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()
41  *
42  * Callback for soup_proxy_uri_resolver_get_proxy_uri_async()
43  **/
44
45 /**
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
53  *
54  * Asynchronously determines a proxy URI to use for @msg and calls
55  * @callback.
56  *
57  * Since: 2.26.3
58  **/
59 void
60 soup_proxy_uri_resolver_get_proxy_uri_async (SoupProxyURIResolver  *proxy_uri_resolver,
61                                              SoupURI               *uri,
62                                              GMainContext          *async_context,
63                                              GCancellable          *cancellable,
64                                              SoupProxyURIResolverCallback callback,
65                                              gpointer               user_data)
66 {
67         SOUP_PROXY_URI_RESOLVER_GET_CLASS (proxy_uri_resolver)->
68                 get_proxy_uri_async (proxy_uri_resolver, uri,
69                                      async_context, cancellable,
70                                      callback, user_data);
71 }
72
73 /**
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
79  *
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.
83  *
84  * Return value: %SOUP_STATUS_OK if successful, or a transport-level
85  * error.
86  *
87  * Since: 2.26.3
88  **/
89 guint
90 soup_proxy_uri_resolver_get_proxy_uri_sync (SoupProxyURIResolver  *proxy_uri_resolver,
91                                             SoupURI               *uri,
92                                             GCancellable          *cancellable,
93                                             SoupURI              **proxy_uri)
94 {
95         return SOUP_PROXY_URI_RESOLVER_GET_CLASS (proxy_uri_resolver)->
96                 get_proxy_uri_sync (proxy_uri_resolver, uri, cancellable, proxy_uri);
97 }