summaryrefslogtreecommitdiff
path: root/gio/gresourcefile.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-08-20 23:48:51 -0400
committerMatthias Clasen <mclasen@redhat.com>2015-08-20 23:48:51 -0400
commit1bfdcc8499f49e197c2f59a94a101b03fad51482 (patch)
tree92c0baeed2b9270e6961c05b1401fbde385d7800 /gio/gresourcefile.c
parentb995c08bf32cb701b92bd8c98651de2d77cade9e (diff)
downloadglib-1bfdcc8499f49e197c2f59a94a101b03fad51482.tar.gz
resource file: Add a dummy file monitor
This avoids the fallback to polling in GFile, which is unnecessarily expensive for a resource which can never change.
Diffstat (limited to 'gio/gresourcefile.c')
-rw-r--r--gio/gresourcefile.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/gio/gresourcefile.c b/gio/gresourcefile.c
index 380095c46..352879f7f 100644
--- a/gio/gresourcefile.c
+++ b/gio/gresourcefile.c
@@ -28,6 +28,7 @@
#include <gfileattribute-priv.h>
#include <gfileinfo-priv.h>
#include "gfile.h"
+#include "gfilemonitor.h"
#include "gseekable.h"
#include "gfileinputstream.h"
#include "gfileinfo.h"
@@ -565,6 +566,32 @@ g_resource_file_read (GFile *file,
return res;
}
+typedef GFileMonitor GResourceFileMonitor;
+typedef GFileMonitorClass GResourceFileMonitorClass;
+
+GType g_resource_file_monitor_get_type (void);
+
+G_DEFINE_TYPE (GResourceFileMonitor, g_resource_file_monitor, G_TYPE_FILE_MONITOR)
+
+static void
+g_resource_file_monitor_init (GResourceFileMonitor *monitor)
+{
+}
+
+static void
+g_resource_file_monitor_class_init (GResourceFileMonitorClass *class)
+{
+}
+
+static GFileMonitor *
+g_resource_file_monitor_file (GFile *file,
+ GFileMonitorFlags flags,
+ GCancellable *cancellable,
+ GError **error)
+{
+ return g_object_new (g_resource_file_monitor_get_type (), NULL);
+}
+
static void
g_resource_file_file_iface_init (GFileIface *iface)
{
@@ -588,6 +615,7 @@ g_resource_file_file_iface_init (GFileIface *iface)
iface->query_settable_attributes = g_resource_file_query_settable_attributes;
iface->query_writable_namespaces = g_resource_file_query_writable_namespaces;
iface->read_fn = g_resource_file_read;
+ iface->monitor_file = g_resource_file_monitor_file;
iface->supports_thread_contexts = TRUE;
}