1 /* GIO - GLib Input, Output and Streaming Library
3 * Copyright (C) 2010 Collabora, Ltd.
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.
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.
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.
20 * Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25 #include "gdummyproxyresolver.h"
29 #include "gasyncresult.h"
30 #include "gcancellable.h"
31 #include "gproxyresolver.h"
32 #include "gsimpleasyncresult.h"
34 #include "giomodule.h"
35 #include "giomodule-priv.h"
37 struct _GDummyProxyResolver
{
38 GObject parent_instance
;
41 static void g_dummy_proxy_resolver_iface_init (GProxyResolverInterface
*iface
);
43 #define g_dummy_proxy_resolver_get_type _g_dummy_proxy_resolver_get_type
44 G_DEFINE_TYPE_WITH_CODE (GDummyProxyResolver
, g_dummy_proxy_resolver
, G_TYPE_OBJECT
,
45 G_IMPLEMENT_INTERFACE (G_TYPE_PROXY_RESOLVER
,
46 g_dummy_proxy_resolver_iface_init
)
47 _g_io_modules_ensure_extension_points_registered ();
48 g_io_extension_point_implement (G_PROXY_RESOLVER_EXTENSION_POINT_NAME
,
54 g_dummy_proxy_resolver_finalize (GObject
*object
)
57 G_OBJECT_CLASS (g_dummy_proxy_resolver_parent_class
)->finalize (object
);
61 g_dummy_proxy_resolver_init (GDummyProxyResolver
*resolver
)
66 g_dummy_proxy_resolver_is_supported (GProxyResolver
*resolver
)
72 g_dummy_proxy_resolver_lookup (GProxyResolver
*resolver
,
74 GCancellable
*cancellable
,
79 if (g_cancellable_set_error_if_cancelled (cancellable
, error
))
82 proxies
= g_new0 (gchar
*, 2);
83 proxies
[0] = g_strdup ("direct://");
89 g_dummy_proxy_resolver_lookup_async (GProxyResolver
*resolver
,
91 GCancellable
*cancellable
,
92 GAsyncReadyCallback callback
,
96 GSimpleAsyncResult
*simple
;
99 proxies
= g_dummy_proxy_resolver_lookup (resolver
, uri
, cancellable
, &error
);
102 simple
= g_simple_async_result_new (G_OBJECT (resolver
),
104 g_dummy_proxy_resolver_lookup_async
);
108 g_simple_async_result_take_error (simple
, error
);
112 g_simple_async_result_set_op_res_gpointer (simple
,
117 g_simple_async_result_complete_in_idle (simple
);
118 g_object_unref (simple
);
122 g_dummy_proxy_resolver_lookup_finish (GProxyResolver
*resolver
,
123 GAsyncResult
*result
,
126 if (G_IS_SIMPLE_ASYNC_RESULT (result
))
128 GSimpleAsyncResult
*simple
= G_SIMPLE_ASYNC_RESULT (result
);
130 if (g_simple_async_result_propagate_error (simple
, error
))
133 return g_simple_async_result_get_op_res_gpointer (simple
);
140 g_dummy_proxy_resolver_class_init (GDummyProxyResolverClass
*resolver_class
)
142 GObjectClass
*object_class
;
144 object_class
= G_OBJECT_CLASS (resolver_class
);
145 object_class
->finalize
= g_dummy_proxy_resolver_finalize
;
149 g_dummy_proxy_resolver_iface_init (GProxyResolverInterface
*iface
)
151 iface
->is_supported
= g_dummy_proxy_resolver_is_supported
;
152 iface
->lookup
= g_dummy_proxy_resolver_lookup
;
153 iface
->lookup_async
= g_dummy_proxy_resolver_lookup_async
;
154 iface
->lookup_finish
= g_dummy_proxy_resolver_lookup_finish
;