Ensure g_file_copy() does not temporarily expose private files
[platform/upstream/glib.git] / gio / glocalfileoutputstream.h
index 1e35735..b8f062a 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
@@ -51,21 +51,43 @@ struct _GLocalFileOutputStreamClass
   GFileOutputStreamClass parent_class;
 };
 
-GType _g_local_file_output_stream_get_type (void) G_GNUC_CONST;
-GFileOutputStream *_g_local_file_output_stream_create  (const char       *filename,
-                                                       GFileCreateFlags  flags,
-                                                       GCancellable     *cancellable,
-                                                       GError          **error);
-GFileOutputStream *_g_local_file_output_stream_append  (const char       *filename,
-                                                       GFileCreateFlags  flags,
-                                                       GCancellable     *cancellable,
-                                                       GError          **error);
-GFileOutputStream *_g_local_file_output_stream_replace (const char       *filename,
-                                                       const char       *etag,
-                                                       gboolean          create_backup,
-                                                       GFileCreateFlags  flags,
-                                                       GCancellable     *cancellable,
-                                                       GError          **error);
+GType               _g_local_file_output_stream_get_type (void) G_GNUC_CONST;
+
+void     _g_local_file_output_stream_set_do_close (GLocalFileOutputStream *out,
+                                                  gboolean do_close);
+gboolean _g_local_file_output_stream_really_close (GLocalFileOutputStream *out,
+                                                  GCancellable   *cancellable,
+                                                  GError        **error);
+
+GFileOutputStream * _g_local_file_output_stream_new      (int               fd);
+GFileOutputStream * _g_local_file_output_stream_open     (const char       *filename,
+                                                         gboolean          readable,
+                                                          GCancellable     *cancellable,
+                                                          GError          **error);
+GFileOutputStream * _g_local_file_output_stream_create   (const char       *filename,
+                                                         gboolean          readable,
+                                                          GFileCreateFlags  flags,
+                                                          GFileInfo        *reference_info,
+                                                          GCancellable     *cancellable,
+                                                          GError          **error);
+GFileOutputStream * _g_local_file_output_stream_append   (const char       *filename,
+                                                          GFileCreateFlags  flags,
+                                                          GCancellable     *cancellable,
+                                                          GError          **error);
+GFileOutputStream * _g_local_file_output_stream_replace  (const char       *filename,
+                                                         gboolean          readable,
+                                                          const char       *etag,
+                                                          gboolean          create_backup,
+                                                          GFileCreateFlags  flags,
+                                                          GFileInfo        *reference_info,
+                                                          GCancellable     *cancellable,
+                                                          GError          **error);
+
+/* Hack to get the fd since GFileDescriptorBased (which is how you
+ * _should_ get the fd) is only available on UNIX but things like
+ * win32 needs this as well
+ */
+gint _g_local_file_output_stream_get_fd (GLocalFileOutputStream *output_stream);
 
 G_END_DECLS