[glib] resource file: Add a dummy file monitor
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] resource file: Add a dummy file monitor
- Date: Fri, 21 Aug 2015 04:02:15 +0000 (UTC)
commit 1bfdcc8499f49e197c2f59a94a101b03fad51482
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Aug 20 23:48:51 2015 -0400
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.
gio/gresourcefile.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/gio/gresourcefile.c b/gio/gresourcefile.c
index 380095c..352879f 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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]