g_unix_set_fd_nonblocking: New API to control file descriptor blocking state
[platform/upstream/glib.git] / gio / glocalfileinfo.h
index 888d5ba..82ad746 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
 #include <gio/gfileinfo.h>
 #include <gio/gfile.h>
 #include <sys/stat.h>
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
 
 G_BEGIN_DECLS
 
-typedef struct {
+typedef struct
+{
   gboolean writable;
   gboolean is_sticky;
-  int owner;
-  dev_t device;
+  gboolean has_trash_dir;
+  int      owner;
+  dev_t    device;
+  gpointer extra_data;
+  GDestroyNotify free_extra_data;
 } GLocalParentFileInfo;
 
-void       _g_local_file_info_get_parent_info (const char                 *dir,
-                                              GFileAttributeMatcher      *attribute_matcher,
-                                              GLocalParentFileInfo       *parent_info);
-GFileInfo *_g_local_file_info_get             (const char                 *basename,
-                                              const char                 *path,
-                                              GFileAttributeMatcher      *attribute_matcher,
-                                              GFileQueryInfoFlags         flags,
-                                              GLocalParentFileInfo       *parent_info,
-                                              GError                    **error);
-GFileInfo *_g_local_file_info_get_from_fd     (int                         fd,
-                                              char                       *attributes,
-                                              GError                    **error);
-char *     _g_local_file_info_create_etag     (struct stat                *statbuf);
-gboolean   _g_local_file_info_set_attribute   (char                       *filename,
-                                              const char                 *attribute,
-                                              const GFileAttributeValue  *value,
-                                              GFileQueryInfoFlags         flags,
-                                              GCancellable               *cancellable,
-                                              GError                    **error);
-gboolean   _g_local_file_info_set_attributes  (char                       *filename,
-                                              GFileInfo                  *info,
-                                              GFileQueryInfoFlags         flags,
-                                              GCancellable               *cancellable,
-                                              GError                    **error);
+#ifdef G_OS_WIN32
+/* We want 64-bit file size support */
+#define GLocalFileStat struct _stati64
+#else
+#define GLocalFileStat struct stat
+#endif
+
+gboolean   _g_local_file_has_trash_dir        (const char             *dirname,
+                                               dev_t                   dir_dev);
+void       _g_local_file_info_get_parent_info (const char             *dir,
+                                               GFileAttributeMatcher  *attribute_matcher,
+                                               GLocalParentFileInfo   *parent_info);
+void       _g_local_file_info_free_parent_info (GLocalParentFileInfo   *parent_info);
+GFileInfo *_g_local_file_info_get             (const char             *basename,
+                                               const char             *path,
+                                               GFileAttributeMatcher  *attribute_matcher,
+                                               GFileQueryInfoFlags     flags,
+                                               GLocalParentFileInfo   *parent_info,
+                                               GError                **error);
+GFileInfo *_g_local_file_info_get_from_fd     (int                     fd,
+                                               const char             *attributes,
+                                               GError                **error);
+char *     _g_local_file_info_create_etag     (GLocalFileStat         *statbuf);
+gboolean   _g_local_file_info_set_attribute   (char                   *filename,
+                                               const char             *attribute,
+                                               GFileAttributeType      type,
+                                               gpointer                value_p,
+                                               GFileQueryInfoFlags     flags,
+                                               GCancellable           *cancellable,
+                                               GError                **error);
+gboolean   _g_local_file_info_set_attributes  (char                   *filename,
+                                               GFileInfo              *info,
+                                               GFileQueryInfoFlags     flags,
+                                               GCancellable           *cancellable,
+                                               GError                **error);
 
 G_END_DECLS