GFileMonitor

GFileMonitor — File Monitor

Synopsis

#include <gio/gio.h>

enum                GFileMonitorEvent;
                    GFileMonitor;
gboolean            g_file_monitor_cancel               (GFileMonitor *monitor);
gboolean            g_file_monitor_is_cancelled         (GFileMonitor *monitor);
void                g_file_monitor_set_rate_limit       (GFileMonitor *monitor,
                                                         gint limit_msecs);
void                g_file_monitor_emit_event           (GFileMonitor *monitor,
                                                         GFile *child,
                                                         GFile *other_file,
                                                         GFileMonitorEvent event_type);

Object Hierarchy

  GEnum
   +----GFileMonitorEvent
  GObject
   +----GFileMonitor

Properties

  "cancelled"                gboolean              : Read
  "rate-limit"               gint                  : Read / Write

Signals

  "changed"                                        : Run Last

Description

Monitors a file or directory for changes.

To obtain a GFileMonitor for a file or directory, use g_file_monitor(), g_file_monitor_file(), or g_file_monitor_directory().

To get informed about changes to the file or directory you are monitoring, connect to the "changed" signal. The signal will be emitted in the thread-default main context of the thread that the monitor was created in (though if the global default main context is blocked, this may cause notifications to be blocked even if the thread-default context is still running).

Details

enum GFileMonitorEvent

typedef enum {
  G_FILE_MONITOR_EVENT_CHANGED,
  G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT,
  G_FILE_MONITOR_EVENT_DELETED,
  G_FILE_MONITOR_EVENT_CREATED,
  G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED,
  G_FILE_MONITOR_EVENT_PRE_UNMOUNT,
  G_FILE_MONITOR_EVENT_UNMOUNTED,
  G_FILE_MONITOR_EVENT_MOVED
} GFileMonitorEvent;

Specifies what type of event a monitor event is.

G_FILE_MONITOR_EVENT_CHANGED

a file changed.

G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT

a hint that this was probably the last change in a set of changes.

G_FILE_MONITOR_EVENT_DELETED

a file was deleted.

G_FILE_MONITOR_EVENT_CREATED

a file was created.

G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED

a file attribute was changed.

G_FILE_MONITOR_EVENT_PRE_UNMOUNT

the file location will soon be unmounted.

G_FILE_MONITOR_EVENT_UNMOUNTED

the file location was unmounted.

G_FILE_MONITOR_EVENT_MOVED

the file was moved.

GFileMonitor

typedef struct _GFileMonitor GFileMonitor;

Watches for changes to a file.


g_file_monitor_cancel ()

gboolean            g_file_monitor_cancel               (GFileMonitor *monitor);

Cancels a file monitor.

monitor :

a GFileMonitor.

Returns :

TRUE if monitor was cancelled.

g_file_monitor_is_cancelled ()

gboolean            g_file_monitor_is_cancelled         (GFileMonitor *monitor);

Returns whether the monitor is canceled.

monitor :

a GFileMonitor

Returns :

TRUE if monitor is canceled. FALSE otherwise.

g_file_monitor_set_rate_limit ()

void                g_file_monitor_set_rate_limit       (GFileMonitor *monitor,
                                                         gint limit_msecs);

Sets the rate limit to which the monitor will report consecutive change events to the same file.

monitor :

a GFileMonitor.

limit_msecs :

a non-negative integer with the limit in milliseconds to poll for changes

g_file_monitor_emit_event ()

void                g_file_monitor_emit_event           (GFileMonitor *monitor,
                                                         GFile *child,
                                                         GFile *other_file,
                                                         GFileMonitorEvent event_type);

Emits the "changed" signal if a change has taken place. Should be called from file monitor implementations only.

The signal will be emitted from an idle handler (in the thread-default main context).

monitor :

a GFileMonitor.

child :

a GFile.

other_file :

a GFile.

event_type :

a set of GFileMonitorEvent flags.

Property Details

The "cancelled" property

  "cancelled"                gboolean              : Read

Whether the monitor has been cancelled.

Default value: FALSE


The "rate-limit" property

  "rate-limit"               gint                  : Read / Write

The limit of the monitor to watch for changes, in milliseconds.

Allowed values: >= 0

Default value: 800

Signal Details

The "changed" signal

void                user_function                      (GFileMonitor     *monitor,
                                                        GFile            *file,
                                                        GFile            *other_file,
                                                        GFileMonitorEvent event_type,
                                                        gpointer          user_data)       : Run Last

Emitted when file has been changed.

If using G_FILE_MONITOR_SEND_MOVED flag and event_type is G_FILE_MONITOR_SEND_MOVED, file will be set to a GFile containing the old path, and other_file will be set to a GFile containing the new path.

In all the other cases, other_file will be set to NULL.

monitor :

a GFileMonitor.

file :

a GFile.

other_file :

a GFile or NULL.

event_type :

a GFileMonitorEvent.

user_data :

user data set when the signal handler was connected.