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 #ifdef GLIBMM_EXCEPTIONS_ENABLED
00062 static void visit(const Glib::ustring& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
00063 static void visit(const Glib::RefPtr<const Uri>& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
00064
00065 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);
00066 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);
00067
00068 static void list_load(const Glib::ListHandle<Glib::ustring>& list, const Glib::ustring& text_uri, FileInfoOptions info_options) throw(exception);
00069
00070 void open(const Glib::ustring& text_uri, FileInfoOptions options = FILE_INFO_DEFAULT) throw(exception);
00071 void open(const Glib::RefPtr<const Uri>& uri, FileInfoOptions options = FILE_INFO_DEFAULT) throw(exception);
00072
00073 void close() throw(exception);
00074
00075 Glib::RefPtr<FileInfo> read_next(bool& file_exists) throw(exception);
00076
00079 Glib::RefPtr<FileInfo> read_next() throw(exception);
00080 #else
00081 static void visit(const Glib::ustring& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot, std::auto_ptr<Gnome::Vfs::exception>& error);
00082 static void visit(const Glib::RefPtr<const Uri>& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot, std::auto_ptr<Gnome::Vfs::exception>& error);
00083
00084 static void visit_files(const Glib::ustring& uri, const Glib::ListHandle<Glib::ustring>& file_list, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot, std::auto_ptr<Gnome::Vfs::exception>& error);
00085 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, std::auto_ptr<Gnome::Vfs::exception>& error);
00086
00087 static void list_load(const Glib::ListHandle<Glib::ustring>& list, const Glib::ustring& text_uri, FileInfoOptions info_options, std::auto_ptr<Gnome::Vfs::exception>& error);
00088
00089 void open(const Glib::ustring& text_uri, FileInfoOptions options, std::auto_ptr<Gnome::Vfs::exception>& error);
00090 void open(const Glib::RefPtr<const Uri>& uri, FileInfoOptions options, std::auto_ptr<Gnome::Vfs::exception>& error);
00091
00092 void close(std::auto_ptr<Gnome::Vfs::exception>& error);
00093
00094 Glib::RefPtr<FileInfo> read_next(bool& file_exists, std::auto_ptr<Gnome::Vfs::exception>& error);
00095
00098 Glib::RefPtr<FileInfo> read_next(std::auto_ptr<Gnome::Vfs::exception>& error);
00099 #endif //GLIBMM_EXCEPTIONS_ENABLED
00100
00101 GnomeVFSDirectoryHandle* gobj();
00102 const GnomeVFSDirectoryHandle* gobj() const;
00103
00104
00105 protected:
00106
00107 GnomeVFSDirectoryHandle* gobj_;
00108 };
00109
00110 }
00111 }
00112
00113
00114
00115
00116 #endif
00117