Initial original import from: fuse-2.4.2-2.fc4
[captive.git] / src / libcaptive / include / captive / client-directory.h
index 6b1049e..82f34ae 100644 (file)
@@ -23,9 +23,8 @@
 
 #include <glib/gmacros.h>
 #include <glib-object.h>
-#include "reactos/ntos/types.h"        /* for HANDLE */
-#include "reactos/ntos/zwtypes.h"      /* for FILE_ID_BOTH_DIR_INFORMATION */
 #include <libgnomevfs/gnome-vfs-file-info.h>   /* for GnomeVFSFileInfo */
+#include "captive/client-vfs.h"
 
 
 G_BEGIN_DECLS
@@ -38,36 +37,15 @@ G_BEGIN_DECLS
 #define CAPTIVE_DIRECTORY_OBJECT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),CAPTIVE_DIRECTORY_TYPE_OBJECT,CaptiveDirectoryObjectClass))
 typedef struct _CaptiveDirectoryObject      CaptiveDirectoryObject;
 typedef struct _CaptiveDirectoryObjectClass CaptiveDirectoryObjectClass;
-struct _CaptiveDirectoryObject {
-       GObject parent_instance;
 
-       /*< private >*/
-       HANDLE dir_Handle;
-       gboolean read_first;
-       /* 'QueryDirectory_buf' for NtQueryDirectoryFile() must be persistent
-        * to keep the state if !read_first.
-        * Both types of 'QueryDirectory_buf' MUST NOT be 'union' as we convert
-        * them by copying one to other.
-        */
-       struct {
-               char FileIdBothDirInformation[sizeof(FILE_ID_BOTH_DIR_INFORMATION)
-                               +0x1000 /* max 'FileName' length, 255 should be enough */ * sizeof(WCHAR /* *FILE_ID_BOTH_DIR_INFORMATION.FileName */ )];
-               char FileBothDirInformation[sizeof(FILE_BOTH_DIR_INFORMATION)
-                               +0x1000 /* max 'FileName' length, 255 should be enough */ * sizeof(WCHAR /* *FILE_ID_BOTH_DIR_INFORMATION.FileName */ )];
-               } QueryDirectory_buf;
-       enum {
-               CaptiveDirectoryObject_QueryDirectory_type_FileIdBothDirInformation,
-               CaptiveDirectoryObject_QueryDirectory_type_FileBothDirInformation,
-               } CaptiveDirectoryObject_QueryDirectory_type;
-       };
-struct _CaptiveDirectoryObjectClass {
-       GObjectClass parent_class;
-       };
 
 GType captive_directory_object_get_type(void);
 
-GnomeVFSResult captive_directory_new_open(CaptiveDirectoryObject **captive_directory_object_return,const gchar *pathname);
-GnomeVFSResult captive_directory_new_make(CaptiveDirectoryObject **captive_directory_object_return,const gchar *pathname,guint perm);
+GnomeVFSResult captive_directory_new_open(CaptiveDirectoryObject **captive_directory_object_return,
+               CaptiveVfsObject *captive_vfs_object,const gchar *pathname);
+GnomeVFSResult captive_directory_new_make(CaptiveDirectoryObject **captive_directory_object_return,
+               CaptiveVfsObject *captive_vfs_object,const gchar *pathname,guint perm);
+CaptiveVfsObject *captive_directory_ref_vfs(CaptiveDirectoryObject *captive_directory_object);
 GnomeVFSResult captive_directory_read(CaptiveDirectoryObject *captive_directory_object,GnomeVFSFileInfo *file_info);
 GnomeVFSResult captive_directory_remove(CaptiveDirectoryObject *captive_directory_object);