00001 #ifndef _LIBGNOMEVFSMM_MONITOR_HANDLE_H
00002 #define _LIBGNOMEVFSMM_MONITOR_HANDLE_H
00003
00004 #include <glibmm.h>
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <libgnomevfsmm/enums.h>
00024 #include <libgnomevfsmm/exception.h>
00025 #include <libgnomevfs/gnome-vfs-monitor.h>
00026
00027
00028 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00029 typedef struct GnomeVFSMonitorHandle GnomeVFSMonitorHandle;
00030 #endif
00031
00032
00033 namespace Gnome
00034 {
00035
00036 namespace Vfs
00037 {
00038
00039 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00040 namespace
00041 {
00042
00043 class SignalProxy_Monitor;
00044
00045 }
00046 #endif
00047
00048 class MonitorHandle
00049 {
00050 public:
00051 MonitorHandle();
00052 virtual ~MonitorHandle();
00053
00055 typedef sigc::slot<void, const MonitorHandle&, const Glib::ustring&, const Glib::ustring&, MonitorEventType> SlotMonitor;
00056
00057 #ifdef GLIBMM_EXCEPTIONS_ENABLED
00058 void add(const Glib::ustring& text_uri, MonitorType type, const SlotMonitor& slot) throw(exception);
00059 void cancel() throw(exception);
00060 #else
00061 void add(const Glib::ustring& text_uri, MonitorType type, const SlotMonitor& slot, std::auto_ptr<Gnome::Vfs::exception>& error);
00062 void cancel(std::auto_ptr<Gnome::Vfs::exception>& error);
00063 #endif //GLIBMM_EXCEPTIONS_ENABLED
00064
00065 GnomeVFSMonitorHandle** gobj_addr();
00066 GnomeVFSMonitorHandle* gobj();
00067 const GnomeVFSMonitorHandle* gobj() const;
00068
00069 private:
00070
00071 GnomeVFSMonitorHandle* gobj_;
00072 SignalProxy_Monitor* proxy_;
00073 };
00074
00075 }
00076 }
00077
00078 #endif
00079