GSocket: Reset the timeout in the GSocket GSource after it was triggered
[platform/upstream/glib.git] / gio / gcancellable.h
index a6229da..d8fa633 100644 (file)
@@ -1,5 +1,5 @@
 /* GIO - GLib Input, Output and Streaming Library
- * 
+ *
  * Copyright (C) 2006-2007 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * Author: Alexander Larsson <alexl@redhat.com>
  */
 
+#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
+#error "Only <gio/gio.h> can be included directly."
+#endif
+
 #ifndef __G_CANCELLABLE_H__
 #define __G_CANCELLABLE_H__
 
-#include <glib-object.h>
+#include <gio/giotypes.h>
 
 G_BEGIN_DECLS
 
@@ -34,8 +38,21 @@ G_BEGIN_DECLS
 #define G_IS_CANCELLABLE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_CANCELLABLE))
 #define G_CANCELLABLE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_CANCELLABLE, GCancellableClass))
 
-typedef struct _GCancellable        GCancellable;
+/**
+ * GCancellable:
+ *
+ * Allows actions to be cancelled.
+ */
 typedef struct _GCancellableClass   GCancellableClass;
+typedef struct _GCancellablePrivate GCancellablePrivate;
+
+struct _GCancellable
+{
+  GObject parent_instance;
+
+  /*< private >*/
+  GCancellablePrivate *priv;
+};
 
 struct _GCancellableClass
 {
@@ -43,6 +60,7 @@ struct _GCancellableClass
 
   void (* cancelled) (GCancellable *cancellable);
 
+  /*< private >*/
   /* Padding for future expansion */
   void (*_g_reserved1) (void);
   void (*_g_reserved2) (void);
@@ -51,19 +69,32 @@ struct _GCancellableClass
   void (*_g_reserved5) (void);
 };
 
-GType g_cancellable_get_type (void) G_GNUC_CONST;
+GType         g_cancellable_get_type               (void) G_GNUC_CONST;
 
-GCancellable *g_cancellable_new          (void);
+GCancellable *g_cancellable_new                    (void);
 
 /* These are only safe to call inside a cancellable op */
 gboolean      g_cancellable_is_cancelled           (GCancellable  *cancellable);
 gboolean      g_cancellable_set_error_if_cancelled (GCancellable  *cancellable,
                                                    GError       **error);
+
 int           g_cancellable_get_fd                 (GCancellable  *cancellable);
+gboolean      g_cancellable_make_pollfd            (GCancellable  *cancellable,
+                                                   GPollFD       *pollfd);
+void          g_cancellable_release_fd             (GCancellable  *cancellable);
+
+GSource *     g_cancellable_source_new             (GCancellable  *cancellable);
+
 GCancellable *g_cancellable_get_current            (void);
-void          g_push_current_cancellable           (GCancellable  *cancellable);
-void          g_pop_current_cancellable            (GCancellable  *cancellable);
+void          g_cancellable_push_current           (GCancellable  *cancellable);
+void          g_cancellable_pop_current            (GCancellable  *cancellable);
 void          g_cancellable_reset                  (GCancellable  *cancellable);
+gulong        g_cancellable_connect                (GCancellable  *cancellable,
+                                                   GCallback      callback,
+                                                   gpointer       data,
+                                                   GDestroyNotify data_destroy_func);
+void          g_cancellable_disconnect             (GCancellable  *cancellable,
+                                                   gulong         handler_id);
 
 
 /* This is safe to call from another thread */