libgnomevfsmm  2.26.0
directory-handle.h
Go to the documentation of this file.
1 /* $Id: directory-handle.h 2019 2009-01-27 08:29:42Z murrayc $ */
2 
3 /* Copyright 2003 gnome-vfsmm Development Team
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free
17  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19 
20 
21 #ifndef _LIBGNOMEVFSMM_DIRECTORYHANDLE_H
22 #define _LIBGNOMEVFSMM_DIRECTORYHANDLE_H
23 
24 #include <glibmm.h>
25 
26 #include <libgnomevfsmm/uri.h>
28 #include <libgnomevfsmm/enums.h>
30 #include <libgnomevfs/gnome-vfs-directory.h>
31 
32 
33 #ifndef DOXYGEN_SHOULD_SKIP_THIS
34 typedef struct GnomeVFSDirectoryHandle GnomeVFSDirectoryHandle;
35 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
36 
37 namespace Gnome
38 {
39 
40 namespace Vfs
41 {
42 
44 {
45 public:
47  virtual ~DirectoryHandle();
48 
49 
51  typedef sigc::slot<bool, const Glib::ustring&, const Glib::RefPtr<const FileInfo>&, bool, bool&> SlotVisit;
52 
53  /*
54  typedef gboolean (* GnomeVFSDirectoryVisitFunc) (const gchar *rel_path,
55  GnomeVFSFileInfo *info,
56  gboolean recursing_will_loop,
57  gpointer data,
58  gboolean *recurse);
59  */
60 
61 #ifdef GLIBMM_EXCEPTIONS_ENABLED
62  static void visit(const Glib::ustring& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
63  static void visit(const Glib::RefPtr<const Uri>& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot) throw(exception);
64 
65  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);
66  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);
67 
68  static void list_load(const Glib::ListHandle<Glib::ustring>& list, const Glib::ustring& text_uri, FileInfoOptions info_options) throw(exception);
69 
70  void open(const Glib::ustring& text_uri, FileInfoOptions options = FILE_INFO_DEFAULT) throw(exception);
71  void open(const Glib::RefPtr<const Uri>& uri, FileInfoOptions options = FILE_INFO_DEFAULT) throw(exception);
72 
73  void close() throw(exception);
74 
75  Glib::RefPtr<FileInfo> read_next(bool& file_exists) throw(exception);
76 
79  Glib::RefPtr<FileInfo> read_next() throw(exception);
80 #else
81  static void visit(const Glib::ustring& uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit& slot, std::auto_ptr<Gnome::Vfs::exception>& error);
82  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);
83 
84  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);
85  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);
86 
87  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);
88 
89  void open(const Glib::ustring& text_uri, FileInfoOptions options, std::auto_ptr<Gnome::Vfs::exception>& error);
90  void open(const Glib::RefPtr<const Uri>& uri, FileInfoOptions options, std::auto_ptr<Gnome::Vfs::exception>& error);
91 
92  void close(std::auto_ptr<Gnome::Vfs::exception>& error);
93 
94  Glib::RefPtr<FileInfo> read_next(bool& file_exists, std::auto_ptr<Gnome::Vfs::exception>& error);
95 
98  Glib::RefPtr<FileInfo> read_next(std::auto_ptr<Gnome::Vfs::exception>& error);
99 #endif //GLIBMM_EXCEPTIONS_ENABLED
100 
101  GnomeVFSDirectoryHandle* gobj();
102  const GnomeVFSDirectoryHandle* gobj() const;
103 
104 
105 protected:
106 
107  GnomeVFSDirectoryHandle* gobj_;
108 };
109 
110 } // namespace Vfs
111 } // namespace Gnome
112 
113 
114 
115 
116 #endif /* _LIBGNOMEVFSMM_DIRECTORYHANDLE_H */
117 
static void visit(const Glib::ustring &uri, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit &slot)
FileInfoOptions
Definition: enums.h:54
Definition: address.h:119
static void visit_files(const Glib::ustring &uri, const Glib::ListHandle< Glib::ustring > &file_list, FileInfoOptions info_options, DirectoryVisitOptions visit_options, const SlotVisit &slot)
Definition: address.h:36
DirectoryVisitOptions
Definition: enums.h:267
Definition: directory-handle.h:43
void open(const Glib::ustring &text_uri, FileInfoOptions options=FILE_INFO_DEFAULT)
Definition: enums.h:56
static void list_load(const Glib::ListHandle< Glib::ustring > &list, const Glib::ustring &text_uri, FileInfoOptions info_options)
GnomeVFSDirectoryHandle * gobj_
Definition: directory-handle.h:107
Glib::RefPtr< FileInfo > read_next()
sigc::slot< bool, const Glib::ustring &, const Glib::RefPtr< const FileInfo > &, bool, bool & > SlotVisit
e.g. bool on_visit(const Glib::ustring& rel_path, const Glib::RefPtr<const FileInfo>& info...
Definition: directory-handle.h:51
Definition: file-info.h:42
GnomeVFSDirectoryHandle * gobj()
Definition: exception.h:33