directory-handle.h

Go to the documentation of this file.
00001 /* $Id: directory-handle.h 864 2006-10-31 09:06:50Z murrayc $ */
00002 
00003 /* Copyright 2003 gnome-vfsmm Development Team
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Library General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Library General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Library General Public
00016  * License along with this library; if not, write to the Free
00017  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
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 /* DOXYGEN_SHOULD_SKIP_THIS */
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   typedef gboolean (* GnomeVFSDirectoryVisitFunc)        (const gchar *rel_path,
00055                                                   GnomeVFSFileInfo *info,
00056                                                   gboolean recursing_will_loop,
00057                                                   gpointer data,
00058                                                   gboolean *recurse);
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 } // namespace Vfs
00111 } // namespace Gnome
00112 
00113 
00114 
00115 
00116 #endif /* _LIBGNOMEVFSMM_DIRECTORYHANDLE_H */
00117 

Generated on Mon Sep 17 20:01:13 2007 for libgnomevfsmm by  doxygen 1.5.3