You should use gvfs instead gnomevfs is deprecated

2008/8/28 Damien Moore <[EMAIL PROTECTED]>

> Hi List,
>
> I'm trying to use the directory monitoring API in gnomevfs, but I'm having
> difficulty understanding how it is supposed to be used. The documentation at
>
> http://library.gnome.org/devel/gnome-vfs-2.0/unstable/gnome-vfs-20-gnome-vfs-monitor.htmldoesn't
>  have any examples and I haven't been able to find a simple example
> on the web. The API seems simple enough, but I'm not sure I understand how
> the callback mechanism is supposed to work. (This probably reflects a deeper
> lack of understanding of glib, but I'll persist...)
>
> For example, I gather this program won't work because there is no GMainLoop
> in place to generate the callback:
>
> #include <libgnomevfs/gnome-vfs.h>
>
> int exit=0;
>
> static void MonitorCallback(GnomeVFSMonitorHandle *handle, const gchar
> *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type,
> gpointer user_data)
> {
>     exit=1;
> }
>
> int main()
> {
>     if(!gnome_vfs_initialized())
>         gnome_vfs_init();
>     GnomeVFSMonitorHandle *h;
>     gnome_vfs_monitor_add(&h, "/home/myusername",
> GNOME_VFS_MONITOR_DIRECTORY, MonitorCallback, NULL);
>     while(!exit);
>     gnome_vfs_monitor_cancel(h);
>     return 0;
> }
>
> but something like this should work correctly?
>
> #include <glib.h>
> #include <libgnomevfs/gnome-vfs.h>
>
> static void MonitorCallback(GnomeVFSMonitorHandle *handle, const gchar
> *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type,
> gpointer user_data)
> {
>     g_print("Monitor event received, exiting...\n");
>     g_main_loop_quit((GMainLoop*)user_data);
> }
>
> int main()
> {
>     if(!gnome_vfs_initialized())
>         gnome_vfs_init();
>     GMainLoop *loop;
>     loop = g_main_loop_new(NULL, FALSE);
>     GnomeVFSMonitorHandle *h;
>     gnome_vfs_monitor_add(&h, "/home/myusername",
> GNOME_VFS_MONITOR_DIRECTORY, MonitorCallback, loop);
>     g_main_loop_run(loop);
>     gnome_vfs_monitor_cancel(h);
>     return 0;
> }
>
> Can someone can give me an idea of whether the above should work or what I
> would need to do to that simple example to get it working? Looking at the
> above I don't really understand how glib would know how to attach the
> MonitorCallback to the GMainLoop, which isn't even running yet (if I created
> and started another main loop inside the outer loop, would it also generate
> callbacks?).
>
> thanks,
> D
> _______________________________________________
> gnome-vfs-list mailing list
> gnome-vfs-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gnome-vfs-list
>
>
_______________________________________________
gnome-vfs-list mailing list
gnome-vfs-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gnome-vfs-list

Reply via email to