Home | History | Annotate | Download | only in gio
      1 /* GIO - GLib Input, Output and Streaming Library
      2  *
      3  * Copyright (C) 2006-2007 Red Hat, Inc.
      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: Alexander Larsson <alexl (at) redhat.com>
     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_SIMPLE_ASYNC_RESULT_H__
     28 #define __G_SIMPLE_ASYNC_RESULT_H__
     29 
     30 #include <gio/giotypes.h>
     31 
     32 G_BEGIN_DECLS
     33 
     34 #define G_TYPE_SIMPLE_ASYNC_RESULT         (g_simple_async_result_get_type ())
     35 #define G_SIMPLE_ASYNC_RESULT(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SIMPLE_ASYNC_RESULT, GSimpleAsyncResult))
     36 #define G_SIMPLE_ASYNC_RESULT_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SIMPLE_ASYNC_RESULT, GSimpleAsyncResultClass))
     37 #define G_IS_SIMPLE_ASYNC_RESULT(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SIMPLE_ASYNC_RESULT))
     38 #define G_IS_SIMPLE_ASYNC_RESULT_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SIMPLE_ASYNC_RESULT))
     39 #define G_SIMPLE_ASYNC_RESULT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SIMPLE_ASYNC_RESULT, GSimpleAsyncResultClass))
     40 
     41 /**
     42  * GSimpleAsyncResult:
     43  *
     44  * A simple implementation of #GAsyncResult.
     45  **/
     46 typedef struct _GSimpleAsyncResultClass   GSimpleAsyncResultClass;
     47 
     48 
     49 GType               g_simple_async_result_get_type         (void) G_GNUC_CONST;
     50 
     51 GSimpleAsyncResult *g_simple_async_result_new              (GObject                 *source_object,
     52 							    GAsyncReadyCallback      callback,
     53 							    gpointer                 user_data,
     54 							    gpointer                 source_tag);
     55 GSimpleAsyncResult *g_simple_async_result_new_error        (GObject                 *source_object,
     56 							    GAsyncReadyCallback      callback,
     57 							    gpointer                 user_data,
     58 							    GQuark                   domain,
     59 							    gint                     code,
     60 							    const char              *format,
     61 							    ...) G_GNUC_PRINTF (6, 7);
     62 GSimpleAsyncResult *g_simple_async_result_new_from_error   (GObject                 *source_object,
     63 							    GAsyncReadyCallback      callback,
     64 							    gpointer                 user_data,
     65 							    GError                  *error);
     66 
     67 void                g_simple_async_result_set_op_res_gpointer (GSimpleAsyncResult      *simple,
     68                                                                gpointer                 op_res,
     69                                                                GDestroyNotify           destroy_op_res);
     70 gpointer            g_simple_async_result_get_op_res_gpointer (GSimpleAsyncResult      *simple);
     71 
     72 void                g_simple_async_result_set_op_res_gssize   (GSimpleAsyncResult      *simple,
     73                                                                gssize                   op_res);
     74 gssize              g_simple_async_result_get_op_res_gssize   (GSimpleAsyncResult      *simple);
     75 
     76 void                g_simple_async_result_set_op_res_gboolean (GSimpleAsyncResult      *simple,
     77                                                                gboolean                 op_res);
     78 gboolean            g_simple_async_result_get_op_res_gboolean (GSimpleAsyncResult      *simple);
     79 
     80 
     81 
     82 gpointer            g_simple_async_result_get_source_tag   (GSimpleAsyncResult      *simple);
     83 void                g_simple_async_result_set_handle_cancellation (GSimpleAsyncResult      *simple,
     84 								   gboolean          handle_cancellation);
     85 void                g_simple_async_result_complete         (GSimpleAsyncResult      *simple);
     86 void                g_simple_async_result_complete_in_idle (GSimpleAsyncResult      *simple);
     87 void                g_simple_async_result_run_in_thread    (GSimpleAsyncResult      *simple,
     88 							    GSimpleAsyncThreadFunc   func,
     89 							    int                      io_priority,
     90 							    GCancellable            *cancellable);
     91 void                g_simple_async_result_set_from_error   (GSimpleAsyncResult      *simple,
     92 							    GError                  *error);
     93 gboolean            g_simple_async_result_propagate_error  (GSimpleAsyncResult      *simple,
     94 							    GError                 **dest);
     95 void                g_simple_async_result_set_error        (GSimpleAsyncResult      *simple,
     96 							    GQuark                   domain,
     97 							    gint                     code,
     98 							    const char              *format,
     99 							    ...) G_GNUC_PRINTF (4, 5);
    100 void                g_simple_async_result_set_error_va     (GSimpleAsyncResult      *simple,
    101 							    GQuark                   domain,
    102 							    gint                     code,
    103 							    const char              *format,
    104 							    va_list                  args);
    105 gboolean            g_simple_async_result_is_valid         (GAsyncResult            *result,
    106                                                             GObject                 *source,
    107                                                             gpointer                 source_tag);
    108 
    109 void g_simple_async_report_error_in_idle  (GObject            *object,
    110 					   GAsyncReadyCallback callback,
    111 					   gpointer            user_data,
    112 					   GQuark              domain,
    113 					   gint                code,
    114 					   const char         *format,
    115 					   ...);
    116 void g_simple_async_report_gerror_in_idle (GObject            *object,
    117 					   GAsyncReadyCallback callback,
    118 					   gpointer            user_data,
    119 					   GError             *error);
    120 
    121 G_END_DECLS
    122 
    123 
    124 
    125 #endif /* __G_SIMPLE_ASYNC_RESULT_H__ */
    126