Tizen 2.1 base
[platform/upstream/glib2.0.git] / gio / gproxyresolver.h
1 /* GIO - GLib Input, Output and Streaming Library
2  *
3  * Copyright (C) 2010 Collabora, Ltd.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General
16  * Public License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18  * Boston, MA 02111-1307, USA.
19  *
20  * Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
21  */
22
23 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
24 #error "Only <gio/gio.h> can be included directly."
25 #endif
26
27 #ifndef __G_PROXY_RESOLVER_H__
28 #define __G_PROXY_RESOLVER_H__
29
30 #include <gio/giotypes.h>
31
32 G_BEGIN_DECLS
33
34 #define G_TYPE_PROXY_RESOLVER         (g_proxy_resolver_get_type ())
35 #define G_PROXY_RESOLVER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_PROXY_RESOLVER, GProxyResolver))
36 #define G_IS_PROXY_RESOLVER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_PROXY_RESOLVER))
37 #define G_PROXY_RESOLVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_PROXY_RESOLVER, GProxyResolverInterface))
38
39 /**
40  * G_PROXY_RESOLVER_EXTENSION_POINT_NAME:
41  *
42  * Extension point for proxy resolving functionality.
43  * See <link linkend="extending-gio">Extending GIO</link>.
44  */
45 #define G_PROXY_RESOLVER_EXTENSION_POINT_NAME "gio-proxy-resolver"
46
47 typedef struct _GProxyResolverInterface GProxyResolverInterface;
48
49 struct _GProxyResolverInterface {
50   GTypeInterface g_iface;
51
52   /* Virtual Table */
53   gboolean (* is_supported)  (GProxyResolver       *resolver);
54
55   gchar ** (* lookup)        (GProxyResolver       *resolver,
56                               const gchar          *uri,
57                               GCancellable         *cancellable,
58                               GError              **error);
59
60   void     (* lookup_async)  (GProxyResolver       *resolver,
61                               const gchar          *uri,
62                               GCancellable         *cancellable,
63                               GAsyncReadyCallback   callback,
64                               gpointer              user_data);
65
66   gchar ** (* lookup_finish) (GProxyResolver       *resolver,
67                               GAsyncResult         *result,
68                               GError              **error);
69 };
70
71 GType           g_proxy_resolver_get_type       (void) G_GNUC_CONST;
72 GProxyResolver *g_proxy_resolver_get_default    (void);
73
74 gboolean        g_proxy_resolver_is_supported   (GProxyResolver       *resolver);
75 gchar         **g_proxy_resolver_lookup         (GProxyResolver       *resolver,
76                                                  const gchar          *uri,
77                                                  GCancellable         *cancellable,
78                                                  GError              **error);
79 void            g_proxy_resolver_lookup_async   (GProxyResolver       *resolver,
80                                                  const gchar          *uri,
81                                                  GCancellable         *cancellable,
82                                                  GAsyncReadyCallback   callback,
83                                                  gpointer              user_data);
84 gchar         **g_proxy_resolver_lookup_finish  (GProxyResolver       *resolver,
85                                                  GAsyncResult         *result,
86                                                  GError              **error);
87
88
89 G_END_DECLS
90
91 #endif /* __G_PROXY_RESOLVER_H__ */