[gamin] poll backends are now pluggable



Yo,

So, I just committed a semi-large change -- don't worry. I used the test
suite with the dnotify backend. Everything passes :). These changes make
the poll backend pluggables. We now have these functions in gam_server.


void            gam_server_install_kernel_hooks (GamKernelHandler name,
                                                 gboolean (*add)(GamSubscription *sub),
                                                 gboolean (*remove)(GamSubscription *sub),
                                                 gboolean (*remove_all)(GamListener *listener),
                                                 void (*dir_handler)(const char *path, pollHandlerMode mode),
                                                 void (*file_handler)(const char *path, pollHandlerMode mode));

void            gam_server_install_poll_hooks   (GamPollHandler name,
                                                 gboolean (*add)(GamSubscription *sub),
                                                 gboolean (*remove)(GamSubscription *sub),
                                                 gboolean (*remove_all)(GamListener *listener));


GamKernelHandler gam_server_get_kernel_handler  (void);
GamPollHandler   gam_server_get_poll_handler    (void);

gboolean        gam_kernel_add_subscription     (GamSubscription *sub);
gboolean        gam_kernel_remove_subscription  (GamSubscription *sub);
gboolean        gam_kernel_remove_all_for       (GamListener *listener);
void            gam_kernel_dir_handler          (const char *path, pollHandlerMode mode);
void            gam_kernel_file_handler         (const char *path, pollHandlerMode mode);

gboolean        gam_poll_add_subscription       (GamSubscription *sub);
gboolean        gam_poll_remove_subscription    (GamSubscription *sub);
gboolean        gam_poll_remove_all_for         (GamListener *listener);


These replace the backend_* variables in gam_server, and the
dir/file_handler variables in gam_poll.

My next plan is to remove the consume_subscription nonsense from the
poll & dnotify backends. I assume these are relics from the days when
gam_server was threaded.

I'd also like to rename gam_poll.c/h to gam_poll_dnotify.c/h because it
really is a dnotify specific poll implementation. Could this be done on
the CVS server so that we can keep the history?

-- 
John McCutchan <ttb tentacle dhs org>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]