libgnomevfsmm  2.26.0
async-handle-2.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 // Generated by gtkmmproc -- DO NOT MODIFY!
3 #ifndef _LIBGNOMEVFSMM_ASYNC_HANDLE_2_H
4 #define _LIBGNOMEVFSMM_ASYNC_HANDLE_2_H
5 
6 
7 #include <glibmm.h>
8 
9 // -*- c++ -*-
10 /* Copyright 2003, 2006 gnome-vfsmm Development Team
11  *
12  * This library is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU Lesser General Public
14  * License as published by the Free Software Foundation; either
15  * version 2.1 of the License, or (at your option) any later version.
16  *
17  * This library is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  * Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public
23  * License along with this library; if not, write to the Free
24  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25  */
26 
27 #include <libgnomevfs/gnome-vfs-async-ops.h>
28 #include <libgnomevfs/gnome-vfs-file-info.h>
29 
30 #include <libgnomevfsmm/enums.h>
32 #include <libgnomevfsmm/uri.h>
34 
35 
36 namespace Gnome
37 {
38 
39 namespace Vfs
40 {
41 
48 {
49  public:
50 #ifndef DOXYGEN_SHOULD_SKIP_THIS
51  typedef FileInfoResult CppObjectType;
52  typedef GnomeVFSGetFileInfoResult BaseObjectType;
53 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
54 
56 
57  // Use make_a_copy=true when getting it directly from a struct.
58  explicit FileInfoResult(GnomeVFSGetFileInfoResult* castitem, bool make_a_copy = false);
59 
60  FileInfoResult(const FileInfoResult& src);
62 
64 
65  GnomeVFSGetFileInfoResult* gobj() { return gobject_; }
66  const GnomeVFSGetFileInfoResult* gobj() const { return gobject_; }
67 
69  GnomeVFSGetFileInfoResult* gobj_copy() const;
70 
71 protected:
72  GnomeVFSGetFileInfoResult* gobject_;
73 
74 private:
75 
76 
77 public:
78 
79  Glib::RefPtr<Uri> get_uri() const;
80  Result get_result() const;
81  Glib::RefPtr<FileInfo> get_file_info() const;
82 
83 
84 };
85 
86 
92 {
93  public:
94 #ifndef DOXYGEN_SHOULD_SKIP_THIS
95  typedef FindDirectoryResult CppObjectType;
96  typedef GnomeVFSFindDirectoryResult BaseObjectType;
97 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
98 
100 
101  // Use make_a_copy=true when getting it directly from a struct.
102  explicit FindDirectoryResult(GnomeVFSFindDirectoryResult* castitem, bool make_a_copy = false);
103 
106 
108 
109  GnomeVFSFindDirectoryResult* gobj() { return gobject_; }
110  const GnomeVFSFindDirectoryResult* gobj() const { return gobject_; }
111 
113  GnomeVFSFindDirectoryResult* gobj_copy() const;
114 
115 protected:
116  GnomeVFSFindDirectoryResult* gobject_;
117 
118 private:
119 
120 
121  Glib::RefPtr<Uri> get_uri() const;
122  Result get_result() const;
123 
124 
125 };
126 
127 
134 {
137 };
138 
139 
143 namespace Async2
144 {
145 
146 typedef Glib::ListHandle< Glib::RefPtr<const Uri> > ListHandleUris;
147 
148 #ifndef DOXYGEN_SHOULD_SKIP_THIS
149 struct FileInfoResultTraits
150 {
151  typedef FileInfoResult CppType;
152  typedef const GnomeVFSGetFileInfoResult* CType;
153  typedef GnomeVFSGetFileInfoResult* CTypeNonConst;
154 
155  static CType to_c_type (const CppType& obj) { return obj.gobj(); }
156  static CType to_c_type (const CType& obj) { return obj; }
157  static CppType to_cpp_type (const CType& obj) { return CppType(const_cast<CTypeNonConst>(obj), true); }
158  static void release_c_type (const CType&) {}
159 };
160 #endif //DOXYGEN_SHOULD_SKIP_THIS
161 
162 typedef Glib::ListHandle< FileInfoResult, FileInfoResultTraits > ListHandleFileInfoResults;
163 
164 #ifndef DOXYGEN_SHOULD_SKIP_THIS
165 struct FindDirectoryResultTraits
166 {
167  typedef FindDirectoryResult CppType;
168  typedef const GnomeVFSFindDirectoryResult* CType;
169  typedef GnomeVFSFindDirectoryResult* CTypeNonConst;
170 
171  static CType to_c_type (const CppType& obj) { return obj.gobj(); }
172  static CType to_c_type (const CType& obj) { return obj; }
173  static CppType to_cpp_type (const CType& obj) { return CppType(const_cast<CTypeNonConst>(obj), true); }
174  static void release_c_type (const CType&) {}
175 };
176 #endif //DOXYGEN_SHOULD_SKIP_THIS
177 
178 typedef Glib::ListHandle< FindDirectoryResult, FindDirectoryResultTraits > ListHandleFindDirectoryResult;
179 
180 
181 //The default constructor creates a null handle. Use an open*() method before anything else.
182 class Handle
183 {
184  public:
185 #ifndef DOXYGEN_SHOULD_SKIP_THIS
186  typedef Handle CppObjectType;
187  typedef GnomeVFSAsyncHandle BaseObjectType;
188 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
189 
190 private:
191 
192 
193 public:
194  Handle();
195  ~Handle();
196 
197  typedef sigc::slot<void, const Async2::Handle&, Result> SlotOpen;
199 
200  //This is our C++ equivalent for GNOME_VFS_PRIORITY_MIN, GNOME_VFS_PRIORITY_MAX, and GNOME_VFS_PRIORITY_DEFAULT:
204  enum Priority
205  {
207  PRIORITY_MIN = -10,
209  };
210 
211  void open(const Glib::ustring& text_uri, OpenMode open_mode, int priority, const SlotOpen& slot);
212  void open(const Glib::RefPtr<Uri>& uri, OpenMode open_mode, int priority, const SlotOpen& slot);
213 
214  typedef sigc::slot<void, const Async2::Handle&, const Glib::RefPtr<Glib::IOChannel>&, Result> SlotOpenAsChannel;
215  void open_as_channel(const Glib::ustring& text_uri, OpenMode open_mode, guint advised_block_size, int priority, const SlotOpenAsChannel& slot);
216  void open_as_channel(const Glib::RefPtr<Uri>& uri, OpenMode open_mode, guint advised_block_size, int priority, const SlotOpenAsChannel& slot);
217 
218  void create(const Glib::ustring& text_uri, OpenMode open_mode, bool exclusive, guint perm, int priority, const SlotOpen& slot);
219  void create(const Glib::RefPtr<Uri>& uri, OpenMode open_mode, bool exclusive, guint perm, int priority, const SlotOpen& slot);
220 
221  void create_symbolic_link(const Glib::RefPtr<Uri>& uri, const Glib::ustring& uri_reference, int priority, const SlotOpen& slot);
222 
224  void create_as_channel(const Glib::ustring& text_uri, OpenMode open_mode, bool exclusive, guint perm, int priority, const SlotCreateAsChannel& slot);
225  //gnome_vfs_async_create_uri_as_channel() is declared, but not defined in gnome-vfs.
226  //void create_as_channel(const Glib::RefPtr<Uri> uri, OpenMode open_mode, bool exclusive, guint perm, int priority, const SlotCreateAsChannel& slot);
227 
228  void close(const SlotClose& slot);
229 
230  typedef sigc::slot<void, const Async2::Handle&, Result, gpointer, FileSize, FileSize> SlotRead;
231  void read(gpointer buffer, guint bytes, const SlotRead& slot);
232 
233  typedef sigc::slot<void, const Async2::Handle&, Result, gconstpointer, FileSize, FileSize> SlotWrite;
234  void write(gconstpointer buffer, guint bytes, const SlotWrite& slot);
235 
236  typedef sigc::slot<void, const Async2::Handle&, ListHandleFileInfoResults > SlotGetFileInfo;
237  void get_file_info(const ListHandleUris& uri_list, FileInfoOptions options, int priority, const SlotGetFileInfo& slot) const;
238 
239  typedef sigc::slot<void, const Async2::Handle&, Result, const Glib::RefPtr<FileInfo>& > SlotSetFileInfo;
240  void set_file_info(const Glib::RefPtr<Uri>& uri, const Glib::RefPtr<FileInfo>& info, SetFileInfoMask mask, FileInfoOptions options, int priority, const SlotSetFileInfo& slot);
241 
242  typedef sigc::slot<void, const Async2::Handle&, Result, Glib::ListHandle<Glib::RefPtr<FileInfo> >, int> SlotLoadDirectory;
243  void load_directory(const Glib::ustring& text_uri, FileInfoOptions options, guint items_per_notification, int priority, const SlotLoadDirectory& slot);
244  void load_directory(const Glib::RefPtr<Uri>& uri, FileInfoOptions options, guint items_per_notification, int priority, const SlotLoadDirectory& slot);
245 
246  typedef sigc::slot<int, const Async2::Handle&, Transfer2::ProgressInfo&> SlotTransferProgress;
247 
248 #ifdef GLIBMM_EXCEPTIONS_ENABLED
249  void transfer(const ListHandleUris& source_uri_list, const ListHandleUris& target_uri_list, TransferOptions xfer_options, ErrorMode error_mode, OverwriteMode overwrite_mode, int priority, const SlotTransferProgress& progress_update_callback, const Transfer2::SlotProgress& progress_sync_callback);
250 #else
251  void transfer(const ListHandleUris& source_uri_list, const ListHandleUris& target_uri_list, TransferOptions xfer_options, ErrorMode error_mode, OverwriteMode overwrite_mode, int priority, const SlotTransferProgress& progress_update_callback, const Transfer2::SlotProgress& progress_sync_callback, std::auto_ptr<Gnome::Vfs::exception>& error);
252 #endif
253 
254  typedef sigc::slot<void, const Async2::Handle&, ListHandleFindDirectoryResult > SlotFindDirectory;
255  void find_directory(const ListHandleUris& near_uri_list, FindDirectoryKind kind, bool create_if_needed, bool find_if_needed, guint permissions, int priority, const SlotFindDirectory& slot);
256 
257  typedef sigc::slot<void, const Async2::Handle&, Result, gpointer> SlotFileControl;
258  void file_control(const Glib::ustring& operation, gpointer operation_data, const SlotFileControl& slot);
259 
260 
266  void cancel();
267 
268  GnomeVFSAsyncHandle* gobj() { return gobject_; }
269  const GnomeVFSAsyncHandle* gobj() const { return gobject_; }
270  GnomeVFSAsyncHandle** gobj_addr() { return &gobject_; }
271 
272 #ifndef DOXYGEN_SHOULD_SKIP_THIS
273  void assign_gobj(GnomeVFSAsyncHandle* src);
274 #endif
275 
276 protected:
277  GnomeVFSAsyncHandle* gobject_;
278 
279 private:
280  Handle(const Handle&);
281  Handle& operator=(const Handle&);
282 
283 
284 };
285 
286 } // namespace Async2
287 } // namespace Vfs
288 } // namespace Gnome
289 
290 #ifndef DOXYGEN_SHOULD_SKIP_THIS
291 namespace Glib
292 {
293 
294 template <>
295 class Value<Gnome::Vfs::FindDirectoryKind> : public Glib::Value_Flags<Gnome::Vfs::FindDirectoryKind>
296 {
297 public:
298  static GType value_type() G_GNUC_CONST;
299 };
300 
301 } // namespace Glib
302 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
303 
304 
305 namespace Glib
306 {
307 
316 Gnome::Vfs::FileInfoResult wrap(GnomeVFSGetFileInfoResult* object, bool take_copy = false);
317 
318 } // namespace Glib
319 
320 
321 namespace Glib
322 {
323 
332 Gnome::Vfs::FindDirectoryResult wrap(GnomeVFSFindDirectoryResult* object, bool take_copy = false);
333 
334 } // namespace Glib
335 
336 
337 #endif /* _LIBGNOMEVFSMM_ASYNC_HANDLE_2_H */
338 
Glib::ListHandle< FileInfoResult, FileInfoResultTraits > ListHandleFileInfoResults
Definition: async-handle-2.h:162
void transfer(const ListHandleUris &source_uri_list, const ListHandleUris &target_uri_list, TransferOptions xfer_options, ErrorMode error_mode, OverwriteMode overwrite_mode, int priority, const SlotTransferProgress &progress_update_callback, const Transfer2::SlotProgress &progress_sync_callback)
Glib::RefPtr< FileInfo > get_file_info() const
const GnomeVFSFindDirectoryResult * gobj() const
Definition: async-handle-2.h:110
Glib::RefPtr< Uri > get_uri() const
sigc::slot< void, const Async2::Handle &, Result, gconstpointer, FileSize, FileSize > SlotWrite
Definition: async-handle-2.h:233
FileInfoOptions
Definition: enums.h:54
void close(const SlotClose &slot)
sigc::slot< void, const Async2::Handle &, Result, gpointer, FileSize, FileSize > SlotRead
Definition: async-handle-2.h:230
void file_control(const Glib::ustring &operation, gpointer operation_data, const SlotFileControl &slot)
Encapsulates the details of an individual file info request that was part of a mass file info request...
Definition: async-handle-2.h:47
Result get_result() const
Priority
Possible pre-set values for a job&#39;s priority.
Definition: async-handle-2.h:204
void cancel()
Cancel an asynchronous operation and close all its callbacks.
sigc::slot< void, const Async2::Handle &, Result, const Glib::RefPtr< FileInfo > & > SlotSetFileInfo
Definition: async-handle-2.h:239
Definition: async-handle-2.h:135
GnomeVFSGetFileInfoResult * gobj_copy() const
Provides access to the underlying C instance. The caller is responsible for freeing it...
sigc::slot< void, const Async2::Handle &, Result, Glib::ListHandle< Glib::RefPtr< FileInfo > >, int > SlotLoadDirectory
Definition: async-handle-2.h:242
Glib::ListHandle< FindDirectoryResult, FindDirectoryResultTraits > ListHandleFindDirectoryResult
Definition: async-handle-2.h:178
void set_file_info(const Glib::RefPtr< Uri > &uri, const Glib::RefPtr< FileInfo > &info, SetFileInfoMask mask, FileInfoOptions options, int priority, const SlotSetFileInfo &slot)
The minimuum priority a job can have.
Definition: async-handle-2.h:206
This class is passed to a Async2::Handle::SlotFindDirectory by Async2::Handle::find_directory() and c...
Definition: async-handle-2.h:91
Result
Definition: enums.h:96
sigc::slot< gint, const ProgressInfo & > SlotProgress
For instance, gint on_transfer_progress(const Gnome::Vfs::Transfer::ProgressInfo&amp; info);...
Definition: transfer-2.h:48
Definition: async-handle-2.h:182
GnomeVFSGetFileInfoResult * gobj()
Definition: async-handle-2.h:65
sigc::slot< void, const Async2::Handle &, Result > SlotOpen
Definition: async-handle-2.h:197
sigc::slot< void, const Async2::Handle &, ListHandleFileInfoResults > SlotGetFileInfo
Definition: async-handle-2.h:236
GnomeVFSAsyncHandle * gobj()
Definition: async-handle-2.h:268
void create_symbolic_link(const Glib::RefPtr< Uri > &uri, const Glib::ustring &uri_reference, int priority, const SlotOpen &slot)
FindDirectoryKind
Definition: async-handle-2.h:133
Glib::ListHandle< Glib::RefPtr< const Uri > > ListHandleUris
Definition: async-handle-2.h:146
GnomeVFSFindDirectoryResult * gobj_copy() const
Provides access to the underlying C instance. The caller is responsible for freeing it...
sigc::slot< void, const Async2::Handle &, Result, gpointer > SlotFileControl
Definition: async-handle-2.h:257
FindDirectoryResult & operator=(const FindDirectoryResult &src)
const GnomeVFSAsyncHandle * gobj() const
Definition: async-handle-2.h:269
GnomeVFSFindDirectoryResult * gobj()
Definition: async-handle-2.h:109
sigc::slot< int, const Async2::Handle &, Transfer2::ProgressInfo & > SlotTransferProgress
Definition: async-handle-2.h:246
FileInfoResult & operator=(const FileInfoResult &src)
const GnomeVFSGetFileInfoResult * gobj() const
Definition: async-handle-2.h:66
sigc::slot< void, const Async2::Handle &, ListHandleFindDirectoryResult > SlotFindDirectory
Definition: async-handle-2.h:254
void create_as_channel(const Glib::ustring &text_uri, OpenMode open_mode, bool exclusive, guint perm, int priority, const SlotCreateAsChannel &slot)
TransferOptions
Definition: enums.h:598
SetFileInfoMask
Definition: enums.h:503
The default job priority.
Definition: async-handle-2.h:208
sigc::slot< void, const Async2::Handle &, const Glib::RefPtr< Glib::IOChannel > &, Result > SlotOpenAsChannel
Definition: async-handle-2.h:214
GnomeVFSGetFileInfoResult * gobject_
Definition: async-handle-2.h:72
void get_file_info(const ListHandleUris &uri_list, FileInfoOptions options, int priority, const SlotGetFileInfo &slot) const
ErrorMode
Definition: enums.h:684
void create(const Glib::ustring &text_uri, OpenMode open_mode, bool exclusive, guint perm, int priority, const SlotOpen &slot)
void find_directory(const ListHandleUris &near_uri_list, FindDirectoryKind kind, bool create_if_needed, bool find_if_needed, guint permissions, int priority, const SlotFindDirectory &slot)
GnomeVFSAsyncHandle ** gobj_addr()
Definition: async-handle-2.h:270
GnomeVFSAsyncHandle * gobject_
Definition: async-handle-2.h:277
Definition: async-handle-2.h:136
SlotOpen SlotClose
Definition: async-handle-2.h:198
void open_as_channel(const Glib::ustring &text_uri, OpenMode open_mode, guint advised_block_size, int priority, const SlotOpenAsChannel &slot)
GnomeVFSFindDirectoryResult * gobject_
Definition: async-handle-2.h:116
OverwriteMode
Definition: enums.h:659
void read(gpointer buffer, guint bytes, const SlotRead &slot)
void write(gconstpointer buffer, guint bytes, const SlotWrite &slot)
The maximuum priority a job can have.
Definition: async-handle-2.h:207
void load_directory(const Glib::ustring &text_uri, FileInfoOptions options, guint items_per_notification, int priority, const SlotLoadDirectory &slot)
OpenMode
Definition: enums.h:314
SlotOpenAsChannel SlotCreateAsChannel
Definition: async-handle-2.h:223
void open(const Glib::ustring &text_uri, OpenMode open_mode, int priority, const SlotOpen &slot)