* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
*/
#include "gasyncresult.h"
#include "gcancellable.h"
#include "gproxyresolver.h"
-#include "gsimpleasyncresult.h"
+#include "gtask.h"
#include "giomodule.h"
#include "giomodule-priv.h"
gpointer user_data)
{
GError *error = NULL;
- GSimpleAsyncResult *simple;
+ GTask *task;
gchar **proxies;
- proxies = g_dummy_proxy_resolver_lookup (resolver, uri, cancellable, &error);
+ task = g_task_new (resolver, cancellable, callback, user_data);
-
- simple = g_simple_async_result_new (G_OBJECT (resolver),
- callback, user_data,
- g_dummy_proxy_resolver_lookup_async);
-
- if (proxies == NULL)
- {
- g_simple_async_result_take_error (simple, error);
- }
+ proxies = g_dummy_proxy_resolver_lookup (resolver, uri, cancellable, &error);
+ if (proxies)
+ g_task_return_pointer (task, proxies, (GDestroyNotify) g_strfreev);
else
- {
- g_simple_async_result_set_op_res_gpointer (simple,
- proxies,
- NULL);
- }
-
- g_simple_async_result_complete_in_idle (simple);
- g_object_unref (simple);
+ g_task_return_error (task, error);
+ g_object_unref (task);
}
static gchar **
GAsyncResult *result,
GError **error)
{
- if (G_IS_SIMPLE_ASYNC_RESULT (result))
- {
- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
-
- if (g_simple_async_result_propagate_error (simple, error))
- return NULL;
-
- return g_simple_async_result_get_op_res_gpointer (simple);
- }
+ g_return_val_if_fail (g_task_is_valid (result, resolver), NULL);
- return NULL;
+ return g_task_propagate_pointer (G_TASK (result), error);
}
static void