libgnomevfsmm  2.26.0
monitor-handle.h
Go to the documentation of this file.
1 #ifndef _LIBGNOMEVFSMM_MONITOR_HANDLE_H
2 #define _LIBGNOMEVFSMM_MONITOR_HANDLE_H
3 
4 #include <glibmm.h>
5 
6 /* Copyright 2003 gnome-vfsmm Development Team
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free
20  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  */
22 
23 #include <libgnomevfsmm/enums.h>
25 #include <libgnomevfs/gnome-vfs-monitor.h>
26 
27 
28 #ifndef DOXYGEN_SHOULD_SKIP_THIS
29 typedef struct GnomeVFSMonitorHandle GnomeVFSMonitorHandle;
30 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
31 
32 
33 namespace Gnome
34 {
35 
36 namespace Vfs
37 {
38 
39 #ifndef DOXYGEN_SHOULD_SKIP_THIS
40 namespace
41 {
42 
43 class SignalProxy_Monitor;
44 
45 }
46 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
47 
49 {
50 public:
51  MonitorHandle();
52  virtual ~MonitorHandle();
53 
55  typedef sigc::slot<void, const MonitorHandle&, const Glib::ustring&, const Glib::ustring&, MonitorEventType> SlotMonitor;
56 
57 #ifdef GLIBMM_EXCEPTIONS_ENABLED
58  void add(const Glib::ustring& text_uri, MonitorType type, const SlotMonitor& slot) throw(exception);
59  void cancel() throw(exception);
60 #else
61  void add(const Glib::ustring& text_uri, MonitorType type, const SlotMonitor& slot, std::auto_ptr<Gnome::Vfs::exception>& error);
62  void cancel(std::auto_ptr<Gnome::Vfs::exception>& error);
63 #endif //GLIBMM_EXCEPTIONS_ENABLED
64 
65  GnomeVFSMonitorHandle** gobj_addr();
66  GnomeVFSMonitorHandle* gobj();
67  const GnomeVFSMonitorHandle* gobj() const;
68 
69 private:
70 
71  GnomeVFSMonitorHandle* gobj_;
72  SignalProxy_Monitor* proxy_;
73 };
74 
75 } // namespace Vfs
76 } // namespace Gnome
77 
78 #endif /* _LIBGNOMEVFSMM_MONITOR_HANDLE_H */
79