[tracker-miners/wip/carlosg/speed-track: 18/22] libtracker-miner: Forward GFileInfo in QueueEvent
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/wip/carlosg/speed-track: 18/22] libtracker-miner: Forward GFileInfo in QueueEvent
- Date: Thu, 22 Oct 2020 14:45:56 +0000 (UTC)
commit a5f2bd15b399b2f798403e3482e0d81661c6085d
Author: Carlos Garnacho <carlosg gnome org>
Date: Sat Oct 17 17:46:08 2020 +0200
libtracker-miner: Forward GFileInfo in QueueEvent
So this is readily available to signal emission.
src/libtracker-miner/tracker-miner-fs.c | 38 +++++++++++++++++++--------------
1 file changed, 22 insertions(+), 16 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index b3db85ebf..85a55efac 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -93,6 +93,7 @@ typedef struct {
guint is_dir : 1;
GFile *file;
GFile *dest_file;
+ GFileInfo *info;
} QueueEvent;
typedef struct {
@@ -696,7 +697,8 @@ miner_fs_initable_iface_init (GInitableIface *iface)
static QueueEvent *
queue_event_new (TrackerMinerFSEventType type,
- GFile *file)
+ GFile *file,
+ GFileInfo *info)
{
QueueEvent *event;
@@ -705,6 +707,7 @@ queue_event_new (TrackerMinerFSEventType type,
event = g_new0 (QueueEvent, 1);
event->type = type;
g_set_object (&event->file, file);
+ g_set_object (&event->info, info);
return event;
}
@@ -761,6 +764,7 @@ queue_event_free (QueueEvent *event)
g_clear_object (&event->dest_file);
g_clear_object (&event->file);
+ g_clear_object (&event->info);
g_free (event);
}
@@ -780,7 +784,8 @@ queue_event_coalesce (const QueueEvent *first,
return QUEUE_ACTION_DELETE_SECOND;
} else if (second->type == TRACKER_MINER_FS_EVENT_MOVED) {
*replacement = queue_event_new (TRACKER_MINER_FS_EVENT_CREATED,
- second->dest_file);
+ second->dest_file,
+ NULL);
return (QUEUE_ACTION_DELETE_FIRST |
QUEUE_ACTION_DELETE_SECOND);
} else if (second->type == TRACKER_MINER_FS_EVENT_DELETED) {
@@ -810,7 +815,8 @@ queue_event_coalesce (const QueueEvent *first,
QUEUE_ACTION_DELETE_SECOND);
} else if (second->type == TRACKER_MINER_FS_EVENT_DELETED) {
*replacement = queue_event_new (TRACKER_MINER_FS_EVENT_DELETED,
- first->file);
+ first->file,
+ NULL);
return (QUEUE_ACTION_DELETE_FIRST |
QUEUE_ACTION_DELETE_SECOND);
}
@@ -1540,6 +1546,7 @@ static gboolean
item_queue_get_next_file (TrackerMinerFS *fs,
GFile **file,
GFile **source_file,
+ GFileInfo **info,
TrackerMinerFSEventType *type,
gint *priority_out,
gboolean *attributes_update,
@@ -1583,6 +1590,7 @@ item_queue_get_next_file (TrackerMinerFS *fs,
*type = event->type;
*priority_out = priority;
*attributes_update = event->attributes_update;
+ g_set_object (info, event->info);
queue_event_free (event);
tracker_priority_queue_pop (fs->priv->items, NULL);
@@ -1657,6 +1665,7 @@ miner_handle_next_item (TrackerMinerFS *fs)
gint priority = 0;
GString *task_sparql = NULL;
GString *source_task_sparql = NULL;
+ GFileInfo *info = NULL;
if (fs->priv->timer_stopped) {
g_timer_start (fs->priv->timer);
@@ -1668,7 +1677,8 @@ miner_handle_next_item (TrackerMinerFS *fs)
return FALSE;
}
- if (!item_queue_get_next_file (fs, &file, &source_file, &type, &priority, &attributes_update,
&is_dir)) {
+ if (!item_queue_get_next_file (fs, &file, &source_file, &info, &type,
+ &priority, &attributes_update, &is_dir)) {
/* We should flush the processing pool buffer here, because
* if there was a previous task on the same file we want to
* process now, we want it to get finished before we can go
@@ -1835,13 +1845,9 @@ miner_handle_next_item (TrackerMinerFS *fs)
item_queue_handlers_set_up (fs);
}
- if (file) {
- g_object_unref (file);
- }
-
- if (source_file) {
- g_object_unref (source_file);
- }
+ g_clear_object (&file);
+ g_clear_object (&source_file);
+ g_clear_object (&info);
return keep_processing;
}
@@ -2017,7 +2023,7 @@ file_notifier_file_created (TrackerFileNotifier *notifier,
TrackerMinerFS *fs = user_data;
QueueEvent *event;
- event = queue_event_new (TRACKER_MINER_FS_EVENT_CREATED, file);
+ event = queue_event_new (TRACKER_MINER_FS_EVENT_CREATED, file, info);
miner_fs_queue_event (fs, event, miner_fs_get_queue_priority (fs, file));
}
@@ -2037,7 +2043,7 @@ file_notifier_file_deleted (TrackerFileNotifier *notifier,
file);
}
- event = queue_event_new (TRACKER_MINER_FS_EVENT_DELETED, file);
+ event = queue_event_new (TRACKER_MINER_FS_EVENT_DELETED, file, NULL);
miner_fs_queue_event (fs, event, miner_fs_get_queue_priority (fs, file));
}
@@ -2051,7 +2057,7 @@ file_notifier_file_updated (TrackerFileNotifier *notifier,
TrackerMinerFS *fs = user_data;
QueueEvent *event;
- event = queue_event_new (TRACKER_MINER_FS_EVENT_UPDATED, file);
+ event = queue_event_new (TRACKER_MINER_FS_EVENT_UPDATED, file, info);
event->attributes_update = attributes_only;
miner_fs_queue_event (fs, event, miner_fs_get_queue_priority (fs, file));
}
@@ -2253,7 +2259,7 @@ check_file_parents (TrackerMinerFS *fs,
}
for (p = parents; p; p = p->next) {
- event = queue_event_new (TRACKER_MINER_FS_EVENT_UPDATED, p->data);
+ event = queue_event_new (TRACKER_MINER_FS_EVENT_UPDATED, p->data, NULL);
miner_fs_queue_event (fs, event, miner_fs_get_queue_priority (fs, p->data));
g_object_unref (p->data);
}
@@ -2308,7 +2314,7 @@ tracker_miner_fs_check_file (TrackerMinerFS *fs,
return;
}
- event = queue_event_new (TRACKER_MINER_FS_EVENT_UPDATED, file);
+ event = queue_event_new (TRACKER_MINER_FS_EVENT_UPDATED, file, NULL);
trace_eq_event (event);
miner_fs_queue_event (fs, event, priority);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]