GskMainLoopPollBase

GskMainLoopPollBase — a base class for file-descriptor-only polling mechanisms.

Synopsis




            GskMainLoopPollBaseClass;
            GskMainLoopPollBase;
void        gsk_main_loop_poll_base_wakeup  (GskMainLoopPollBase *poll_base);

Object Hierarchy


  GObject
   +----GskMainLoop
         +----GskMainLoopPollBase
               +----GskMainLoopDevPoll
               +----GskMainLoopPoll
               +----GskMainLoopSelect

Description

This class converts signals and child-process-termination notification events into I/O events so that derived class need only implement I/O. The remaining event types are implemented in terms of pipes.

Details

GskMainLoopPollBaseClass

typedef struct {
  GskMainLoopClass    main_loop_class;

  void              (*config_fd)       (GskMainLoopPollBase   *main_loop,
                                        int                    fd,
					GIOCondition           old_io_conditions,
				        GIOCondition           io_conditions);

  /* returns FALSE if the poll function has an error.
   */
  gboolean          (*do_polling)      (GskMainLoopPollBase   *main_loop,
				        int                    max_timeout,
				        guint                  max_events,
				        guint                 *num_events_out,
                                        GskMainLoopEvent      *events);
} GskMainLoopPollBaseClass;

Base-class for I/O-only main-loops. The config_fd and do_polling functions are to be implemented by specific polling mechanisms.

GskMainLoopClass main_loop_class; the base-class from which this is derived.
config_fd () method to change our preferences with regard to a file-descriptor. These should not be cached, since the parent-class automatically coagulates multiple configurations into a single event. (Furthermore, caching would break on some OS's where the file-descriptor is auto-unpolled when it is closed.)
do_polling ()

GskMainLoopPollBase

typedef struct _GskMainLoopPollBase GskMainLoopPollBase;

Base data for I/O-only main loop mechanisms.


gsk_main_loop_poll_base_wakeup ()

void        gsk_main_loop_poll_base_wakeup  (GskMainLoopPollBase *poll_base);

poll_base :