00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _LIBGNOMEVFSMM_DIRECTORYHANDLE_H
00022 #define _LIBGNOMEVFSMM_DIRECTORYHANDLE_H
00023
00024 #include <glibmm.h>
00025
00026 #include <libgnomevfsmm/uri.h>
00027 #include <libgnomevfsmm/file-info.h>
00028 #include <libgnomevfsmm/enums.h>
00029 #include <libgnomevfsmm/exception.h>
00030 #include <libgnomevfs/gnome-vfs-directory.h>
00031
00032
00033 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00034 typedef struct GnomeVFSDirectoryHandle GnomeVFSDirectoryHandle;
00035 #endif
00036
00037 namespace Gnome
00038 {
00039
00040 namespace Vfs
00041 {
00042
00043 class DirectoryHandle
00044 {
00045 public:
00046 DirectoryHandle();
00047 virtual ~DirectoryHandle();
00048
00049
00051 typedef sigc::slot<bool, const Glib::ustring&, const Glib::RefPtr<const FileInfo>&, bool, bool&> SlotVisit;
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 static void visit(const Glib::ustring& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
00062 static void visit(const Glib::RefPtr<const Uri>& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
00063
00064 static void visit_files(const Glib::ustring& uri, const Glib::ListHandle<Glib::ustring>& file_list, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
00065 static void visit_files(const Glib::RefPtr<const Uri>& uri, const Glib::ListHandle<Glib::ustring> & file_list, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
00066
00067 static void list_load(const Glib::ListHandle<Glib::ustring>& list, const Glib::ustring& text_uri, FileInfoOptions info_options) throw(exception);
00068
00069 void open(const Glib::ustring& text_uri, FileInfoOptions options = FILE_INFO_DEFAULT) throw(exception);
00070 void open(const Glib::RefPtr<const Uri>& uri, FileInfoOptions options = FILE_INFO_DEFAULT) throw(exception);
00071
00072 void close() throw(exception);
00073
00074 Glib::RefPtr<FileInfo> read_next(bool& file_exists) throw(exception);
00075
00076
00077 GnomeVFSDirectoryHandle* gobj();
00078 const GnomeVFSDirectoryHandle* gobj() const;
00079
00080
00081 protected:
00082
00083 GnomeVFSDirectoryHandle* gobj_;
00084 };
00085
00086 }
00087 }
00088
00089
00090
00091
00092 #endif
00093