/* DirectoryMonitor.c generated by valac 0.36.6, the Vala compiler
 * generated from DirectoryMonitor.vala, do not modify */

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU LGPL (version 2.1 or later).
 * See the COPYING file in this distribution.
 */
/**/
/* DirectoryMonitor will monitor an entire directory for changes to all files and directories*/
/* within it.  It uses FileMonitor to monitor all directories it discovers at initialization*/
/* and reports changes to the files and directories just as FileMonitor reports them.  Subclasses*/
/* can override the notify_* methods to filter or monitor events before the signal is fired,*/
/* or can override the signals themselves to be notified afterwards.*/
/**/
/* start_discovery() must be called to initiate monitoring.  Directories and files will be reported*/
/* as they're discovered.  Directories will be monitored as they're discovered as well.  Discovery*/
/* can only be initiated once.*/
/**/
/* All signals are virtual and have a corresponding notify_* protected virtual function.*/
/* Subclasses can either override the notify or the signal to decide when they want to process*/
/* the event.*/
/**/
/* DirectoryMonitor also adds a level of intelligence to GLib's monitoring API.Because certain*/
/* file/directory events are decomposed by FileMonitor into more atomic events, it's difficult*/
/* to know when these "composed" events have occurred.  (For example, a file move is reported*/
/* as a DELETED event followed by a CREATED event, with no clue that the two are related.)  Later*/
/* versions added the MOVE event, but we can't rely on those being installed.  Also, documentation*/
/* suggests it's only available with certain back-ends.*/
/**/
/* DirectoryMonitor attempts to solve this by deducing when a set of events actually equals*/
/* a composite event.  It requires more memory in order to do this (i.e. it stores all files and*/
/* their information), but the trade-off is easier file/directory monitoring via familiar*/
/* semantics.*/
/**/
/* DirectoryMonitor also will synthesize events when normal monitor events don't produce expected*/
/* results.  For example, if a directory is moved out of DirectoryMonitor's root, it is reported*/
/* as a delete event, but none of its children are reported as deleted.  Similarly, a directory*/
/* rename can be captured as a move, but notifications for all its children are not fired and*/
/* are synthesized by DirectoryMonitor.  DirectoryMonitor will fire delete and move notifications*/
/* for all the directory's children in depth-first order.*/
/**/
/* In general, DirectoryMonitor attempts to preserve ordering of events, so that (for example) a*/
/* file-altered event doesn't fire before a file-created, and so on.*/
/**/
/* Because of these requirements, DirectoryMonitor maintains a FileInfo struct on all directories */
/* and files being monitored.  (It maintains the attributes gather during the discovery phase, i.e. */
/* SUPPLIED_ATTRIBUTES.)  This information can be retrieved via get_info(), get_file_id(), and*/
/* get_etag().  These calls can be made at any time; the information is stored before any signal*/
/* is fired.*/
/**/
/* Note that DirectoryMonitor currently only supports files and directories.  Other file types*/
/* (special, symbolic links, shortcuts, and mount points) are not supported.  It has been seen*/
/* when a temporary file is created for its file type to be reported as "unknown" and when it's*/
/* altered/deleted to be reported as a regular file.  This means it's possible for a file not to*/
/* be reported as discovered or created but to be reported as altered and/or deleted.*/
/**/
/* DirectoryMonitor can be configured to not recurse (in which case it only discovers/monitors*/
/* the root directory) and to not monitor (in which case only discovery occurs).*/
/**/

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <glib/gi18n-lib.h>
#include <gobject/gvaluecollector.h>


#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))

typedef struct _DirectoryMonitor DirectoryMonitor;
typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
typedef struct _DirectoryMonitorPrivate DirectoryMonitorPrivate;

#define DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT (directory_monitor_query_info_queue_element_get_type ())
#define DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElement))
#define DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElementClass))
#define DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT))
#define DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT))
#define DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElementClass))

typedef struct _DirectoryMonitorQueryInfoQueueElement DirectoryMonitorQueryInfoQueueElement;
typedef struct _DirectoryMonitorQueryInfoQueueElementClass DirectoryMonitorQueryInfoQueueElementClass;

#define DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP (directory_monitor_file_info_map_get_type ())
#define DIRECTORY_MONITOR_FILE_INFO_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMap))
#define DIRECTORY_MONITOR_FILE_INFO_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMapClass))
#define DIRECTORY_MONITOR_IS_FILE_INFO_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP))
#define DIRECTORY_MONITOR_IS_FILE_INFO_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP))
#define DIRECTORY_MONITOR_FILE_INFO_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMapClass))

typedef struct _DirectoryMonitorFileInfoMap DirectoryMonitorFileInfoMap;
typedef struct _DirectoryMonitorFileInfoMapClass DirectoryMonitorFileInfoMapClass;

#define DIRECTORY_MONITOR_TYPE_FTYPE (directory_monitor_ftype_get_type ())
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _directory_monitor_file_info_map_unref0(var) ((var == NULL) ? NULL : (var = (directory_monitor_file_info_map_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _DirectoryMonitorAsyncInternalNotifyDirectoryMovedData DirectoryMonitorAsyncInternalNotifyDirectoryMovedData;
typedef struct _DirectoryMonitorAsyncNotifyDirectoryDeletedData DirectoryMonitorAsyncNotifyDirectoryDeletedData;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
typedef struct _DirectoryMonitorExploreAsyncData DirectoryMonitorExploreAsyncData;
typedef struct _DirectoryMonitorNotifyDirectoryFilesData DirectoryMonitorNotifyDirectoryFilesData;
typedef struct _DirectoryMonitorQueryInfoQueueElementPrivate DirectoryMonitorQueryInfoQueueElementPrivate;
#define _directory_monitor_query_info_queue_element_unref0(var) ((var == NULL) ? NULL : (var = (directory_monitor_query_info_queue_element_unref (var), NULL)))
typedef struct _DirectoryMonitorParamSpecQueryInfoQueueElement DirectoryMonitorParamSpecQueryInfoQueueElement;
typedef struct _DirectoryMonitorFileInfoMapPrivate DirectoryMonitorFileInfoMapPrivate;
typedef struct _DirectoryMonitorParamSpecFileInfoMap DirectoryMonitorParamSpecFileInfoMap;
enum  {
	DIRECTORY_MONITOR_ROOT_MOVED_SIGNAL,
	DIRECTORY_MONITOR_ROOT_DELETED_SIGNAL,
	DIRECTORY_MONITOR_DISCOVERY_STARTED_SIGNAL,
	DIRECTORY_MONITOR_FILE_DISCOVERED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_DISCOVERED_SIGNAL,
	DIRECTORY_MONITOR_DISCOVERY_FAILED_SIGNAL,
	DIRECTORY_MONITOR_DISCOVERY_COMPLETED_SIGNAL,
	DIRECTORY_MONITOR_FILE_CREATED_SIGNAL,
	DIRECTORY_MONITOR_FILE_MOVED_SIGNAL,
	DIRECTORY_MONITOR_FILE_ALTERED_SIGNAL,
	DIRECTORY_MONITOR_FILE_ALTERATION_COMPLETED_SIGNAL,
	DIRECTORY_MONITOR_FILE_ATTRIBUTES_ALTERED_SIGNAL,
	DIRECTORY_MONITOR_FILE_DELETED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_CREATED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_MOVED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_ALTERED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_ALTERATION_COMPLETED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_ATTRIBUTES_ALTERED_SIGNAL,
	DIRECTORY_MONITOR_DIRECTORY_DELETED_SIGNAL,
	DIRECTORY_MONITOR_CLOSED_SIGNAL,
	DIRECTORY_MONITOR_LAST_SIGNAL
};
static guint directory_monitor_signals[DIRECTORY_MONITOR_LAST_SIGNAL] = {0};
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _DirectoryMonitor {
	GObject parent_instance;
	DirectoryMonitorPrivate * priv;
};

struct _DirectoryMonitorClass {
	GObjectClass parent_class;
	void (*notify_root_deleted) (DirectoryMonitor* self, GFile* root);
	void (*notify_root_moved) (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
	void (*notify_discovery_started) (DirectoryMonitor* self);
	void (*internal_notify_file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*notify_file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*internal_notify_directory_discovered) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
	void (*notify_directory_discovered) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
	void (*notify_discovery_failed) (DirectoryMonitor* self, const gchar* reason);
	void (*notify_discovery_completed) (DirectoryMonitor* self);
	void (*notify_file_created) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*notify_file_moved) (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
	void (*notify_file_altered) (DirectoryMonitor* self, GFile* file);
	void (*notify_file_alteration_completed) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*notify_file_attributes_altered) (DirectoryMonitor* self, GFile* file);
	void (*notify_file_deleted) (DirectoryMonitor* self, GFile* file);
	void (*notify_directory_created) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
	void (*notify_directory_moved) (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
	void (*notify_directory_altered) (DirectoryMonitor* self, GFile* dir);
	void (*notify_directory_alteration_completed) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
	void (*notify_directory_attributes_altered) (DirectoryMonitor* self, GFile* dir);
	void (*notify_directory_deleted) (DirectoryMonitor* self, GFile* dir);
	void (*notify_closed) (DirectoryMonitor* self);
	void (*close) (DirectoryMonitor* self);
	void (*root_moved) (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
	void (*root_deleted) (DirectoryMonitor* self, GFile* root);
	void (*discovery_started) (DirectoryMonitor* self);
	void (*file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*directory_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*discovery_failed) (DirectoryMonitor* self, const gchar* reason);
	void (*discovery_completed) (DirectoryMonitor* self);
	void (*file_created) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*file_moved) (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
	void (*file_altered) (DirectoryMonitor* self, GFile* file);
	void (*file_alteration_completed) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
	void (*file_attributes_altered) (DirectoryMonitor* self, GFile* file);
	void (*file_deleted) (DirectoryMonitor* self, GFile* file);
	void (*directory_created) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
	void (*directory_moved) (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
	void (*directory_altered) (DirectoryMonitor* self, GFile* dir);
	void (*directory_alteration_completed) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
	void (*directory_attributes_altered) (DirectoryMonitor* self, GFile* dir);
	void (*directory_deleted) (DirectoryMonitor* self, GFile* dir);
	void (*closed) (DirectoryMonitor* self);
};

struct _DirectoryMonitorPrivate {
	GFile* root;
	gboolean recurse;
	gboolean monitoring;
	GeeHashMap* monitors;
	GeeQueue* query_info_queue;
	DirectoryMonitorFileInfoMap* files;
	DirectoryMonitorFileInfoMap* parent_moved;
	GCancellable* cancellable;
	gint outstanding_exploration_dirs;
	gboolean started;
	gboolean has_discovery_started;
	guint delete_timer_id;
};

typedef enum  {
	DIRECTORY_MONITOR_FTYPE_FILE,
	DIRECTORY_MONITOR_FTYPE_DIRECTORY,
	DIRECTORY_MONITOR_FTYPE_UNSUPPORTED
} DirectoryMonitorFType;

struct _DirectoryMonitorAsyncInternalNotifyDirectoryMovedData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	DirectoryMonitor* self;
	GFile* old_dir;
	GFileInfo* old_dir_info;
	GFile* new_dir;
	GFileInfo* new_dir_info;
	GeeArrayList* file_children;
	GeeArrayList* _tmp0_;
	GeeArrayList* dir_children;
	GeeArrayList* _tmp1_;
	gint count;
	DirectoryMonitorFileInfoMap* _tmp2_;
	GFile* _tmp3_;
	GeeArrayList* _tmp4_;
	GeeArrayList* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	GeeArrayList* _dir_child_list;
	GeeArrayList* _tmp8_;
	GeeArrayList* _tmp9_;
	gint _dir_child_size;
	GeeArrayList* _tmp10_;
	gint _tmp11_;
	gint _tmp12_;
	gint _dir_child_index;
	gint _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	GFile* dir_child;
	GeeArrayList* _tmp16_;
	gint _tmp17_;
	gpointer _tmp18_;
	GFileInfo* dir_info;
	DirectoryMonitorFileInfoMap* _tmp19_;
	GFile* _tmp20_;
	GFileInfo* _tmp21_;
	GFileInfo* _tmp22_;
	GFile* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	GFile* _tmp26_;
	GFileInfo* _tmp27_;
	GFile* _tmp28_;
	GFile* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	GFile* _tmp32_;
	GFile* _tmp33_;
	GFileInfo* _tmp34_;
	GeeArrayList* _file_child_list;
	GeeArrayList* _tmp35_;
	GeeArrayList* _tmp36_;
	gint _file_child_size;
	GeeArrayList* _tmp37_;
	gint _tmp38_;
	gint _tmp39_;
	gint _file_child_index;
	gint _tmp40_;
	gint _tmp41_;
	gint _tmp42_;
	GFile* file_child;
	GeeArrayList* _tmp43_;
	gint _tmp44_;
	gpointer _tmp45_;
	GFileInfo* file_info;
	DirectoryMonitorFileInfoMap* _tmp46_;
	GFile* _tmp47_;
	GFileInfo* _tmp48_;
	GFileInfo* _tmp49_;
	GFile* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	GFile* _tmp53_;
	GFile* _tmp54_;
	GFile* _tmp55_;
	gchar* _tmp56_;
	gchar* _tmp57_;
	GFile* _tmp58_;
	GFile* _tmp59_;
	GFileInfo* _tmp60_;
	DirectoryMonitorFileInfoMap* _tmp61_;
	GFile* _tmp62_;
	gboolean updated;
	DirectoryMonitorFileInfoMap* _tmp63_;
	GFile* _tmp64_;
	GFileInfo* _tmp65_;
	gboolean _tmp66_;
	GFile* _tmp67_;
	GFileInfo* _tmp68_;
	GFile* _tmp69_;
	GFileInfo* _tmp70_;
	GFile* _tmp71_;
	GFile* _tmp72_;
	GFileInfo* _tmp73_;
};

struct _DirectoryMonitorAsyncNotifyDirectoryDeletedData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	DirectoryMonitor* self;
	GFile* dir;
	gboolean already_removed;
	GeeArrayList* file_children;
	GeeArrayList* _tmp0_;
	GeeArrayList* dir_children;
	GeeArrayList* _tmp1_;
	gint count;
	DirectoryMonitorFileInfoMap* _tmp2_;
	GFile* _tmp3_;
	GeeArrayList* _tmp4_;
	GeeArrayList* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	GeeArrayList* _dir_child_list;
	GeeArrayList* _tmp8_;
	GeeArrayList* _tmp9_;
	gint _dir_child_size;
	GeeArrayList* _tmp10_;
	gint _tmp11_;
	gint _tmp12_;
	gint _dir_child_index;
	gint _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	GFile* dir_child;
	GeeArrayList* _tmp16_;
	gint _tmp17_;
	gpointer _tmp18_;
	GFile* _tmp19_;
	GeeArrayList* _file_child_list;
	GeeArrayList* _tmp20_;
	GeeArrayList* _tmp21_;
	gint _file_child_size;
	GeeArrayList* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	gint _file_child_index;
	gint _tmp25_;
	gint _tmp26_;
	gint _tmp27_;
	GFile* file_child;
	GeeArrayList* _tmp28_;
	gint _tmp29_;
	gpointer _tmp30_;
	DirectoryMonitorFileInfoMap* _tmp31_;
	GFile* _tmp32_;
	GFile* _tmp33_;
	gboolean _tmp34_;
	DirectoryMonitorFileInfoMap* _tmp35_;
	GFile* _tmp36_;
	GFile* _tmp37_;
};

struct _DirectoryMonitorExploreAsyncData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	DirectoryMonitor* self;
	GFile* dir;
	GFileInfo* dir_info;
	gboolean in_discovery;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
	gboolean _tmp3_;
	GFile* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gboolean _tmp7_;
	GFileInfo* local_dir_info;
	GFileInfo* _tmp8_;
	GFileInfo* _tmp9_;
	GFileInfo* _tmp10_;
	GFileInfo* _tmp11_;
	GFile* _tmp12_;
	GCancellable* _tmp13_;
	GFileInfo* _tmp14_;
	GFileInfo* _tmp15_;
	GError* err;
	GFile* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	GError* _tmp19_;
	const gchar* _tmp20_;
	gboolean _tmp21_;
	GFileInfo* _tmp22_;
	gboolean _tmp23_;
	GFile* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gboolean _tmp27_;
	GFileInfo* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gboolean _tmp31_;
	GFileInfo* _tmp32_;
	GFile* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	GFileInfo* _tmp36_;
	GFileType _tmp37_;
	GFile* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	GFileInfo* _tmp41_;
	GFileType _tmp42_;
	GEnumValue* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	gboolean _tmp46_;
	GeeHashMap* dir_map;
	GeeHashMap* file_map;
	GFileEnumerator* enumerator;
	GFile* _tmp47_;
	GCancellable* _tmp48_;
	GFileEnumerator* _tmp49_;
	gboolean _tmp50_;
	GList* infos;
	GFileEnumerator* _tmp51_;
	GCancellable* _tmp52_;
	GList* _tmp53_;
	GList* _tmp54_;
	GList* _tmp55_;
	GList* info_collection;
	GList* info_it;
	GFileInfo* _tmp56_;
	GFileInfo* info;
	GFileInfo* _tmp57_;
	gchar* _tmp58_;
	gchar* _tmp59_;
	gboolean _tmp60_;
	GFileInfo* _tmp61_;
	GFile* _tmp62_;
	gchar* _tmp63_;
	gchar* _tmp64_;
	GFileInfo* _tmp65_;
	gboolean _tmp66_;
	GFile* _tmp67_;
	GFileInfo* _tmp68_;
	const gchar* _tmp69_;
	GFile* _tmp70_;
	GFile* _tmp71_;
	gchar* _tmp72_;
	gchar* _tmp73_;
	GFileInfo* _tmp74_;
	gboolean _tmp75_;
	GFileInfo* _tmp76_;
	GFileType _tmp77_;
	GeeHashMap* _tmp78_;
	GeeHashMap* _tmp79_;
	GeeHashMap* _tmp80_;
	GFile* _tmp81_;
	GFileInfo* _tmp82_;
	const gchar* _tmp83_;
	GFile* _tmp84_;
	GFile* _tmp85_;
	GFileInfo* _tmp86_;
	GeeHashMap* _tmp87_;
	GeeHashMap* _tmp88_;
	GeeHashMap* _tmp89_;
	GFile* _tmp90_;
	GFileInfo* _tmp91_;
	const gchar* _tmp92_;
	GFile* _tmp93_;
	GFile* _tmp94_;
	GFileInfo* _tmp95_;
	GError* err2;
	GFile* _tmp96_;
	gchar* _tmp97_;
	gchar* _tmp98_;
	GError* _tmp99_;
	const gchar* _tmp100_;
	gboolean _tmp101_;
	gboolean _tmp102_;
	GFile* _tmp103_;
	GFileInfo* _tmp104_;
	GFile* _tmp105_;
	GFileInfo* _tmp106_;
	GFile* _tmp107_;
	GFileInfo* _tmp108_;
	GeeHashMap* _tmp109_;
	GeeHashMap* _tmp110_;
	gboolean _tmp111_;
	gboolean _tmp112_;
	gboolean _tmp113_;
	GeeHashMap* _tmp114_;
	GeeIterator* _subdir_it;
	GeeHashMap* _tmp115_;
	GeeSet* _tmp116_;
	GeeSet* _tmp117_;
	GeeSet* _tmp118_;
	GeeIterator* _tmp119_;
	GeeIterator* _tmp120_;
	GeeIterator* _tmp121_;
	gboolean _tmp122_;
	GFile* subdir;
	GeeIterator* _tmp123_;
	gpointer _tmp124_;
	gint _tmp125_;
	gint _tmp126_;
	GFile* _tmp127_;
	GeeHashMap* _tmp128_;
	GFile* _tmp129_;
	gpointer _tmp130_;
	GFileInfo* _tmp131_;
	gboolean _tmp132_;
	GFile* _tmp133_;
	GeeHashMap* _tmp134_;
	GFile* _tmp135_;
	gpointer _tmp136_;
	GFileInfo* _tmp137_;
	gboolean _tmp138_;
	gboolean _tmp139_;
	GError * _inner_error_;
};

struct _DirectoryMonitorNotifyDirectoryFilesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	DirectoryMonitor* self;
	GeeMap* map;
	gboolean in_discovery;
	GeeMapIterator* iter;
	GeeMap* _tmp0_;
	GeeMapIterator* _tmp1_;
	GeeMapIterator* _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
	GeeMapIterator* _tmp5_;
	gpointer _tmp6_;
	GFile* _tmp7_;
	GeeMapIterator* _tmp8_;
	gpointer _tmp9_;
	GFileInfo* _tmp10_;
	GeeMapIterator* _tmp11_;
	gpointer _tmp12_;
	GFile* _tmp13_;
	GeeMapIterator* _tmp14_;
	gpointer _tmp15_;
	GFileInfo* _tmp16_;
};

struct _DirectoryMonitorQueryInfoQueueElement {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DirectoryMonitorQueryInfoQueueElementPrivate * priv;
	DirectoryMonitor* owner;
	GFile* file;
	GFile* other_file;
	GFileMonitorEvent event;
	guint position;
	gulong time_created_msec;
	GFileInfo* info;
	GError* err;
	gboolean completed;
};

struct _DirectoryMonitorQueryInfoQueueElementClass {
	GTypeClass parent_class;
	void (*finalize) (DirectoryMonitorQueryInfoQueueElement *self);
};

struct _DirectoryMonitorParamSpecQueryInfoQueueElement {
	GParamSpec parent_instance;
};

struct _DirectoryMonitorFileInfoMap {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DirectoryMonitorFileInfoMapPrivate * priv;
};

struct _DirectoryMonitorFileInfoMapClass {
	GTypeClass parent_class;
	void (*finalize) (DirectoryMonitorFileInfoMap *self);
};

struct _DirectoryMonitorFileInfoMapPrivate {
	GeeHashMap* map;
	GeeHashMap* id_map;
};

struct _DirectoryMonitorParamSpecFileInfoMap {
	GParamSpec parent_instance;
};


static gpointer directory_monitor_parent_class = NULL;
static gpointer directory_monitor_query_info_queue_element_parent_class = NULL;
static guint directory_monitor_query_info_queue_element_current;
static guint directory_monitor_query_info_queue_element_current = (guint) 0;
static gpointer directory_monitor_file_info_map_parent_class = NULL;

GType directory_monitor_get_type (void) G_GNUC_CONST;
static gpointer directory_monitor_query_info_queue_element_ref (gpointer instance);
static void directory_monitor_query_info_queue_element_unref (gpointer instance);
static GParamSpec* directory_monitor_param_spec_query_info_queue_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
static void directory_monitor_value_set_query_info_queue_element (GValue* value, gpointer v_object) G_GNUC_UNUSED;
static void directory_monitor_value_take_query_info_queue_element (GValue* value, gpointer v_object) G_GNUC_UNUSED;
static gpointer directory_monitor_value_get_query_info_queue_element (const GValue* value) G_GNUC_UNUSED;
static GType directory_monitor_query_info_queue_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static gpointer directory_monitor_file_info_map_ref (gpointer instance);
static void directory_monitor_file_info_map_unref (gpointer instance);
static GParamSpec* directory_monitor_param_spec_file_info_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
static void directory_monitor_value_set_file_info_map (GValue* value, gpointer v_object) G_GNUC_UNUSED;
static void directory_monitor_value_take_file_info_map (GValue* value, gpointer v_object) G_GNUC_UNUSED;
static gpointer directory_monitor_value_get_file_info_map (const GValue* value) G_GNUC_UNUSED;
static GType directory_monitor_file_info_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
#define DIRECTORY_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECTORY_MONITOR, DirectoryMonitorPrivate))
enum  {
	DIRECTORY_MONITOR_DUMMY_PROPERTY
};
static GType directory_monitor_ftype_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_new (void);
static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_construct (GType object_type);
#define DIRECTORY_MONITOR_DEFAULT_PRIORITY G_PRIORITY_LOW
#define DIRECTORY_MONITOR_DIR_INFO_FLAGS G_FILE_QUERY_INFO_NONE
#define DIRECTORY_MONITOR_FILE_INFO_FLAGS G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
#define DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS G_FILE_QUERY_INFO_NONE
#define DIRECTORY_MONITOR_SUPPORT_DIR_SYMLINKS TRUE
#define DIRECTORY_MONITOR_SUPPORT_FILE_SYMLINKS FALSE
#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
#define DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES UTIL_FILE_ATTRIBUTES
#define DIRECTORY_MONITOR_FILE_MONITOR_FLAGS G_FILE_MONITOR_SEND_MOVED
#define DIRECTORY_MONITOR_DELETED_EXPIRATION_MSEC ((guint) 500)
#define DIRECTORY_MONITOR_MAX_EXPLORATION_DIRS 5
DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring);
DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring);
void directory_monitor_mdbg (const gchar* msg);
gboolean directory_monitor_is_recursive (DirectoryMonitor* self);
gboolean directory_monitor_is_monitoring (DirectoryMonitor* self);
void directory_monitor_notify_root_deleted (DirectoryMonitor* self, GFile* root);
static void directory_monitor_real_notify_root_deleted (DirectoryMonitor* self, GFile* root);
static void directory_monitor_internal_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
static gboolean directory_monitor_file_info_map_remove (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
static gboolean directory_monitor_file_info_map_update (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
void directory_monitor_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
static void directory_monitor_real_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
void directory_monitor_notify_discovery_started (DirectoryMonitor* self);
static void directory_monitor_real_notify_discovery_started (DirectoryMonitor* self);
void directory_monitor_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
void directory_monitor_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
void directory_monitor_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_real_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
void directory_monitor_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_real_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
void directory_monitor_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason);
static void directory_monitor_real_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason);
void directory_monitor_notify_discovery_completed (DirectoryMonitor* self);
static void directory_monitor_real_notify_discovery_completed (DirectoryMonitor* self);
static void directory_monitor_internal_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static gboolean directory_monitor_is_file_create_move (DirectoryMonitor* self, GFile* file, GFileInfo* info, GFile* * old_file, GFileInfo* * old_file_info);
static void directory_monitor_internal_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
void directory_monitor_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
void directory_monitor_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
static void directory_monitor_real_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
void directory_monitor_notify_file_altered (DirectoryMonitor* self, GFile* file);
static void directory_monitor_real_notify_file_altered (DirectoryMonitor* self, GFile* file);
static void directory_monitor_internal_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
void directory_monitor_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
void directory_monitor_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file);
static void directory_monitor_real_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file);
static void directory_monitor_internal_notify_file_deleted (DirectoryMonitor* self, GFile* file);
void directory_monitor_notify_file_deleted (DirectoryMonitor* self, GFile* file);
static void directory_monitor_real_notify_file_deleted (DirectoryMonitor* self, GFile* file);
static void directory_monitor_internal_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_file_info_map_remove_descendents (DirectoryMonitorFileInfoMap* self, GFile* root, DirectoryMonitorFileInfoMap* descendents);
static void directory_monitor_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info);
void directory_monitor_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_real_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_async_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void directory_monitor_async_internal_notify_directory_moved_finish (DirectoryMonitor* self, GAsyncResult* _res_);
static void directory_monitor_async_internal_notify_directory_moved_data_free (gpointer _data);
static void directory_monitor_async_internal_notify_directory_moved_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static gboolean directory_monitor_async_internal_notify_directory_moved_co (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_);
gboolean file_equal (GFile* a, GFile* b);
static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
static gint directory_monitor_file_info_map_get_children (DirectoryMonitorFileInfoMap* self, GFile* root, GeeCollection* files, GeeCollection* dirs);
static GFileInfo* directory_monitor_file_info_map_get_info (DirectoryMonitorFileInfoMap* self, GFile* file);
static void directory_monitor_async_internal_notify_directory_moved_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static gboolean _directory_monitor_async_internal_notify_directory_moved_co_gsource_func (gpointer self);
static gboolean directory_monitor_remove_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static gboolean directory_monitor_add_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
void directory_monitor_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
static void directory_monitor_real_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
void directory_monitor_notify_directory_altered (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_real_notify_directory_altered (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_internal_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
void directory_monitor_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_real_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
void directory_monitor_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_real_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_internal_notify_directory_deleted (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_async_notify_directory_deleted (DirectoryMonitor* self, GFile* dir, gboolean already_removed, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void directory_monitor_async_notify_directory_deleted_finish (DirectoryMonitor* self, GAsyncResult* _res_);
static void directory_monitor_async_notify_directory_deleted_data_free (gpointer _data);
static void directory_monitor_async_notify_directory_deleted_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static gboolean directory_monitor_async_notify_directory_deleted_co (DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_);
static void directory_monitor_async_notify_directory_deleted_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static gboolean _directory_monitor_async_notify_directory_deleted_co_gsource_func (gpointer self);
void directory_monitor_notify_directory_deleted (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_real_notify_directory_deleted (DirectoryMonitor* self, GFile* dir);
void directory_monitor_notify_closed (DirectoryMonitor* self);
static void directory_monitor_real_notify_closed (DirectoryMonitor* self);
GFile* directory_monitor_get_root (DirectoryMonitor* self);
gboolean directory_monitor_is_in_root (DirectoryMonitor* self, GFile* file);
gboolean directory_monitor_has_started (DirectoryMonitor* self);
void directory_monitor_start_discovery (DirectoryMonitor* self);
static void directory_monitor_explore_async (DirectoryMonitor* self, GFile* dir, GFileInfo* dir_info, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void directory_monitor_explore_finish (DirectoryMonitor* self, GAsyncResult* _res_);
void directory_monitor_close (DirectoryMonitor* self);
static void directory_monitor_real_close (DirectoryMonitor* self);
static void directory_monitor_cancel_monitor (DirectoryMonitor* self, GFileMonitor* monitor);
static DirectoryMonitorFType directory_monitor_get_ftype (GFileInfo* info);
const gchar* g_file_type_to_string (GFileType self);
static void directory_monitor_explore_async_data_free (gpointer _data);
static void directory_monitor_explore_async_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static gboolean directory_monitor_explore_async_co (DirectoryMonitorExploreAsyncData* _data_);
static gboolean directory_monitor_file_info_map_contains (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
static void directory_monitor_explore_directory_completed (DirectoryMonitor* self, gboolean in_discovery);
static void directory_monitor_explore_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
gchar* get_file_info_id (GFileInfo* info);
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
gboolean directory_monitor_is_file_symlink_supported (GFileInfo* info);
guint file_hash (GFile* file);
static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
static void directory_monitor_notify_directory_files (DirectoryMonitor* self, GeeMap* map, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void directory_monitor_notify_directory_files_finish (DirectoryMonitor* self, GAsyncResult* _res_);
static void directory_monitor_notify_directory_files_data_free (gpointer _data);
static void directory_monitor_notify_directory_files_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static gboolean directory_monitor_notify_directory_files_co (DirectoryMonitorNotifyDirectoryFilesData* _data_);
static gboolean _directory_monitor_notify_directory_files_co_gsource_func (gpointer self);
static gchar* directory_monitor_file_info_map_get_id (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
static void directory_monitor_on_monitor_notification (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileMonitorEvent event);
static void _directory_monitor_on_monitor_notification_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
const gchar* g_file_monitor_event_to_string (GFileMonitorEvent self);
static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_new (DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event);
static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_construct (GType object_type, DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event);
static void directory_monitor_query_info_queue_element_on_completed (DirectoryMonitorQueryInfoQueueElement* self, GObject* source, GAsyncResult* aresult);
static void _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static gboolean directory_monitor_check_for_expired_delete_events (DirectoryMonitor* self);
static gboolean _directory_monitor_check_for_expired_delete_events_gsource_func (gpointer self);
static void directory_monitor_process_query_queue (DirectoryMonitor* self, DirectoryMonitorQueryInfoQueueElement* query_info);
static GFile* directory_monitor_file_info_map_find_match (DirectoryMonitorFileInfoMap* self, GFileInfo* match);
static void directory_monitor_on_monitor_notification_ready (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileInfo* info, GFileMonitorEvent event);
GFileInfo* directory_monitor_get_file_info (DirectoryMonitor* self, GFile* file);
gulong now_ms (void);
GeeCollection* directory_monitor_get_files (DirectoryMonitor* self);
static GeeCollection* directory_monitor_file_info_map_get_all (DirectoryMonitorFileInfoMap* self);
GFileInfo* directory_monitor_query_file_info (DirectoryMonitor* self, GFile* file);
static GFileInfo* directory_monitor_file_info_map_query_info (DirectoryMonitorFileInfoMap* self, GFile* file, GCancellable* cancellable);
static void directory_monitor_real_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void directory_monitor_real_root_deleted (DirectoryMonitor* self, GFile* root);
static void directory_monitor_real_discovery_started (DirectoryMonitor* self);
static void directory_monitor_real_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void directory_monitor_real_directory_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_discovery_failed (DirectoryMonitor* self, const gchar* reason);
static void directory_monitor_real_discovery_completed (DirectoryMonitor* self);
static void directory_monitor_real_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
static void directory_monitor_real_file_altered (DirectoryMonitor* self, GFile* file);
static void directory_monitor_real_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
static void directory_monitor_real_file_attributes_altered (DirectoryMonitor* self, GFile* file);
static void directory_monitor_real_file_deleted (DirectoryMonitor* self, GFile* file);
static void directory_monitor_real_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_real_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
static void directory_monitor_real_directory_altered (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_real_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
static void directory_monitor_real_directory_attributes_altered (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_real_directory_deleted (DirectoryMonitor* self, GFile* dir);
static void directory_monitor_real_closed (DirectoryMonitor* self);
enum  {
	DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_DUMMY_PROPERTY
};
static void directory_monitor_query_info_queue_element_finalize (DirectoryMonitorQueryInfoQueueElement * obj);
#define DIRECTORY_MONITOR_FILE_INFO_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMapPrivate))
enum  {
	DIRECTORY_MONITOR_FILE_INFO_MAP_DUMMY_PROPERTY
};
static gboolean directory_monitor_file_info_map_normalize_file (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info, GFile* * normalized, gchar* * id);
static void directory_monitor_file_info_map_remove_all (DirectoryMonitorFileInfoMap* self, GeeCollection* files);
static void directory_monitor_file_info_map_finalize (DirectoryMonitorFileInfoMap * obj);
static void directory_monitor_finalize (GObject * obj);


static GType directory_monitor_ftype_get_type (void) {
	static volatile gsize directory_monitor_ftype_type_id__volatile = 0;
	if (g_once_init_enter (&directory_monitor_ftype_type_id__volatile)) {
		static const GEnumValue values[] = {{DIRECTORY_MONITOR_FTYPE_FILE, "DIRECTORY_MONITOR_FTYPE_FILE", "file"}, {DIRECTORY_MONITOR_FTYPE_DIRECTORY, "DIRECTORY_MONITOR_FTYPE_DIRECTORY", "directory"}, {DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "DIRECTORY_MONITOR_FTYPE_UNSUPPORTED", "unsupported"}, {0, NULL, NULL}};
		GType directory_monitor_ftype_type_id;
		directory_monitor_ftype_type_id = g_enum_register_static ("DirectoryMonitorFType", values);
		g_once_init_leave (&directory_monitor_ftype_type_id__volatile, directory_monitor_ftype_type_id);
	}
	return directory_monitor_ftype_type_id__volatile;
}


static gpointer _g_object_ref0 (gpointer self) {
#line 465 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return self ? g_object_ref (self) : NULL;
#line 845 "DirectoryMonitor.c"
}


DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring) {
	DirectoryMonitor * self = NULL;
	GFile* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
#line 464 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (root), NULL);
#line 464 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self = (DirectoryMonitor*) g_object_new (object_type, NULL);
#line 465 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = root;
#line 465 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 465 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->root);
#line 465 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->root = _tmp1_;
#line 466 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = recurse;
#line 466 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->recurse = _tmp2_;
#line 467 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = monitoring;
#line 467 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->monitoring = _tmp3_;
#line 464 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return self;
#line 877 "DirectoryMonitor.c"
}


DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring) {
#line 464 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return directory_monitor_construct (TYPE_DIRECTORY_MONITOR, root, recurse, monitoring);
#line 884 "DirectoryMonitor.c"
}


void directory_monitor_mdbg (const gchar* msg) {
#line 470 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (msg != NULL);
#line 891 "DirectoryMonitor.c"
}


gboolean directory_monitor_is_recursive (DirectoryMonitor* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 476 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 477 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->recurse;
#line 477 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp0_;
#line 477 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 906 "DirectoryMonitor.c"
}


gboolean directory_monitor_is_monitoring (DirectoryMonitor* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 480 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 481 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->monitoring;
#line 481 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp0_;
#line 481 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 921 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_root_deleted (DirectoryMonitor* self, GFile* root) {
	GFile* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
	GFile* _tmp3_;
#line 484 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (root));
#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->root;
#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = root;
#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = g_file_equal (_tmp0_, _tmp1_);
#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (_tmp2_, "this.root.equal(root)");
#line 487 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg ("root deleted");
#line 488 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = root;
#line 488 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_ROOT_DELETED_SIGNAL], 0, _tmp3_);
#line 946 "DirectoryMonitor.c"
}


void directory_monitor_notify_root_deleted (DirectoryMonitor* self, GFile* root) {
#line 484 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 484 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_root_deleted (self, root);
#line 955 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
	gboolean removed = FALSE;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
	gboolean updated = FALSE;
	DirectoryMonitorFileInfoMap* _tmp3_;
	GFile* _tmp4_;
	GFileInfo* _tmp5_;
	gboolean _tmp6_;
	GFile* _tmp7_;
	GFile* _tmp8_;
	GFile* _tmp9_;
	GFile* _tmp10_;
	GFileInfo* _tmp11_;
#line 491 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 491 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_root));
#line 491 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_root));
#line 491 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_root_info));
#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = old_root;
#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = directory_monitor_file_info_map_remove (_tmp0_, _tmp1_, NULL);
#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	removed = _tmp2_;
#line 493 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (removed, "removed");
#line 495 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = self->priv->files;
#line 495 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = new_root;
#line 495 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = new_root_info;
#line 495 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = directory_monitor_file_info_map_update (_tmp3_, _tmp4_, _tmp5_);
#line 495 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	updated = _tmp6_;
#line 496 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (updated, "updated");
#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = new_root;
#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->root);
#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->root = _tmp8_;
#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = old_root;
#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = new_root;
#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = new_root_info;
#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_root_moved (self, _tmp9_, _tmp10_, _tmp11_);
#line 1020 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
	GFile* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
	GFile* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	GFile* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	GFile* _tmp11_;
	GFile* _tmp12_;
	GFileInfo* _tmp13_;
#line 503 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_root));
#line 503 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_root));
#line 503 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_root_info));
#line 504 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->root;
#line 504 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = old_root;
#line 504 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = g_file_equal (_tmp0_, _tmp1_);
#line 504 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (_tmp2_, "this.root.equal(old_root)");
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = old_root;
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = g_file_get_path (_tmp3_);
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = _tmp4_;
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = new_root;
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = g_file_get_path (_tmp6_);
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = _tmp7_;
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = g_strdup_printf ("root moved: %s -> %s", _tmp5_, _tmp8_);
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = _tmp9_;
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp10_);
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp10_);
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp8_);
#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp5_);
#line 507 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = old_root;
#line 507 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = new_root;
#line 507 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = new_root_info;
#line 507 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_ROOT_MOVED_SIGNAL], 0, _tmp11_, _tmp12_, _tmp13_);
#line 1085 "DirectoryMonitor.c"
}


void directory_monitor_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
#line 503 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 503 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_root_moved (self, old_root, new_root, new_root_info);
#line 1094 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_discovery_started (DirectoryMonitor* self) {
#line 511 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg ("discovery started");
#line 512 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DISCOVERY_STARTED_SIGNAL], 0);
#line 1103 "DirectoryMonitor.c"
}


void directory_monitor_notify_discovery_started (DirectoryMonitor* self) {
#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_discovery_started (self);
#line 1112 "DirectoryMonitor.c"
}


static void directory_monitor_real_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
	gboolean _tmp3_;
	GFile* _tmp7_;
	GFileInfo* _tmp8_;
#line 515 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 515 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 516 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 516 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 516 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = info;
#line 516 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
#line 516 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp3_) {
#line 1137 "DirectoryMonitor.c"
		GFile* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = file;
#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = g_file_get_path (_tmp4_);
#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = _tmp5_;
#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_debug ("DirectoryMonitor.vala:517: DirectoryMonitor.internal_notify_file_disco" \
"vered: %s discovered but not added to file map", _tmp6_);
#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp6_);
#line 520 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return;
#line 1153 "DirectoryMonitor.c"
	}
#line 523 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = file;
#line 523 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = info;
#line 523 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_file_discovered (self, _tmp7_, _tmp8_);
#line 1161 "DirectoryMonitor.c"
}


void directory_monitor_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 515 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 515 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->internal_notify_file_discovered (self, file, info);
#line 1170 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFileInfo* _tmp6_;
#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("file discovered: %s", _tmp2_);
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 528 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = file;
#line 528 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = info;
#line 528 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_DISCOVERED_SIGNAL], 0, _tmp5_, _tmp6_);
#line 1208 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_discovered (self, file, info);
#line 1217 "DirectoryMonitor.c"
}


static void directory_monitor_real_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	gboolean updated = FALSE;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
	gboolean _tmp3_;
	GFile* _tmp4_;
	GFileInfo* _tmp5_;
#line 531 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 531 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = dir;
#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = info;
#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	updated = _tmp3_;
#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (updated, "updated");
#line 535 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = dir;
#line 535 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = info;
#line 535 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_directory_discovered (self, _tmp4_, _tmp5_);
#line 1251 "DirectoryMonitor.c"
}


void directory_monitor_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
#line 531 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 531 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->internal_notify_directory_discovered (self, dir, info);
#line 1260 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFileInfo* _tmp6_;
#line 538 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 538 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("directory discovered: %s", _tmp2_);
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 540 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = dir;
#line 540 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = info;
#line 540 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_DISCOVERED_SIGNAL], 0, _tmp5_, _tmp6_);
#line 1298 "DirectoryMonitor.c"
}


void directory_monitor_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
#line 538 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 538 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_discovered (self, dir, info);
#line 1307 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason) {
	const gchar* _tmp0_;
	const gchar* _tmp1_;
#line 543 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (reason != NULL);
#line 544 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = reason;
#line 544 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_warning ("DirectoryMonitor.vala:544: discovery failed: %s", _tmp0_);
#line 545 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = reason;
#line 545 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DISCOVERY_FAILED_SIGNAL], 0, _tmp1_);
#line 1324 "DirectoryMonitor.c"
}


void directory_monitor_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason) {
#line 543 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 543 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_discovery_failed (self, reason);
#line 1333 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_discovery_completed (DirectoryMonitor* self) {
#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DISCOVERY_COMPLETED_SIGNAL], 0);
#line 1340 "DirectoryMonitor.c"
}


void directory_monitor_notify_discovery_completed (DirectoryMonitor* self) {
#line 548 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 548 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_discovery_completed (self);
#line 1349 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
	GFile* old_file = NULL;
	GFileInfo* old_file_info = NULL;
	GFile* _tmp0_;
	GFileInfo* _tmp1_;
	GFile* _tmp2_ = NULL;
	GFileInfo* _tmp3_ = NULL;
	gboolean _tmp4_;
#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = info;
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = directory_monitor_is_file_create_move (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_file);
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old_file = _tmp2_;
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_file_info);
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old_file_info = _tmp3_;
#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp4_) {
#line 1383 "DirectoryMonitor.c"
		GFile* _tmp5_;
		GFile* _tmp6_;
		GFileInfo* _tmp7_;
#line 556 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = old_file;
#line 556 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = file;
#line 556 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = info;
#line 556 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_internal_notify_file_moved (self, _tmp5_, _tmp6_, _tmp7_);
#line 1395 "DirectoryMonitor.c"
	} else {
		gboolean updated = FALSE;
		DirectoryMonitorFileInfoMap* _tmp8_;
		GFile* _tmp9_;
		GFileInfo* _tmp10_;
		gboolean _tmp11_;
		gboolean _tmp12_;
		GFile* _tmp13_;
		GFileInfo* _tmp14_;
#line 558 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = self->priv->files;
#line 558 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = file;
#line 558 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = info;
#line 558 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = directory_monitor_file_info_map_update (_tmp8_, _tmp9_, _tmp10_);
#line 558 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		updated = _tmp11_;
#line 559 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp12_ = updated;
#line 559 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_assert (_tmp12_, "updated");
#line 561 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp13_ = file;
#line 561 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp14_ = info;
#line 561 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_file_created (self, _tmp13_, _tmp14_);
#line 1425 "DirectoryMonitor.c"
	}
#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_file_info);
#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_file);
#line 1431 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFileInfo* _tmp6_;
#line 565 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 565 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("file created: %s", _tmp2_);
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 566 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 567 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = file;
#line 567 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = info;
#line 567 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_CREATED_SIGNAL], 0, _tmp5_, _tmp6_);
#line 1469 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 565 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 565 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_created (self, file, info);
#line 1478 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	gboolean updated = FALSE;
	DirectoryMonitorFileInfoMap* _tmp2_;
	GFile* _tmp3_;
	GFileInfo* _tmp4_;
	gboolean _tmp5_;
	GFile* _tmp6_;
	GFile* _tmp7_;
	GFileInfo* _tmp8_;
#line 570 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 570 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_file));
#line 570 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_file));
#line 570 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_file_info));
#line 573 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 573 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = old_file;
#line 573 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_file_info_map_remove (_tmp0_, _tmp1_, NULL);
#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = self->priv->files;
#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = new_file;
#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = new_file_info;
#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = directory_monitor_file_info_map_update (_tmp2_, _tmp3_, _tmp4_);
#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	updated = _tmp5_;
#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (updated, "updated");
#line 578 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = old_file;
#line 578 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = new_file;
#line 578 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = new_file_info;
#line 578 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_file_moved (self, _tmp6_, _tmp7_, _tmp8_);
#line 1527 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	GFile* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	GFile* _tmp8_;
	GFile* _tmp9_;
	GFileInfo* _tmp10_;
#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_file));
#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_file));
#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_file_info));
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = old_file;
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = new_file;
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = g_file_get_path (_tmp3_);
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = _tmp4_;
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = g_strdup_printf ("file moved: %s -> %s", _tmp2_, _tmp5_);
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = _tmp6_;
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp7_);
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp7_);
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp5_);
#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 583 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = old_file;
#line 583 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = new_file;
#line 583 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = new_file_info;
#line 583 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_MOVED_SIGNAL], 0, _tmp8_, _tmp9_, _tmp10_);
#line 1581 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_moved (self, old_file, new_file, new_file_info);
#line 1590 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_altered (DirectoryMonitor* self, GFile* file) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("file altered: %s", _tmp2_);
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 588 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = file;
#line 588 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_ALTERED_SIGNAL], 0, _tmp5_);
#line 1623 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_altered (DirectoryMonitor* self, GFile* file) {
#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_altered (self, file);
#line 1632 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
	gboolean updated = FALSE;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
	gboolean _tmp3_;
	GFile* _tmp4_;
	GFileInfo* _tmp5_;
#line 591 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 591 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 591 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = info;
#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	updated = _tmp3_;
#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (updated, "updated");
#line 595 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = file;
#line 595 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = info;
#line 595 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_file_alteration_completed (self, _tmp4_, _tmp5_);
#line 1668 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFileInfo* _tmp6_;
#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("file alteration completed: %s", _tmp2_);
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 600 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = file;
#line 600 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = info;
#line 600 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_ALTERATION_COMPLETED_SIGNAL], 0, _tmp5_, _tmp6_);
#line 1706 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_alteration_completed (self, file, info);
#line 1715 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("file attributes altered: %s", _tmp2_);
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 605 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = file;
#line 605 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_ATTRIBUTES_ALTERED_SIGNAL], 0, _tmp5_);
#line 1748 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file) {
#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_attributes_altered (self, file);
#line 1757 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_file_deleted (DirectoryMonitor* self, GFile* file) {
	gboolean removed = FALSE;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
	GFile* _tmp3_;
#line 608 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 608 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = directory_monitor_file_info_map_remove (_tmp0_, _tmp1_, NULL);
#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	removed = _tmp2_;
#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (removed, "removed");
#line 612 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = file;
#line 612 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_file_deleted (self, _tmp3_);
#line 1785 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_file_deleted (DirectoryMonitor* self, GFile* file) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
#line 615 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("file deleted: %s", _tmp2_);
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 616 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = file;
#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_FILE_DELETED_SIGNAL], 0, _tmp5_);
#line 1818 "DirectoryMonitor.c"
}


void directory_monitor_notify_file_deleted (DirectoryMonitor* self, GFile* file) {
#line 615 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 615 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_deleted (self, file);
#line 1827 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	GFile* old_dir = NULL;
	GFileInfo* old_dir_info = NULL;
	GFile* _tmp0_;
	GFileInfo* _tmp1_;
	GFile* _tmp2_ = NULL;
	GFileInfo* _tmp3_ = NULL;
	gboolean _tmp4_;
#line 620 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 620 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 620 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = info;
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = directory_monitor_is_file_create_move (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_dir);
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old_dir = _tmp2_;
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_dir_info);
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old_dir_info = _tmp3_;
#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp4_) {
#line 1861 "DirectoryMonitor.c"
		DirectoryMonitorFileInfoMap* _tmp5_;
		GFile* _tmp6_;
		DirectoryMonitorFileInfoMap* _tmp7_;
		GFile* _tmp8_;
		GFileInfo* _tmp9_;
		GFile* _tmp10_;
		GFileInfo* _tmp11_;
#line 629 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = self->priv->files;
#line 629 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = old_dir;
#line 629 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = self->priv->parent_moved;
#line 629 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_remove_descendents (_tmp5_, _tmp6_, _tmp7_);
#line 631 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = old_dir;
#line 631 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = old_dir_info;
#line 631 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = dir;
#line 631 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = info;
#line 631 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_internal_notify_directory_moved (self, _tmp8_, _tmp9_, _tmp10_, _tmp11_);
#line 1887 "DirectoryMonitor.c"
	} else {
		gboolean updated = FALSE;
		DirectoryMonitorFileInfoMap* _tmp12_;
		GFile* _tmp13_;
		GFileInfo* _tmp14_;
		gboolean _tmp15_;
		gboolean _tmp16_;
		GFile* _tmp17_;
		GFileInfo* _tmp18_;
#line 633 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp12_ = self->priv->files;
#line 633 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp13_ = dir;
#line 633 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp14_ = info;
#line 633 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = directory_monitor_file_info_map_update (_tmp12_, _tmp13_, _tmp14_);
#line 633 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		updated = _tmp15_;
#line 634 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp16_ = updated;
#line 634 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_assert (_tmp16_, "updated");
#line 636 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp17_ = dir;
#line 636 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp18_ = info;
#line 636 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_directory_created (self, _tmp17_, _tmp18_);
#line 1917 "DirectoryMonitor.c"
	}
#line 620 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_dir_info);
#line 620 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (old_dir);
#line 1923 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFileInfo* _tmp6_;
#line 640 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 640 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("directory created: %s", _tmp2_);
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 642 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = dir;
#line 642 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = info;
#line 642 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_CREATED_SIGNAL], 0, _tmp5_, _tmp6_);
#line 1961 "DirectoryMonitor.c"
}


void directory_monitor_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
#line 640 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 640 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_created (self, dir, info);
#line 1970 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info) {
	GFile* _tmp0_;
	GFileInfo* _tmp1_;
	GFile* _tmp2_;
	GFileInfo* _tmp3_;
#line 645 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 645 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_dir));
#line 645 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (old_dir_info));
#line 645 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_dir));
#line 645 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_dir_info));
#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = old_dir;
#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = old_dir_info;
#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = new_dir;
#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = new_dir_info;
#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_async_internal_notify_directory_moved (self, _tmp0_, _tmp1_, _tmp2_, _tmp3_, NULL, NULL);
#line 1999 "DirectoryMonitor.c"
}


static void directory_monitor_async_internal_notify_directory_moved_data_free (gpointer _data) {
	DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
	_data_ = _data;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->old_dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->old_dir_info);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->new_dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->new_dir_info);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_slice_free (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData, _data_);
#line 2018 "DirectoryMonitor.c"
}


static void directory_monitor_async_internal_notify_directory_moved_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _task_data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_task_data_->_callback_ != NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 2030 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_->_task_complete_ = TRUE;
#line 2034 "DirectoryMonitor.c"
}


static void directory_monitor_async_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
	DirectoryMonitor* _tmp0_;
	GFile* _tmp1_;
	GFile* _tmp2_;
	GFileInfo* _tmp3_;
	GFileInfo* _tmp4_;
	GFile* _tmp5_;
	GFile* _tmp6_;
	GFileInfo* _tmp7_;
	GFileInfo* _tmp8_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_slice_new0 (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_callback_ = _callback_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, directory_monitor_async_internal_notify_directory_moved_async_ready_wrapper, _user_data_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_callback_ == NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_task_complete_ = TRUE;
#line 2059 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_set_task_data (_data_->_async_result, _data_, directory_monitor_async_internal_notify_directory_moved_data_free);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->self = _tmp0_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = old_dir;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->old_dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->old_dir = _tmp2_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = old_dir_info;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->old_dir_info);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->old_dir_info = _tmp4_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = new_dir;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = _g_object_ref0 (_tmp5_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->new_dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->new_dir = _tmp6_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = new_dir_info;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->new_dir_info);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->new_dir_info = _tmp8_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_async_internal_notify_directory_moved_co (_data_);
#line 2101 "DirectoryMonitor.c"
}


static void directory_monitor_async_internal_notify_directory_moved_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
	DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 2109 "DirectoryMonitor.c"
}


static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
	gboolean result;
	result = file_equal ((GFile*) a, (GFile*) b);
#line 652 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 2118 "DirectoryMonitor.c"
}


static void directory_monitor_async_internal_notify_directory_moved_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = _user_data_;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_source_object_ = source_object;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_res_ = _res_;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_task_complete_ = TRUE;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_async_internal_notify_directory_moved_co (_data_);
#line 2134 "DirectoryMonitor.c"
}


static gboolean _directory_monitor_async_internal_notify_directory_moved_co_gsource_func (gpointer self) {
	gboolean result;
	result = directory_monitor_async_internal_notify_directory_moved_co (self);
#line 683 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 2143 "DirectoryMonitor.c"
}


static gboolean directory_monitor_async_internal_notify_directory_moved_co (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_) {
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_data_->_state_) {
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 0:
#line 2152 "DirectoryMonitor.c"
		goto _state_0;
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 1:
#line 2156 "DirectoryMonitor.c"
		goto _state_1;
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 2:
#line 2160 "DirectoryMonitor.c"
		goto _state_2;
		default:
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_assert_not_reached ();
#line 2165 "DirectoryMonitor.c"
	}
	_state_0:
#line 652 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp0_ = gee_array_list_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
#line 652 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->file_children = _data_->_tmp0_;
#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp1_ = gee_array_list_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->dir_children = _data_->_tmp1_;
#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp2_ = _data_->self->priv->files;
#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp3_ = _data_->old_dir;
#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp4_ = _data_->file_children;
#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp5_ = _data_->dir_children;
#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp6_ = directory_monitor_file_info_map_get_children (_data_->_tmp2_, _data_->_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->count = _data_->_tmp6_;
#line 655 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp7_ = _data_->count;
#line 655 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp7_ > 0) {
#line 2192 "DirectoryMonitor.c"
		{
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp8_ = _data_->dir_children;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp9_ = _g_object_ref0 (_data_->_tmp8_);
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_dir_child_list = _data_->_tmp9_;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp10_ = _data_->_dir_child_list;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp11_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp12_ = _data_->_tmp11_;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_dir_child_size = _data_->_tmp12_;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_dir_child_index = -1;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp13_ = _data_->_dir_child_index;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_dir_child_index = _data_->_tmp13_ + 1;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp14_ = _data_->_dir_child_index;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp15_ = _data_->_dir_child_size;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!(_data_->_tmp14_ < _data_->_tmp15_)) {
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 2224 "DirectoryMonitor.c"
				}
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp16_ = _data_->_dir_child_list;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp17_ = _data_->_dir_child_index;
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp18_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp17_);
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->dir_child = (GFile*) _data_->_tmp18_;
#line 660 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp19_ = _data_->self->priv->files;
#line 660 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp20_ = _data_->dir_child;
#line 660 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp21_ = directory_monitor_file_info_map_get_info (_data_->_tmp19_, _data_->_tmp20_);
#line 660 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->dir_info = _data_->_tmp21_;
#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp22_ = _data_->dir_info;
#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (_data_->_tmp22_ == NULL) {
#line 662 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp23_ = _data_->dir_child;
#line 662 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp24_ = g_file_get_path (_data_->_tmp23_);
#line 662 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp25_ = _data_->_tmp24_;
#line 662 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					g_warning ("DirectoryMonitor.vala:662: Unable to retrieve directory-moved info for" \
" %s", _data_->_tmp25_);
#line 662 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_free0 (_data_->_tmp25_);
#line 664 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->dir_info);
#line 664 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->dir_child);
#line 664 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					continue;
#line 2262 "DirectoryMonitor.c"
				}
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp26_ = _data_->dir_child;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp27_ = _data_->dir_info;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp28_ = _data_->new_dir;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp29_ = _data_->dir_child;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp30_ = g_file_get_basename (_data_->_tmp29_);
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp31_ = _data_->_tmp30_;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp32_ = g_file_get_child (_data_->_tmp28_, _data_->_tmp31_);
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp33_ = _data_->_tmp32_;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp34_ = _data_->dir_info;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_state_ = 1;
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_async_internal_notify_directory_moved (_data_->self, _data_->_tmp26_, _data_->_tmp27_, _data_->_tmp33_, _data_->_tmp34_, directory_monitor_async_internal_notify_directory_moved_ready, _data_);
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				return FALSE;
#line 2288 "DirectoryMonitor.c"
				_state_1:
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_async_internal_notify_directory_moved_finish (_data_->self, _data_->_res_);
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->_tmp33_);
#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_data_->_tmp31_);
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->dir_info);
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->dir_child);
#line 2300 "DirectoryMonitor.c"
			}
#line 659 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_dir_child_list);
#line 2304 "DirectoryMonitor.c"
		}
		{
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp35_ = _data_->file_children;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp36_ = _g_object_ref0 (_data_->_tmp35_);
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_file_child_list = _data_->_tmp36_;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp37_ = _data_->_file_child_list;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp38_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp37_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp39_ = _data_->_tmp38_;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_file_child_size = _data_->_tmp39_;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_file_child_index = -1;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp40_ = _data_->_file_child_index;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_file_child_index = _data_->_tmp40_ + 1;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp41_ = _data_->_file_child_index;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp42_ = _data_->_file_child_size;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!(_data_->_tmp41_ < _data_->_tmp42_)) {
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 2337 "DirectoryMonitor.c"
				}
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp43_ = _data_->_file_child_list;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp44_ = _data_->_file_child_index;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp45_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp43_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp44_);
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->file_child = (GFile*) _data_->_tmp45_;
#line 673 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp46_ = _data_->self->priv->files;
#line 673 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp47_ = _data_->file_child;
#line 673 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp48_ = directory_monitor_file_info_map_get_info (_data_->_tmp46_, _data_->_tmp47_);
#line 673 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->file_info = _data_->_tmp48_;
#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp49_ = _data_->file_info;
#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (_data_->_tmp49_ == NULL) {
#line 675 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp50_ = _data_->file_child;
#line 675 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp51_ = g_file_get_path (_data_->_tmp50_);
#line 675 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp52_ = _data_->_tmp51_;
#line 675 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					g_warning ("DirectoryMonitor.vala:675: Unable to retrieve directory-moved info for" \
" %s", _data_->_tmp52_);
#line 675 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_free0 (_data_->_tmp52_);
#line 677 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->file_info);
#line 677 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->file_child);
#line 677 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					continue;
#line 2375 "DirectoryMonitor.c"
				}
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp53_ = _data_->file_child;
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp54_ = _data_->new_dir;
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp55_ = _data_->file_child;
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp56_ = g_file_get_basename (_data_->_tmp55_);
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp57_ = _data_->_tmp56_;
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp58_ = g_file_get_child (_data_->_tmp54_, _data_->_tmp57_);
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp59_ = _data_->_tmp58_;
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp60_ = _data_->file_info;
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_internal_notify_file_moved (_data_->self, _data_->_tmp53_, _data_->_tmp59_, _data_->_tmp60_);
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->_tmp59_);
#line 680 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_data_->_tmp57_);
#line 683 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _directory_monitor_async_internal_notify_directory_moved_co_gsource_func, _data_, NULL);
#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_state_ = 2;
#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				return FALSE;
#line 2405 "DirectoryMonitor.c"
				_state_2:
				;
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->file_info);
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->file_child);
#line 2412 "DirectoryMonitor.c"
			}
#line 672 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_file_child_list);
#line 2416 "DirectoryMonitor.c"
		}
	}
#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp61_ = _data_->self->priv->files;
#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp62_ = _data_->old_dir;
#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_file_info_map_remove (_data_->_tmp61_, _data_->_tmp62_, NULL);
#line 692 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp63_ = _data_->self->priv->files;
#line 692 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp64_ = _data_->new_dir;
#line 692 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp65_ = _data_->new_dir_info;
#line 692 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp66_ = directory_monitor_file_info_map_update (_data_->_tmp63_, _data_->_tmp64_, _data_->_tmp65_);
#line 692 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->updated = _data_->_tmp66_;
#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (_data_->updated, "updated");
#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp67_ = _data_->old_dir;
#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp68_ = _data_->old_dir_info;
#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_remove_monitor (_data_->self, _data_->_tmp67_, _data_->_tmp68_);
#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp69_ = _data_->new_dir;
#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp70_ = _data_->new_dir_info;
#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_add_monitor (_data_->self, _data_->_tmp69_, _data_->_tmp70_);
#line 699 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp71_ = _data_->old_dir;
#line 699 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp72_ = _data_->new_dir;
#line 699 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp73_ = _data_->new_dir_info;
#line 699 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_directory_moved (_data_->self, _data_->_tmp71_, _data_->_tmp72_, _data_->_tmp73_);
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir_children);
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->file_children);
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_state_ != 0) {
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 2469 "DirectoryMonitor.c"
		}
	}
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_object_unref (_data_->_async_result);
#line 650 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return FALSE;
#line 2476 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	GFile* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	GFile* _tmp8_;
	GFile* _tmp9_;
	GFileInfo* _tmp10_;
	GFile* _tmp11_;
	GFile* _tmp12_;
	gboolean _tmp13_;
#line 702 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_dir));
#line 702 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_dir));
#line 702 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_dir_info));
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = old_dir;
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = new_dir;
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = g_file_get_path (_tmp3_);
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = _tmp4_;
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = g_strdup_printf ("directory moved: %s -> %s", _tmp2_, _tmp5_);
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = _tmp6_;
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp7_);
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp7_);
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp5_);
#line 703 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = old_dir;
#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = new_dir;
#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = new_dir_info;
#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_MOVED_SIGNAL], 0, _tmp8_, _tmp9_, _tmp10_);
#line 706 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = old_dir;
#line 706 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = self->priv->root;
#line 706 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = g_file_equal (_tmp11_, _tmp12_);
#line 706 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp13_) {
#line 2541 "DirectoryMonitor.c"
		GFile* _tmp14_;
		GFile* _tmp15_;
		GFileInfo* _tmp16_;
#line 707 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp14_ = old_dir;
#line 707 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = new_dir;
#line 707 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp16_ = new_dir_info;
#line 707 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_internal_notify_root_moved (self, _tmp14_, _tmp15_, _tmp16_);
#line 2553 "DirectoryMonitor.c"
	}
}


void directory_monitor_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info) {
#line 702 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 702 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_moved (self, old_dir, new_dir, new_dir_info);
#line 2563 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_altered (DirectoryMonitor* self, GFile* dir) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("directory altered: %s", _tmp2_);
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 712 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = dir;
#line 712 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_ALTERED_SIGNAL], 0, _tmp5_);
#line 2596 "DirectoryMonitor.c"
}


void directory_monitor_notify_directory_altered (DirectoryMonitor* self, GFile* dir) {
#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_altered (self, dir);
#line 2605 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	gboolean updated = FALSE;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
	gboolean _tmp3_;
	GFile* _tmp4_;
	GFileInfo* _tmp5_;
#line 715 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 715 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 715 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = dir;
#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = info;
#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	updated = _tmp3_;
#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (updated, "updated");
#line 719 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = dir;
#line 719 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = info;
#line 719 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_directory_alteration_completed (self, _tmp4_, _tmp5_);
#line 2641 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFileInfo* _tmp6_;
#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("directory alteration completed: %s", _tmp2_);
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 724 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = dir;
#line 724 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = info;
#line 724 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_ALTERATION_COMPLETED_SIGNAL], 0, _tmp5_, _tmp6_);
#line 2679 "DirectoryMonitor.c"
}


void directory_monitor_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_alteration_completed (self, dir, info);
#line 2688 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("directory attributes altered: %s", _tmp2_);
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 729 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = dir;
#line 729 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_ATTRIBUTES_ALTERED_SIGNAL], 0, _tmp5_);
#line 2721 "DirectoryMonitor.c"
}


void directory_monitor_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir) {
#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_attributes_altered (self, dir);
#line 2730 "DirectoryMonitor.c"
}


static void directory_monitor_internal_notify_directory_deleted (DirectoryMonitor* self, GFile* dir) {
	GFileInfo* info = NULL;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
	GFile* _tmp3_;
	GFile* _tmp4_;
#line 732 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 732 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 733 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 733 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = dir;
#line 733 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = directory_monitor_file_info_map_get_info (_tmp0_, _tmp1_);
#line 733 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	info = _tmp2_;
#line 734 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (info != NULL, "info != null");
#line 737 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = dir;
#line 737 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_remove_monitor (self, _tmp3_, info);
#line 739 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = dir;
#line 739 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_async_notify_directory_deleted (self, _tmp4_, FALSE, NULL, NULL);
#line 732 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (info);
#line 2765 "DirectoryMonitor.c"
}


static void directory_monitor_async_notify_directory_deleted_data_free (gpointer _data) {
	DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
	_data_ = _data;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_slice_free (DirectoryMonitorAsyncNotifyDirectoryDeletedData, _data_);
#line 2778 "DirectoryMonitor.c"
}


static void directory_monitor_async_notify_directory_deleted_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	DirectoryMonitorAsyncNotifyDirectoryDeletedData* _task_data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_task_data_->_callback_ != NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 2790 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_->_task_complete_ = TRUE;
#line 2794 "DirectoryMonitor.c"
}


static void directory_monitor_async_notify_directory_deleted (DirectoryMonitor* self, GFile* dir, gboolean already_removed, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
	DirectoryMonitor* _tmp0_;
	GFile* _tmp1_;
	GFile* _tmp2_;
	gboolean _tmp3_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_slice_new0 (DirectoryMonitorAsyncNotifyDirectoryDeletedData);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_callback_ = _callback_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, directory_monitor_async_notify_directory_deleted_async_ready_wrapper, _user_data_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_callback_ == NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_task_complete_ = TRUE;
#line 2814 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_set_task_data (_data_->_async_result, _data_, directory_monitor_async_notify_directory_deleted_data_free);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->self = _tmp0_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = dir;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->dir = _tmp2_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = already_removed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->already_removed = _tmp3_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_async_notify_directory_deleted_co (_data_);
#line 2836 "DirectoryMonitor.c"
}


static void directory_monitor_async_notify_directory_deleted_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
	DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 2844 "DirectoryMonitor.c"
}


static void directory_monitor_async_notify_directory_deleted_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = _user_data_;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_source_object_ = source_object;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_res_ = _res_;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_task_complete_ = TRUE;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_async_notify_directory_deleted_co (_data_);
#line 2860 "DirectoryMonitor.c"
}


static gboolean _directory_monitor_async_notify_directory_deleted_co_gsource_func (gpointer self) {
	gboolean result;
	result = directory_monitor_async_notify_directory_deleted_co (self);
#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 2869 "DirectoryMonitor.c"
}


static gboolean directory_monitor_async_notify_directory_deleted_co (DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_) {
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_data_->_state_) {
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 0:
#line 2878 "DirectoryMonitor.c"
		goto _state_0;
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 1:
#line 2882 "DirectoryMonitor.c"
		goto _state_1;
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 2:
#line 2886 "DirectoryMonitor.c"
		goto _state_2;
		default:
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_assert_not_reached ();
#line 2891 "DirectoryMonitor.c"
	}
	_state_0:
#line 750 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp0_ = gee_array_list_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
#line 750 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->file_children = _data_->_tmp0_;
#line 751 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp1_ = gee_array_list_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
#line 751 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->dir_children = _data_->_tmp1_;
#line 752 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp2_ = _data_->self->priv->files;
#line 752 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp3_ = _data_->dir;
#line 752 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp4_ = _data_->file_children;
#line 752 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp5_ = _data_->dir_children;
#line 752 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp6_ = directory_monitor_file_info_map_get_children (_data_->_tmp2_, _data_->_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
#line 752 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->count = _data_->_tmp6_;
#line 753 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp7_ = _data_->count;
#line 753 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp7_ > 0) {
#line 2918 "DirectoryMonitor.c"
		{
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp8_ = _data_->dir_children;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp9_ = _g_object_ref0 (_data_->_tmp8_);
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_dir_child_list = _data_->_tmp9_;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp10_ = _data_->_dir_child_list;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp11_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp12_ = _data_->_tmp11_;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_dir_child_size = _data_->_tmp12_;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_dir_child_index = -1;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp13_ = _data_->_dir_child_index;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_dir_child_index = _data_->_tmp13_ + 1;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp14_ = _data_->_dir_child_index;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp15_ = _data_->_dir_child_size;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!(_data_->_tmp14_ < _data_->_tmp15_)) {
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 2950 "DirectoryMonitor.c"
				}
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp16_ = _data_->_dir_child_list;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp17_ = _data_->_dir_child_index;
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp18_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp17_);
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->dir_child = (GFile*) _data_->_tmp18_;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp19_ = _data_->dir_child;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_state_ = 1;
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_async_notify_directory_deleted (_data_->self, _data_->_tmp19_, FALSE, directory_monitor_async_notify_directory_deleted_ready, _data_);
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				return FALSE;
#line 2968 "DirectoryMonitor.c"
				_state_1:
#line 762 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_async_notify_directory_deleted_finish (_data_->self, _data_->_res_);
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->dir_child);
#line 2974 "DirectoryMonitor.c"
			}
#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_dir_child_list);
#line 2978 "DirectoryMonitor.c"
		}
		{
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp20_ = _data_->file_children;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp21_ = _g_object_ref0 (_data_->_tmp20_);
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_file_child_list = _data_->_tmp21_;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp22_ = _data_->_file_child_list;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp23_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp22_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp24_ = _data_->_tmp23_;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_file_child_size = _data_->_tmp24_;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_file_child_index = -1;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp25_ = _data_->_file_child_index;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_file_child_index = _data_->_tmp25_ + 1;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp26_ = _data_->_file_child_index;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp27_ = _data_->_file_child_size;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!(_data_->_tmp26_ < _data_->_tmp27_)) {
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 3011 "DirectoryMonitor.c"
				}
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp28_ = _data_->_file_child_list;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp29_ = _data_->_file_child_index;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp30_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp28_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp29_);
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->file_child = (GFile*) _data_->_tmp30_;
#line 767 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp31_ = _data_->self->priv->files;
#line 767 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp32_ = _data_->file_child;
#line 767 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_file_info_map_remove (_data_->_tmp31_, _data_->_tmp32_, NULL);
#line 769 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp33_ = _data_->file_child;
#line 769 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_notify_file_deleted (_data_->self, _data_->_tmp33_);
#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _directory_monitor_async_notify_directory_deleted_co_gsource_func, _data_, NULL);
#line 772 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_state_ = 2;
#line 772 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				return FALSE;
#line 3037 "DirectoryMonitor.c"
				_state_2:
				;
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->file_child);
#line 3042 "DirectoryMonitor.c"
			}
#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_file_child_list);
#line 3046 "DirectoryMonitor.c"
		}
	}
#line 776 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp34_ = _data_->already_removed;
#line 776 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_data_->_tmp34_) {
#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp35_ = _data_->self->priv->files;
#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp36_ = _data_->dir;
#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_remove (_data_->_tmp35_, _data_->_tmp36_, NULL);
#line 3059 "DirectoryMonitor.c"
	}
#line 779 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp37_ = _data_->dir;
#line 779 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_directory_deleted (_data_->self, _data_->_tmp37_);
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir_children);
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->file_children);
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_state_ != 0) {
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3077 "DirectoryMonitor.c"
		}
	}
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_object_unref (_data_->_async_result);
#line 742 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return FALSE;
#line 3084 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_directory_deleted (DirectoryMonitor* self, GFile* dir) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GFile* _tmp5_;
	GFile* _tmp6_;
	GFile* _tmp7_;
	gboolean _tmp8_;
#line 782 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = dir;
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("directory deleted: %s", _tmp2_);
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 783 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 784 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = dir;
#line 784 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_DELETED_SIGNAL], 0, _tmp5_);
#line 786 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = dir;
#line 786 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = self->priv->root;
#line 786 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = g_file_equal (_tmp6_, _tmp7_);
#line 786 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp8_) {
#line 3128 "DirectoryMonitor.c"
		GFile* _tmp9_;
#line 787 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = dir;
#line 787 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_root_deleted (self, _tmp9_);
#line 3134 "DirectoryMonitor.c"
	}
}


void directory_monitor_notify_directory_deleted (DirectoryMonitor* self, GFile* dir) {
#line 782 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 782 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_deleted (self, dir);
#line 3144 "DirectoryMonitor.c"
}


static void directory_monitor_real_notify_closed (DirectoryMonitor* self) {
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->root;
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = g_strdup_printf ("monitoring of %s closed", _tmp2_);
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _tmp3_;
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp4_);
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp4_);
#line 791 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp2_);
#line 792 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_emit (self, directory_monitor_signals[DIRECTORY_MONITOR_CLOSED_SIGNAL], 0);
#line 3172 "DirectoryMonitor.c"
}


void directory_monitor_notify_closed (DirectoryMonitor* self) {
#line 790 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 790 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->notify_closed (self);
#line 3181 "DirectoryMonitor.c"
}


GFile* directory_monitor_get_root (DirectoryMonitor* self) {
	GFile* result = NULL;
	GFile* _tmp0_;
	GFile* _tmp1_;
#line 795 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
#line 796 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->root;
#line 796 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 796 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp1_;
#line 796 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 3199 "DirectoryMonitor.c"
}


gboolean directory_monitor_is_in_root (DirectoryMonitor* self, GFile* file) {
	gboolean result = FALSE;
	GFile* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
#line 799 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 799 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 800 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 800 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = self->priv->root;
#line 800 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = g_file_has_prefix (_tmp0_, _tmp1_);
#line 800 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp2_;
#line 800 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 3222 "DirectoryMonitor.c"
}


gboolean directory_monitor_has_started (DirectoryMonitor* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 803 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 804 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->started;
#line 804 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp0_;
#line 804 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 3237 "DirectoryMonitor.c"
}


void directory_monitor_start_discovery (DirectoryMonitor* self) {
	gboolean _tmp0_;
	GFile* _tmp1_;
#line 807 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 808 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->started;
#line 808 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (!_tmp0_, "!started");
#line 810 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->has_discovery_started = TRUE;
#line 811 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->started = TRUE;
#line 813 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_discovery_started (self);
#line 816 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->outstanding_exploration_dirs = 1;
#line 817 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = self->priv->root;
#line 817 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_explore_async (self, _tmp1_, NULL, TRUE, NULL, NULL);
#line 3262 "DirectoryMonitor.c"
}


static void directory_monitor_real_close (DirectoryMonitor* self) {
	GCancellable* _tmp0_;
	GeeHashMap* _tmp12_;
#line 824 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->cancellable;
#line 824 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_cancellable_cancel (_tmp0_);
#line 3273 "DirectoryMonitor.c"
	{
		GeeIterator* _monitor_it = NULL;
		GeeHashMap* _tmp1_;
		GeeCollection* _tmp2_;
		GeeCollection* _tmp3_;
		GeeCollection* _tmp4_;
		GeeIterator* _tmp5_;
		GeeIterator* _tmp6_;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = self->priv->monitors;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = _tmp2_;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = _tmp3_;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = _tmp5_;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp4_);
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_monitor_it = _tmp6_;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 3300 "DirectoryMonitor.c"
			GeeIterator* _tmp7_;
			gboolean _tmp8_;
			GFileMonitor* monitor = NULL;
			GeeIterator* _tmp9_;
			gpointer _tmp10_;
			GFileMonitor* _tmp11_;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp7_ = _monitor_it;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp8_ = gee_iterator_next (_tmp7_);
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp8_) {
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 3315 "DirectoryMonitor.c"
			}
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp9_ = _monitor_it;
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp10_ = gee_iterator_get (_tmp9_);
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			monitor = (GFileMonitor*) _tmp10_;
#line 828 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp11_ = monitor;
#line 828 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_cancel_monitor (self, _tmp11_);
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (monitor);
#line 3329 "DirectoryMonitor.c"
		}
#line 827 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_monitor_it);
#line 3333 "DirectoryMonitor.c"
	}
#line 830 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = self->priv->monitors;
#line 830 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 832 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_closed (self);
#line 3341 "DirectoryMonitor.c"
}


void directory_monitor_close (DirectoryMonitor* self) {
#line 822 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 822 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	DIRECTORY_MONITOR_GET_CLASS (self)->close (self);
#line 3350 "DirectoryMonitor.c"
}


static DirectoryMonitorFType directory_monitor_get_ftype (GFileInfo* info) {
	DirectoryMonitorFType result = 0;
	GFileType file_type = 0;
	GFileInfo* _tmp0_;
	GFileType _tmp1_;
	GFileType _tmp2_;
#line 835 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (info), 0);
#line 836 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = info;
#line 836 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_info_get_file_type (_tmp0_);
#line 836 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	file_type = _tmp1_;
#line 837 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = file_type;
#line 837 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_tmp2_) {
#line 837 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_TYPE_REGULAR:
#line 3374 "DirectoryMonitor.c"
		{
#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = DIRECTORY_MONITOR_FTYPE_FILE;
#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 3380 "DirectoryMonitor.c"
		}
#line 837 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_TYPE_DIRECTORY:
#line 3384 "DirectoryMonitor.c"
		{
#line 842 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = DIRECTORY_MONITOR_FTYPE_DIRECTORY;
#line 842 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 3390 "DirectoryMonitor.c"
		}
		default:
		{
			GFileType _tmp3_;
			GEnumValue* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp3_ = file_type;
#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp4_ = g_enum_get_value (g_type_class_ref (g_file_type_get_type ()), _tmp3_);
#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp5_ = g_strdup_printf ("query_ftype: Unknown file type %s", (_tmp4_ != NULL) ? _tmp4_->value_name : NULL);
#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp6_ = _tmp5_;
#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_mdbg (_tmp6_);
#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_tmp6_);
#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = DIRECTORY_MONITOR_FTYPE_UNSUPPORTED;
#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 3414 "DirectoryMonitor.c"
		}
	}
}


static void directory_monitor_explore_async_data_free (gpointer _data) {
	DirectoryMonitorExploreAsyncData* _data_;
	_data_ = _data;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir_info);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_slice_free (DirectoryMonitorExploreAsyncData, _data_);
#line 3431 "DirectoryMonitor.c"
}


static void directory_monitor_explore_async_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	DirectoryMonitorExploreAsyncData* _task_data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_task_data_->_callback_ != NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 3443 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_->_task_complete_ = TRUE;
#line 3447 "DirectoryMonitor.c"
}


static void directory_monitor_explore_async (DirectoryMonitor* self, GFile* dir, GFileInfo* dir_info, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DirectoryMonitorExploreAsyncData* _data_;
	DirectoryMonitor* _tmp0_;
	GFile* _tmp1_;
	GFile* _tmp2_;
	GFileInfo* _tmp3_;
	GFileInfo* _tmp4_;
	gboolean _tmp5_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_slice_new0 (DirectoryMonitorExploreAsyncData);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_callback_ = _callback_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, directory_monitor_explore_async_async_ready_wrapper, _user_data_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_callback_ == NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_task_complete_ = TRUE;
#line 3469 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_set_task_data (_data_->_async_result, _data_, directory_monitor_explore_async_data_free);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->self = _tmp0_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = dir;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->dir = _tmp2_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = dir_info;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir_info);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->dir_info = _tmp4_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = in_discovery;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->in_discovery = _tmp5_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_explore_async_co (_data_);
#line 3499 "DirectoryMonitor.c"
}


static void directory_monitor_explore_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
	DirectoryMonitorExploreAsyncData* _data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 3507 "DirectoryMonitor.c"
}


static void directory_monitor_explore_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DirectoryMonitorExploreAsyncData* _data_;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = _user_data_;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_source_object_ = source_object;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_res_ = _res_;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_task_complete_ = TRUE;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_explore_async_co (_data_);
#line 3523 "DirectoryMonitor.c"
}


static void _g_object_unref0_ (gpointer var) {
#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 3530 "DirectoryMonitor.c"
}


static void _g_list_free__g_object_unref0_ (GList* self) {
#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_list_free (self);
#line 3539 "DirectoryMonitor.c"
}


static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
	guint result;
	result = file_hash ((GFile*) v);
#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 3548 "DirectoryMonitor.c"
}


static gboolean directory_monitor_explore_async_co (DirectoryMonitorExploreAsyncData* _data_) {
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_data_->_state_) {
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 0:
#line 3557 "DirectoryMonitor.c"
		goto _state_0;
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 1:
#line 3561 "DirectoryMonitor.c"
		goto _state_1;
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 2:
#line 3565 "DirectoryMonitor.c"
		goto _state_2;
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 3:
#line 3569 "DirectoryMonitor.c"
		goto _state_3;
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 4:
#line 3573 "DirectoryMonitor.c"
		goto _state_4;
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 5:
#line 3577 "DirectoryMonitor.c"
		goto _state_5;
		default:
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_assert_not_reached ();
#line 3582 "DirectoryMonitor.c"
	}
	_state_0:
#line 851 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp0_ = _data_->self->priv->files;
#line 851 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp1_ = _data_->dir;
#line 851 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp2_ = _data_->dir_info;
#line 851 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp3_ = directory_monitor_file_info_map_contains (_data_->_tmp0_, _data_->_tmp1_, _data_->_tmp2_);
#line 851 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp3_) {
#line 852 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp4_ = _data_->dir;
#line 852 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp5_ = g_file_get_path (_data_->_tmp4_);
#line 852 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp6_ = _data_->_tmp5_;
#line 852 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_warning ("DirectoryMonitor.vala:852: Directory loop detected at %s, not explorin" \
"g", _data_->_tmp6_);
#line 852 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_data_->_tmp6_);
#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp7_ = _data_->in_discovery;
#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp7_);
#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_data_->_state_ != 0) {
#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3617 "DirectoryMonitor.c"
			}
		}
#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_object_unref (_data_->_async_result);
#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 3624 "DirectoryMonitor.c"
	}
#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp8_ = _data_->dir_info;
#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp9_ = _g_object_ref0 (_data_->_tmp8_);
#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->local_dir_info = _data_->_tmp9_;
#line 861 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp10_ = _data_->local_dir_info;
#line 861 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp10_ == NULL) {
#line 3636 "DirectoryMonitor.c"
		{
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp12_ = _data_->dir;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp13_ = _data_->self->priv->cancellable;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_state_ = 1;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_file_query_info_async (_data_->_tmp12_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_DIR_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp13_, directory_monitor_explore_async_ready, _data_);
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return FALSE;
#line 3648 "DirectoryMonitor.c"
			_state_1:
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp14_ = g_file_query_info_finish (_data_->_tmp12_, _data_->_res_, &_data_->_inner_error_);
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp11_ = _data_->_tmp14_;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 3656 "DirectoryMonitor.c"
				goto __catch481_g_error;
			}
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp15_ = _data_->_tmp11_;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp11_ = NULL;
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->local_dir_info);
#line 863 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->local_dir_info = _data_->_tmp15_;
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_tmp11_);
#line 3669 "DirectoryMonitor.c"
		}
		goto __finally481;
		__catch481_g_error:
		{
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->err = _data_->_inner_error_;
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_inner_error_ = NULL;
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp16_ = _data_->dir;
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp17_ = g_file_get_path (_data_->_tmp16_);
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp18_ = _data_->_tmp17_;
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp19_ = _data_->err;
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp20_ = _data_->_tmp19_->message;
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_warning ("DirectoryMonitor.vala:866: Unable to retrieve info on %s: %s", _data_->_tmp18_, _data_->_tmp20_);
#line 866 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_data_->_tmp18_);
#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp21_ = _data_->in_discovery;
#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp21_);
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_error_free0 (_data_->err);
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->local_dir_info);
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_data_->_state_ != 0) {
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				while (_data_->_task_complete_ != TRUE) {
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3708 "DirectoryMonitor.c"
				}
			}
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_object_unref (_data_->_async_result);
#line 870 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return FALSE;
#line 3715 "DirectoryMonitor.c"
		}
		__finally481:
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->local_dir_info);
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_clear_error (&_data_->_inner_error_);
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_object_unref (_data_->_async_result);
#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return FALSE;
#line 3730 "DirectoryMonitor.c"
		}
	}
#line 874 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp22_ = _data_->local_dir_info;
#line 874 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp23_ = g_file_info_get_is_hidden (_data_->_tmp22_);
#line 874 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp23_) {
#line 875 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp24_ = _data_->dir;
#line 875 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp25_ = g_file_get_path (_data_->_tmp24_);
#line 875 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp26_ = _data_->_tmp25_;
#line 875 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_warning ("DirectoryMonitor.vala:875: Ignoring hidden directory %s", _data_->_tmp26_);
#line 875 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_data_->_tmp26_);
#line 877 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp27_ = _data_->in_discovery;
#line 877 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp27_);
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->local_dir_info);
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_data_->_state_ != 0) {
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3763 "DirectoryMonitor.c"
			}
		}
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_object_unref (_data_->_async_result);
#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 3770 "DirectoryMonitor.c"
	}
#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp28_ = _data_->local_dir_info;
#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp29_ = get_file_info_id (_data_->_tmp28_);
#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp30_ = _data_->_tmp29_;
#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp31_ = _data_->_tmp30_ == NULL;
#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_data_->_tmp30_);
#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp31_) {
#line 885 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp32_ = _data_->local_dir_info;
#line 885 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp33_ = _data_->dir;
#line 885 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp34_ = g_file_get_uri (_data_->_tmp33_);
#line 885 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp35_ = _data_->_tmp34_;
#line 885 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_file_info_set_attribute_string (_data_->_tmp32_, G_FILE_ATTRIBUTE_ID_FILE, _data_->_tmp35_);
#line 885 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_data_->_tmp35_);
#line 3796 "DirectoryMonitor.c"
	}
#line 890 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp36_ = _data_->local_dir_info;
#line 890 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp37_ = g_file_info_get_file_type (_data_->_tmp36_);
#line 890 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp37_ != G_FILE_TYPE_DIRECTORY) {
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp38_ = _data_->dir;
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp39_ = g_file_get_path (_data_->_tmp38_);
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp40_ = _data_->_tmp39_;
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp41_ = _data_->local_dir_info;
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp42_ = g_file_info_get_file_type (_data_->_tmp41_);
#line 892 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp43_ = g_enum_get_value (g_type_class_ref (g_file_type_get_type ()), _data_->_tmp42_);
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp44_ = g_strdup_printf (_ ("Unable to monitor %s: Not a directory (%s)"), _data_->_tmp40_, (_data_->_tmp43_ != NULL) ? _data_->_tmp43_->value_name : NULL);
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp45_ = _data_->_tmp44_;
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_discovery_failed (_data_->self, _data_->_tmp45_);
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_data_->_tmp45_);
#line 891 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_data_->_tmp40_);
#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp46_ = _data_->in_discovery;
#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp46_);
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->local_dir_info);
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_data_->_state_ != 0) {
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3840 "DirectoryMonitor.c"
			}
		}
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_object_unref (_data_->_async_result);
#line 896 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 3847 "DirectoryMonitor.c"
	}
#line 903 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->dir_map = NULL;
#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->file_map = NULL;
#line 3853 "DirectoryMonitor.c"
	{
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp47_ = _data_->dir;
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp48_ = _data_->self->priv->cancellable;
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_state_ = 2;
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_file_enumerate_children_async (_data_->_tmp47_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp48_, directory_monitor_explore_async_ready, _data_);
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 3865 "DirectoryMonitor.c"
		_state_2:
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp49_ = g_file_enumerate_children_finish (_data_->_tmp47_, _data_->_res_, &_data_->_inner_error_);
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->enumerator = _data_->_tmp49_;
#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 3873 "DirectoryMonitor.c"
			goto __catch482_g_error;
		}
		{
#line 909 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp50_ = TRUE;
#line 909 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 909 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!_data_->_tmp50_) {
#line 3883 "DirectoryMonitor.c"
				}
#line 909 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp50_ = FALSE;
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp51_ = _data_->enumerator;
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp52_ = _data_->self->priv->cancellable;
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_state_ = 3;
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_file_enumerator_next_files_async (_data_->_tmp51_, 10, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp52_, directory_monitor_explore_async_ready, _data_);
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				return FALSE;
#line 3897 "DirectoryMonitor.c"
				_state_3:
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp53_ = g_file_enumerator_next_files_finish (_data_->_tmp51_, _data_->_res_, &_data_->_inner_error_);
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->infos = _data_->_tmp53_;
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->enumerator);
#line 3907 "DirectoryMonitor.c"
					goto __catch482_g_error;
				}
#line 912 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp54_ = _data_->infos;
#line 912 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (_data_->_tmp54_ == NULL) {
#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					__g_list_free__g_object_unref0_0 (_data_->infos);
#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 3918 "DirectoryMonitor.c"
				}
#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp55_ = _data_->infos;
#line 3922 "DirectoryMonitor.c"
				{
#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->info_collection = _data_->_tmp55_;
#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					for (_data_->info_it = _data_->info_collection; _data_->info_it != NULL; _data_->info_it = _data_->info_it->next) {
#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_data_->_tmp56_ = _g_object_ref0 ((GFileInfo*) _data_->info_it->data);
#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_data_->info = _data_->_tmp56_;
#line 3932 "DirectoryMonitor.c"
						{
#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp57_ = _data_->info;
#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp58_ = get_file_info_id (_data_->_tmp57_);
#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp59_ = _data_->_tmp58_;
#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp60_ = _data_->_tmp59_ == NULL;
#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_g_free0 (_data_->_tmp59_);
#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							if (_data_->_tmp60_) {
#line 917 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp61_ = _data_->info;
#line 917 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp62_ = _data_->dir;
#line 917 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp63_ = g_file_get_uri (_data_->_tmp62_);
#line 917 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp64_ = _data_->_tmp63_;
#line 917 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								g_file_info_set_attribute_string (_data_->_tmp61_, G_FILE_ATTRIBUTE_ID_FILE, _data_->_tmp64_);
#line 917 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_g_free0 (_data_->_tmp64_);
#line 3958 "DirectoryMonitor.c"
							}
#line 921 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp65_ = _data_->info;
#line 921 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp66_ = g_file_info_get_is_hidden (_data_->_tmp65_);
#line 921 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							if (_data_->_tmp66_) {
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp67_ = _data_->dir;
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp68_ = _data_->info;
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp69_ = g_file_info_get_name (_data_->_tmp68_);
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp70_ = g_file_get_child (_data_->_tmp67_, _data_->_tmp69_);
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp71_ = _data_->_tmp70_;
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp72_ = g_file_get_path (_data_->_tmp71_);
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_data_->_tmp73_ = _data_->_tmp72_;
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								g_warning ("DirectoryMonitor.vala:922: Skipping hidden file/directory %s", _data_->_tmp73_);
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_g_free0 (_data_->_tmp73_);
#line 922 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_g_object_unref0 (_data_->_tmp71_);
#line 925 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_g_object_unref0 (_data_->info);
#line 925 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								continue;
#line 3990 "DirectoryMonitor.c"
							}
#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp74_ = _data_->info;
#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp75_ = directory_monitor_is_file_symlink_supported (_data_->_tmp74_);
#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							if (!_data_->_tmp75_) {
#line 930 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								_g_object_unref0 (_data_->info);
#line 930 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								continue;
#line 4002 "DirectoryMonitor.c"
							}
#line 932 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp76_ = _data_->info;
#line 932 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_data_->_tmp77_ = g_file_info_get_file_type (_data_->_tmp76_);
#line 932 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							switch (_data_->_tmp77_) {
#line 932 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								case G_FILE_TYPE_REGULAR:
#line 4012 "DirectoryMonitor.c"
								{
#line 934 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp78_ = _data_->file_map;
#line 934 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									if (_data_->_tmp78_ == NULL) {
#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
										_data_->_tmp79_ = gee_hash_map_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
										_g_object_unref0 (_data_->file_map);
#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
										_data_->file_map = _data_->_tmp79_;
#line 4024 "DirectoryMonitor.c"
									}
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp80_ = _data_->file_map;
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp81_ = _data_->dir;
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp82_ = _data_->info;
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp83_ = g_file_info_get_name (_data_->_tmp82_);
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp84_ = g_file_get_child (_data_->_tmp81_, _data_->_tmp83_);
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp85_ = _data_->_tmp84_;
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp86_ = _data_->info;
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp80_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp85_, _data_->_tmp86_);
#line 937 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_g_object_unref0 (_data_->_tmp85_);
#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									break;
#line 4046 "DirectoryMonitor.c"
								}
#line 932 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
								case G_FILE_TYPE_DIRECTORY:
#line 4050 "DirectoryMonitor.c"
								{
#line 941 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp87_ = _data_->dir_map;
#line 941 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									if (_data_->_tmp87_ == NULL) {
#line 942 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
										_data_->_tmp88_ = gee_hash_map_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
#line 942 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
										_g_object_unref0 (_data_->dir_map);
#line 942 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
										_data_->dir_map = _data_->_tmp88_;
#line 4062 "DirectoryMonitor.c"
									}
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp89_ = _data_->dir_map;
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp90_ = _data_->dir;
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp91_ = _data_->info;
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp92_ = g_file_info_get_name (_data_->_tmp91_);
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp93_ = g_file_get_child (_data_->_tmp90_, _data_->_tmp92_);
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp94_ = _data_->_tmp93_;
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_data_->_tmp95_ = _data_->info;
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp89_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp94_, _data_->_tmp95_);
#line 944 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									_g_object_unref0 (_data_->_tmp94_);
#line 945 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									break;
#line 4084 "DirectoryMonitor.c"
								}
								default:
								{
#line 949 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
									break;
#line 4090 "DirectoryMonitor.c"
								}
							}
#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
							_g_object_unref0 (_data_->info);
#line 4095 "DirectoryMonitor.c"
						}
					}
				}
#line 909 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				__g_list_free__g_object_unref0_0 (_data_->infos);
#line 4101 "DirectoryMonitor.c"
			}
		}
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->enumerator);
#line 4106 "DirectoryMonitor.c"
	}
	goto __finally482;
	__catch482_g_error:
	{
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->err2 = _data_->_inner_error_;
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_inner_error_ = NULL;
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp96_ = _data_->dir;
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp97_ = g_file_get_path (_data_->_tmp96_);
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp98_ = _data_->_tmp97_;
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp99_ = _data_->err2;
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp100_ = _data_->_tmp99_->message;
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_warning ("DirectoryMonitor.vala:954: Aborted directory traversal of %s: %s", _data_->_tmp98_, _data_->_tmp100_);
#line 954 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_data_->_tmp98_);
#line 956 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp101_ = _data_->in_discovery;
#line 956 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp101_);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_error_free0 (_data_->err2);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->file_map);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->dir_map);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->local_dir_info);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_data_->_state_ != 0) {
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 4149 "DirectoryMonitor.c"
			}
		}
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_object_unref (_data_->_async_result);
#line 958 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 4156 "DirectoryMonitor.c"
	}
	__finally482:
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->file_map);
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->dir_map);
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_data_->local_dir_info);
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_clear_error (&_data_->_inner_error_);
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_object_unref (_data_->_async_result);
#line 906 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 4175 "DirectoryMonitor.c"
	}
#line 962 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp102_ = _data_->in_discovery;
#line 962 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp102_) {
#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp103_ = _data_->dir;
#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp104_ = _data_->local_dir_info;
#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_internal_notify_directory_discovered (_data_->self, _data_->_tmp103_, _data_->_tmp104_);
#line 4187 "DirectoryMonitor.c"
	} else {
#line 965 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp105_ = _data_->dir;
#line 965 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp106_ = _data_->local_dir_info;
#line 965 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_internal_notify_directory_created (_data_->self, _data_->_tmp105_, _data_->_tmp106_);
#line 4195 "DirectoryMonitor.c"
	}
#line 969 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp107_ = _data_->dir;
#line 969 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp108_ = _data_->local_dir_info;
#line 969 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_add_monitor (_data_->self, _data_->_tmp107_, _data_->_tmp108_);
#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp109_ = _data_->file_map;
#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp109_ != NULL) {
#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp110_ = _data_->file_map;
#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp111_ = _data_->in_discovery;
#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_state_ = 4;
#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_directory_files (_data_->self, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp110_, GEE_TYPE_MAP, GeeMap), _data_->_tmp111_, directory_monitor_explore_async_ready, _data_);
#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 4217 "DirectoryMonitor.c"
		_state_4:
#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_directory_files_finish (_data_->self, _data_->_res_);
#line 4221 "DirectoryMonitor.c"
	}
#line 976 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp113_ = _data_->self->priv->recurse;
#line 976 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp113_) {
#line 976 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp114_ = _data_->dir_map;
#line 976 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp112_ = _data_->_tmp114_ != NULL;
#line 4231 "DirectoryMonitor.c"
	} else {
#line 976 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp112_ = FALSE;
#line 4235 "DirectoryMonitor.c"
	}
#line 976 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_tmp112_) {
#line 4239 "DirectoryMonitor.c"
		{
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp115_ = _data_->dir_map;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp116_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp115_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp117_ = _data_->_tmp116_;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp118_ = _data_->_tmp117_;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp119_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp118_, GEE_TYPE_ITERABLE, GeeIterable));
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp120_ = _data_->_tmp119_;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_tmp118_);
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_subdir_it = _data_->_tmp120_;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp121_ = _data_->_subdir_it;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp122_ = gee_iterator_next (_data_->_tmp121_);
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!_data_->_tmp122_) {
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 4267 "DirectoryMonitor.c"
				}
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp123_ = _data_->_subdir_it;
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp124_ = gee_iterator_get (_data_->_tmp123_);
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->subdir = (GFile*) _data_->_tmp124_;
#line 978 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp125_ = _data_->self->priv->outstanding_exploration_dirs;
#line 978 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->self->priv->outstanding_exploration_dirs = _data_->_tmp125_ + 1;
#line 978 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_data_->_tmp126_ = _data_->self->priv->outstanding_exploration_dirs;
#line 978 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (_data_->_tmp126_ > DIRECTORY_MONITOR_MAX_EXPLORATION_DIRS) {
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp127_ = _data_->subdir;
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp128_ = _data_->dir_map;
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp129_ = _data_->subdir;
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp130_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp128_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp129_);
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp131_ = (GFileInfo*) _data_->_tmp130_;
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp132_ = _data_->in_discovery;
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_state_ = 5;
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_explore_async (_data_->self, _data_->_tmp127_, _data_->_tmp131_, _data_->_tmp132_, directory_monitor_explore_async_ready, _data_);
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					return FALSE;
#line 4301 "DirectoryMonitor.c"
					_state_5:
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_explore_finish (_data_->self, _data_->_res_);
#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->_tmp131_);
#line 4307 "DirectoryMonitor.c"
				} else {
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp133_ = _data_->subdir;
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp134_ = _data_->dir_map;
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp135_ = _data_->subdir;
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp136_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp134_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp135_);
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp137_ = (GFileInfo*) _data_->_tmp136_;
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_data_->_tmp138_ = _data_->in_discovery;
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_explore_async (_data_->self, _data_->_tmp133_, _data_->_tmp137_, _data_->_tmp138_, NULL, NULL);
#line 981 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_data_->_tmp137_);
#line 4325 "DirectoryMonitor.c"
				}
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_data_->subdir);
#line 4329 "DirectoryMonitor.c"
			}
#line 977 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_subdir_it);
#line 4333 "DirectoryMonitor.c"
		}
	}
#line 985 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp139_ = _data_->in_discovery;
#line 985 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp139_);
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->file_map);
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->dir_map);
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->local_dir_info);
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_state_ != 0) {
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 4354 "DirectoryMonitor.c"
		}
	}
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_object_unref (_data_->_async_result);
#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return FALSE;
#line 4361 "DirectoryMonitor.c"
}


static void directory_monitor_notify_directory_files_data_free (gpointer _data) {
	DirectoryMonitorNotifyDirectoryFilesData* _data_;
	_data_ = _data;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->map);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_slice_free (DirectoryMonitorNotifyDirectoryFilesData, _data_);
#line 4374 "DirectoryMonitor.c"
}


static void directory_monitor_notify_directory_files_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	DirectoryMonitorNotifyDirectoryFilesData* _task_data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_task_data_->_callback_ != NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 4386 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_task_data_->_task_complete_ = TRUE;
#line 4390 "DirectoryMonitor.c"
}


static void directory_monitor_notify_directory_files (DirectoryMonitor* self, GeeMap* map, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DirectoryMonitorNotifyDirectoryFilesData* _data_;
	DirectoryMonitor* _tmp0_;
	GeeMap* _tmp1_;
	GeeMap* _tmp2_;
	gboolean _tmp3_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_slice_new0 (DirectoryMonitorNotifyDirectoryFilesData);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_callback_ = _callback_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, directory_monitor_notify_directory_files_async_ready_wrapper, _user_data_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_callback_ == NULL) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_task_complete_ = TRUE;
#line 4410 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_set_task_data (_data_->_async_result, _data_, directory_monitor_notify_directory_files_data_free);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->self = _tmp0_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = map;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->map);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->map = _tmp2_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = in_discovery;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->in_discovery = _tmp3_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_notify_directory_files_co (_data_);
#line 4432 "DirectoryMonitor.c"
}


static void directory_monitor_notify_directory_files_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
	DirectoryMonitorNotifyDirectoryFilesData* _data_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 4440 "DirectoryMonitor.c"
}


static gboolean _directory_monitor_notify_directory_files_co_gsource_func (gpointer self) {
	gboolean result;
	result = directory_monitor_notify_directory_files_co (self);
#line 996 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 4449 "DirectoryMonitor.c"
}


static gboolean directory_monitor_notify_directory_files_co (DirectoryMonitorNotifyDirectoryFilesData* _data_) {
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_data_->_state_) {
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 0:
#line 4458 "DirectoryMonitor.c"
		goto _state_0;
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case 1:
#line 4462 "DirectoryMonitor.c"
		goto _state_1;
		default:
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_assert_not_reached ();
#line 4467 "DirectoryMonitor.c"
	}
	_state_0:
#line 989 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp0_ = _data_->map;
#line 989 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->_tmp1_ = gee_map_map_iterator (_data_->_tmp0_);
#line 989 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_data_->iter = _data_->_tmp1_;
#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	while (TRUE) {
#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp2_ = _data_->iter;
#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp3_ = gee_map_iterator_next (_data_->_tmp2_);
#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (!_data_->_tmp3_) {
#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 4486 "DirectoryMonitor.c"
		}
#line 991 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_tmp4_ = _data_->in_discovery;
#line 991 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_data_->_tmp4_) {
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp5_ = _data_->iter;
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp6_ = gee_map_iterator_get_key (_data_->_tmp5_);
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp7_ = (GFile*) _data_->_tmp6_;
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp8_ = _data_->iter;
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp9_ = gee_map_iterator_get_value (_data_->_tmp8_);
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp10_ = (GFileInfo*) _data_->_tmp9_;
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_internal_notify_file_discovered (_data_->self, _data_->_tmp7_, _data_->_tmp10_);
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_tmp10_);
#line 992 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_tmp7_);
#line 4510 "DirectoryMonitor.c"
		} else {
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp11_ = _data_->iter;
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp12_ = gee_map_iterator_get_key (_data_->_tmp11_);
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp13_ = (GFile*) _data_->_tmp12_;
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp14_ = _data_->iter;
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp15_ = gee_map_iterator_get_value (_data_->_tmp14_);
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_data_->_tmp16_ = (GFileInfo*) _data_->_tmp15_;
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_internal_notify_file_created (_data_->self, _data_->_tmp13_, _data_->_tmp16_);
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_tmp16_);
#line 994 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_data_->_tmp13_);
#line 4530 "DirectoryMonitor.c"
		}
#line 996 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _directory_monitor_notify_directory_files_co_gsource_func, _data_, NULL);
#line 997 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_data_->_state_ = 1;
#line 997 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return FALSE;
#line 4538 "DirectoryMonitor.c"
		_state_1:
		;
	}
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_data_->iter);
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_data_->_state_ != 0) {
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 4552 "DirectoryMonitor.c"
		}
	}
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_object_unref (_data_->_async_result);
#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return FALSE;
#line 4559 "DirectoryMonitor.c"
}


static void directory_monitor_explore_directory_completed (DirectoryMonitor* self, gboolean in_discovery) {
	gint _tmp0_;
	gint _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_;
#line 1003 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 1004 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->outstanding_exploration_dirs;
#line 1004 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (_tmp0_ > 0, "outstanding_exploration_dirs > 0");
#line 1005 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = self->priv->outstanding_exploration_dirs;
#line 1005 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->outstanding_exploration_dirs = _tmp1_ - 1;
#line 1007 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = in_discovery;
#line 1007 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp3_) {
#line 4582 "DirectoryMonitor.c"
		gint _tmp4_;
#line 1007 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = self->priv->outstanding_exploration_dirs;
#line 1007 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = _tmp4_ == 0;
#line 4588 "DirectoryMonitor.c"
	} else {
#line 1007 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = FALSE;
#line 4592 "DirectoryMonitor.c"
	}
#line 1007 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp2_) {
#line 1008 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_notify_discovery_completed (self);
#line 4598 "DirectoryMonitor.c"
	}
}


static void _directory_monitor_on_monitor_notification_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
#line 1036 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_on_monitor_notification ((DirectoryMonitor*) self, file, other_file, event_type);
#line 4606 "DirectoryMonitor.c"
}


static gboolean directory_monitor_add_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	gboolean result = FALSE;
	gboolean _tmp0_;
	gchar* id = NULL;
	DirectoryMonitorFileInfoMap* _tmp1_;
	GFile* _tmp2_;
	GFileInfo* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	GeeHashMap* _tmp6_;
	const gchar* _tmp7_;
	gboolean _tmp8_;
	GFileMonitor* monitor = NULL;
	GeeHashMap* _tmp19_;
	const gchar* _tmp20_;
	GFileMonitor* _tmp21_;
	GFileMonitor* _tmp22_;
	GFile* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	GError * _inner_error_ = NULL;
#line 1014 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 1014 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (dir), FALSE);
#line 1014 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
#line 1015 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->monitoring;
#line 1015 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp0_) {
#line 1016 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1016 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4647 "DirectoryMonitor.c"
	}
#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = self->priv->files;
#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = dir;
#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = info;
#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = directory_monitor_file_info_map_get_id (_tmp1_, _tmp2_, _tmp3_);
#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp4_;
#line 1019 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = id;
#line 1019 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp5_ == NULL) {
#line 1020 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1020 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 1020 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4669 "DirectoryMonitor.c"
	}
#line 1023 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = self->priv->monitors;
#line 1023 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = id;
#line 1023 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
#line 1023 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp8_) {
#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4685 "DirectoryMonitor.c"
	}
#line 1026 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	monitor = NULL;
#line 4689 "DirectoryMonitor.c"
	{
		GFileMonitor* _tmp9_ = NULL;
		GFile* _tmp10_;
		GFileMonitor* _tmp11_;
		GFileMonitor* _tmp12_;
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = dir;
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = g_file_monitor_directory (_tmp10_, DIRECTORY_MONITOR_FILE_MONITOR_FLAGS, NULL, &_inner_error_);
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = _tmp11_;
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 4703 "DirectoryMonitor.c"
			goto __catch483_g_error;
		}
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp12_ = _tmp9_;
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = NULL;
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (monitor);
#line 1028 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		monitor = _tmp12_;
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp9_);
#line 4716 "DirectoryMonitor.c"
	}
	goto __finally483;
	__catch483_g_error:
	{
		GError* err = NULL;
		GFile* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		GError* _tmp16_;
		const gchar* _tmp17_;
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		err = _inner_error_;
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_inner_error_ = NULL;
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp13_ = dir;
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp14_ = g_file_get_path (_tmp13_);
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = _tmp14_;
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp16_ = err;
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp17_ = _tmp16_->message;
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_warning ("DirectoryMonitor.vala:1030: Unable to monitor %s: %s", _tmp15_, _tmp17_);
#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp15_);
#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_error_free0 (err);
#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (monitor);
#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4755 "DirectoryMonitor.c"
	}
	__finally483:
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 4760 "DirectoryMonitor.c"
		gboolean _tmp18_ = FALSE;
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (monitor);
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_clear_error (&_inner_error_);
#line 1027 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return _tmp18_;
#line 4772 "DirectoryMonitor.c"
	}
#line 1035 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp19_ = self->priv->monitors;
#line 1035 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp20_ = id;
#line 1035 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp21_ = monitor;
#line 1035 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp20_, _tmp21_);
#line 1036 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp22_ = monitor;
#line 1036 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_connect_object (_tmp22_, "changed", (GCallback) _directory_monitor_on_monitor_notification_g_file_monitor_changed, self, 0);
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp23_ = dir;
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp24_ = g_file_get_path (_tmp23_);
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp25_ = _tmp24_;
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp26_ = g_strdup_printf ("Added monitor for %s", _tmp25_);
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp27_ = _tmp26_;
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp27_);
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp27_);
#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp25_);
#line 1040 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = TRUE;
#line 1040 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (monitor);
#line 1040 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 1040 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 4810 "DirectoryMonitor.c"
}


static gboolean directory_monitor_remove_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
	gboolean result = FALSE;
	gboolean _tmp0_;
	gchar* id = NULL;
	DirectoryMonitorFileInfoMap* _tmp1_;
	GFile* _tmp2_;
	GFileInfo* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	GFileMonitor* monitor = NULL;
	GeeHashMap* _tmp6_;
	const gchar* _tmp7_;
	gpointer _tmp8_;
	GFileMonitor* _tmp9_;
	gboolean removed = FALSE;
	GeeHashMap* _tmp10_;
	const gchar* _tmp11_;
	gboolean _tmp12_;
	gboolean _tmp13_;
	GFileMonitor* _tmp14_;
	GFile* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
#line 1044 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 1044 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (dir), FALSE);
#line 1044 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
#line 1045 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->monitoring;
#line 1045 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp0_) {
#line 1046 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1046 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4853 "DirectoryMonitor.c"
	}
#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = self->priv->files;
#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = dir;
#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = info;
#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = directory_monitor_file_info_map_get_id (_tmp1_, _tmp2_, _tmp3_);
#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp4_;
#line 1049 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = id;
#line 1049 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp5_ == NULL) {
#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4875 "DirectoryMonitor.c"
	}
#line 1052 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = self->priv->monitors;
#line 1052 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = id;
#line 1052 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
#line 1052 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	monitor = (GFileMonitor*) _tmp8_;
#line 1053 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = monitor;
#line 1053 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp9_ == NULL) {
#line 1054 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 1054 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (monitor);
#line 1054 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 1054 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 4897 "DirectoryMonitor.c"
	}
#line 1056 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = self->priv->monitors;
#line 1056 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = id;
#line 1056 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
#line 1056 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	removed = _tmp12_;
#line 1057 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = removed;
#line 1057 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_assert (_tmp13_, "removed");
#line 1059 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp14_ = monitor;
#line 1059 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_cancel_monitor (self, _tmp14_);
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp15_ = dir;
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp16_ = g_file_get_path (_tmp15_);
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp17_ = _tmp16_;
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp18_ = g_strdup_printf ("Removed monitor for %s", _tmp17_);
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp19_ = _tmp18_;
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp19_);
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp19_);
#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp17_);
#line 1063 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = TRUE;
#line 1063 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (monitor);
#line 1063 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 1063 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 4939 "DirectoryMonitor.c"
}


static void directory_monitor_cancel_monitor (DirectoryMonitor* self, GFileMonitor* monitor) {
	GFileMonitor* _tmp0_;
	guint _tmp1_;
	GFileMonitor* _tmp2_;
#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_MONITOR (monitor));
#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = monitor;
#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_parse_name ("changed", g_file_monitor_get_type (), &_tmp1_, NULL, FALSE);
#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _directory_monitor_on_monitor_notification_g_file_monitor_changed, self);
#line 1068 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = monitor;
#line 1068 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_file_monitor_cancel (_tmp2_);
#line 4961 "DirectoryMonitor.c"
}


static void _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
#line 1088 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_query_info_queue_element_on_completed ((DirectoryMonitorQueryInfoQueueElement*) self, source_object, res);
#line 1088 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_query_info_queue_element_unref (self);
#line 4970 "DirectoryMonitor.c"
}


static gboolean _directory_monitor_check_for_expired_delete_events_gsource_func (gpointer self) {
	gboolean result;
	result = directory_monitor_check_for_expired_delete_events ((DirectoryMonitor*) self);
#line 1097 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 4979 "DirectoryMonitor.c"
}


static void directory_monitor_on_monitor_notification (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileMonitorEvent event) {
	gchar* _tmp0_ = NULL;
	GFile* _tmp1_;
	GFileMonitorEvent _tmp5_;
	GEnumValue* _tmp6_;
	GFile* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	DirectoryMonitorQueryInfoQueueElement* query_info = NULL;
	GFile* _tmp12_;
	GFile* _tmp13_;
	GFileMonitorEvent _tmp14_;
	DirectoryMonitorQueryInfoQueueElement* _tmp15_;
	GeeQueue* _tmp16_;
	DirectoryMonitorQueryInfoQueueElement* _tmp17_;
	GFileMonitorEvent _tmp18_;
#line 1071 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 1071 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 1071 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail ((other_file == NULL) || G_IS_FILE (other_file));
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = other_file;
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp1_ != NULL) {
#line 5011 "DirectoryMonitor.c"
		GFile* _tmp2_;
		gchar* _tmp3_;
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = other_file;
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = g_file_get_path (_tmp2_);
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp0_);
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = _tmp3_;
#line 5022 "DirectoryMonitor.c"
	} else {
		gchar* _tmp4_;
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = g_strdup ("(none)");
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp0_);
#line 1073 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = _tmp4_;
#line 5031 "DirectoryMonitor.c"
	}
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = event;
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp5_);
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = file;
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = g_file_get_path (_tmp7_);
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = _tmp8_;
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = g_strdup_printf ("NOTIFY %s: file=%s other_file=%s", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL, _tmp9_, _tmp0_);
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = _tmp10_;
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp11_);
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp11_);
#line 1072 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp9_);
#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = file;
#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = other_file;
#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp14_ = event;
#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp15_ = directory_monitor_query_info_queue_element_new (self, _tmp12_, _tmp13_, _tmp14_);
#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	query_info = _tmp15_;
#line 1083 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp16_ = self->priv->query_info_queue;
#line 1083 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp17_ = query_info;
#line 1083 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_queue_offer (_tmp16_, _tmp17_);
#line 1085 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp18_ = event;
#line 1085 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_tmp18_) {
#line 1085 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_CREATED:
#line 1085 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
#line 5077 "DirectoryMonitor.c"
		{
			GFile* _tmp19_;
			GCancellable* _tmp20_;
			DirectoryMonitorQueryInfoQueueElement* _tmp21_;
#line 1088 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp19_ = file;
#line 1088 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp20_ = self->priv->cancellable;
#line 1088 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp21_ = query_info;
#line 1088 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_file_query_info_async (_tmp19_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _tmp20_, _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback, directory_monitor_query_info_queue_element_ref (_tmp21_));
#line 1090 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 5092 "DirectoryMonitor.c"
		}
#line 1085 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_DELETED:
#line 5096 "DirectoryMonitor.c"
		{
			guint _tmp22_;
#line 1096 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp22_ = self->priv->delete_timer_id;
#line 1096 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp22_ == ((guint) 0)) {
#line 5103 "DirectoryMonitor.c"
				guint _tmp23_;
#line 1097 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp23_ = g_timeout_add_full (G_PRIORITY_DEFAULT, DIRECTORY_MONITOR_DELETED_EXPIRATION_MSEC / 2, _directory_monitor_check_for_expired_delete_events_gsource_func, g_object_ref (self), g_object_unref);
#line 1097 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				self->priv->delete_timer_id = _tmp23_;
#line 5109 "DirectoryMonitor.c"
			}
#line 1098 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 5113 "DirectoryMonitor.c"
		}
#line 1085 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_MOVED:
#line 5117 "DirectoryMonitor.c"
		{
			GFile* _tmp24_;
#line 1103 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp24_ = other_file;
#line 1103 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp24_ != NULL) {
#line 5124 "DirectoryMonitor.c"
				GFile* _tmp25_;
				GCancellable* _tmp26_;
				DirectoryMonitorQueryInfoQueueElement* _tmp27_;
#line 1104 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp25_ = other_file;
#line 1104 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp26_ = self->priv->cancellable;
#line 1104 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp27_ = query_info;
#line 1104 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_file_query_info_async (_tmp25_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _tmp26_, _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback, directory_monitor_query_info_queue_element_ref (_tmp27_));
#line 5136 "DirectoryMonitor.c"
			} else {
				GeeQueue* _tmp28_;
				DirectoryMonitorQueryInfoQueueElement* _tmp29_;
#line 1107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_warning ("DirectoryMonitor.vala:1107: Unable to process MOVED event: no other_fi" \
"le");
#line 1108 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp28_ = self->priv->query_info_queue;
#line 1108 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp29_ = query_info;
#line 1108 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection), _tmp29_);
#line 5148 "DirectoryMonitor.c"
			}
#line 1110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 5152 "DirectoryMonitor.c"
		}
		default:
		{
			DirectoryMonitorQueryInfoQueueElement* _tmp30_;
			DirectoryMonitorQueryInfoQueueElement* _tmp31_;
#line 1114 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp30_ = query_info;
#line 1114 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp30_->completed = TRUE;
#line 1115 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp31_ = query_info;
#line 1115 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_process_query_queue (self, _tmp31_);
#line 1116 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 5168 "DirectoryMonitor.c"
		}
	}
#line 1071 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_directory_monitor_query_info_queue_element_unref0 (query_info);
#line 1071 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp0_);
#line 5175 "DirectoryMonitor.c"
}


static void directory_monitor_process_query_queue (DirectoryMonitor* self, DirectoryMonitorQueryInfoQueueElement* query_info) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	DirectoryMonitorQueryInfoQueueElement* _tmp2_;
#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail ((query_info == NULL) || DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT (query_info));
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = query_info;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp2_ != NULL) {
#line 5191 "DirectoryMonitor.c"
		DirectoryMonitorQueryInfoQueueElement* _tmp3_;
		GFileInfo* _tmp4_;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = query_info;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = _tmp3_->info;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = _tmp4_ != NULL;
#line 5200 "DirectoryMonitor.c"
	} else {
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = FALSE;
#line 5204 "DirectoryMonitor.c"
	}
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp1_) {
#line 5208 "DirectoryMonitor.c"
		DirectoryMonitorQueryInfoQueueElement* _tmp5_;
		GFileMonitorEvent _tmp6_;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = query_info;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = _tmp5_->event;
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = _tmp6_ == G_FILE_MONITOR_EVENT_CREATED;
#line 5217 "DirectoryMonitor.c"
	} else {
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = FALSE;
#line 5221 "DirectoryMonitor.c"
	}
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp0_) {
#line 5225 "DirectoryMonitor.c"
		GFile* match = NULL;
		DirectoryMonitorFileInfoMap* _tmp7_;
		DirectoryMonitorQueryInfoQueueElement* _tmp8_;
		GFileInfo* _tmp9_;
		GFile* _tmp10_;
		GFile* _tmp11_;
#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = self->priv->files;
#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = query_info;
#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = _tmp8_->info;
#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = directory_monitor_file_info_map_find_match (_tmp7_, _tmp9_);
#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		match = _tmp10_;
#line 1127 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = match;
#line 1127 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_tmp11_ != NULL) {
#line 5246 "DirectoryMonitor.c"
			gboolean matched = FALSE;
			gboolean _tmp48_;
#line 1128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			matched = FALSE;
#line 5251 "DirectoryMonitor.c"
			{
				GeeIterator* _enqueued_it = NULL;
				GeeQueue* _tmp12_;
				GeeIterator* _tmp13_;
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp12_ = self->priv->query_info_queue;
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_enqueued_it = _tmp13_;
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				while (TRUE) {
#line 5264 "DirectoryMonitor.c"
					GeeIterator* _tmp14_;
					gboolean _tmp15_;
					DirectoryMonitorQueryInfoQueueElement* enqueued = NULL;
					GeeIterator* _tmp16_;
					gpointer _tmp17_;
					gboolean _tmp18_ = FALSE;
					gboolean _tmp19_ = FALSE;
					DirectoryMonitorQueryInfoQueueElement* _tmp20_;
					GFileMonitorEvent _tmp21_;
					DirectoryMonitorQueryInfoQueueElement* _tmp28_;
					GFile* _tmp29_;
					gchar* _tmp30_;
					gchar* _tmp31_;
					DirectoryMonitorQueryInfoQueueElement* _tmp32_;
					GFile* _tmp33_;
					gchar* _tmp34_;
					gchar* _tmp35_;
					gchar* _tmp36_;
					gchar* _tmp37_;
					DirectoryMonitorQueryInfoQueueElement* _tmp38_;
					DirectoryMonitorQueryInfoQueueElement* _tmp39_;
					DirectoryMonitorQueryInfoQueueElement* _tmp40_;
					GFile* _tmp41_;
					GFile* _tmp42_;
					DirectoryMonitorQueryInfoQueueElement* _tmp43_;
					DirectoryMonitorQueryInfoQueueElement* _tmp44_;
					GFileInfo* _tmp45_;
					GFileInfo* _tmp46_;
					DirectoryMonitorQueryInfoQueueElement* _tmp47_;
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp14_ = _enqueued_it;
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp15_ = gee_iterator_next (_tmp14_);
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					if (!_tmp15_) {
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						break;
#line 5302 "DirectoryMonitor.c"
					}
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp16_ = _enqueued_it;
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp17_ = gee_iterator_get (_tmp16_);
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					enqueued = (DirectoryMonitorQueryInfoQueueElement*) _tmp17_;
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp20_ = enqueued;
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp21_ = _tmp20_->event;
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					if (_tmp21_ != G_FILE_MONITOR_EVENT_DELETED) {
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp19_ = TRUE;
#line 5318 "DirectoryMonitor.c"
					} else {
						DirectoryMonitorQueryInfoQueueElement* _tmp22_;
						gboolean _tmp23_;
#line 1131 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp22_ = enqueued;
#line 1131 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp23_ = _tmp22_->completed;
#line 1131 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp19_ = _tmp23_;
#line 5328 "DirectoryMonitor.c"
					}
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					if (_tmp19_) {
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp18_ = TRUE;
#line 5334 "DirectoryMonitor.c"
					} else {
						GFile* _tmp24_;
						DirectoryMonitorQueryInfoQueueElement* _tmp25_;
						GFile* _tmp26_;
						gboolean _tmp27_;
#line 1132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp24_ = match;
#line 1132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp25_ = enqueued;
#line 1132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp26_ = _tmp25_->file;
#line 1132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp27_ = g_file_equal (_tmp24_, _tmp26_);
#line 1132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp18_ = !_tmp27_;
#line 5350 "DirectoryMonitor.c"
					}
#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					if (_tmp18_) {
#line 1133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_directory_monitor_query_info_queue_element_unref0 (enqueued);
#line 1133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						continue;
#line 5358 "DirectoryMonitor.c"
					}
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp28_ = query_info;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp29_ = _tmp28_->file;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp30_ = g_file_get_path (_tmp29_);
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp31_ = _tmp30_;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp32_ = enqueued;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp33_ = _tmp32_->file;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp34_ = g_file_get_path (_tmp33_);
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp35_ = _tmp34_;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp36_ = g_strdup_printf ("Matching CREATED %s to DELETED %s for MOVED", _tmp31_, _tmp35_);
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp37_ = _tmp36_;
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_mdbg (_tmp37_);
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_free0 (_tmp37_);
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_free0 (_tmp35_);
#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_free0 (_tmp31_);
#line 1139 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp38_ = enqueued;
#line 1139 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp38_->event = G_FILE_MONITOR_EVENT_MOVED;
#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp39_ = enqueued;
#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp40_ = query_info;
#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp41_ = _tmp40_->file;
#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp42_ = _g_object_ref0 (_tmp41_);
#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_tmp39_->other_file);
#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp39_->other_file = _tmp42_;
#line 1141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp43_ = enqueued;
#line 1141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp44_ = query_info;
#line 1141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp45_ = _tmp44_->info;
#line 1141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp46_ = _g_object_ref0 (_tmp45_);
#line 1141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_tmp43_->info);
#line 1141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp43_->info = _tmp46_;
#line 1142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp47_ = enqueued;
#line 1142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp47_->completed = TRUE;
#line 1144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					matched = TRUE;
#line 1146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_directory_monitor_query_info_queue_element_unref0 (enqueued);
#line 1146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 5426 "DirectoryMonitor.c"
				}
#line 1129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_enqueued_it);
#line 5430 "DirectoryMonitor.c"
			}
#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp48_ = matched;
#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp48_) {
#line 5436 "DirectoryMonitor.c"
				GeeQueue* _tmp49_;
				DirectoryMonitorQueryInfoQueueElement* _tmp50_;
#line 1150 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp49_ = self->priv->query_info_queue;
#line 1150 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp50_ = query_info;
#line 1150 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_COLLECTION, GeeCollection), _tmp50_);
#line 5445 "DirectoryMonitor.c"
			}
		}
#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (match);
#line 5450 "DirectoryMonitor.c"
	}
	{
		gboolean _tmp51_ = FALSE;
#line 1155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp51_ = TRUE;
#line 1155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 5458 "DirectoryMonitor.c"
			DirectoryMonitorQueryInfoQueueElement* next = NULL;
			GeeQueue* _tmp52_;
			gpointer _tmp53_;
			gboolean _tmp54_ = FALSE;
			DirectoryMonitorQueryInfoQueueElement* _tmp55_;
			DirectoryMonitorQueryInfoQueueElement* n = NULL;
			GeeQueue* _tmp58_;
			gpointer _tmp59_;
			DirectoryMonitorQueryInfoQueueElement* _tmp60_;
			DirectoryMonitorQueryInfoQueueElement* _tmp61_;
			DirectoryMonitorQueryInfoQueueElement* _tmp62_;
			guint _tmp63_;
			DirectoryMonitorQueryInfoQueueElement* _tmp64_;
			GFileMonitorEvent _tmp65_;
			GEnumValue* _tmp66_;
			DirectoryMonitorQueryInfoQueueElement* _tmp67_;
			GFile* _tmp68_;
			gchar* _tmp69_;
			gchar* _tmp70_;
			gchar* _tmp71_;
			gchar* _tmp72_;
			DirectoryMonitorQueryInfoQueueElement* _tmp73_;
			GError* _tmp74_;
			gboolean _tmp87_ = FALSE;
			DirectoryMonitorQueryInfoQueueElement* _tmp88_;
			GFileInfo* _tmp89_;
			gboolean _tmp103_ = FALSE;
			DirectoryMonitorQueryInfoQueueElement* _tmp104_;
			GFileInfo* _tmp105_;
			DirectoryMonitorQueryInfoQueueElement* _tmp118_;
			GFile* _tmp119_;
			DirectoryMonitorQueryInfoQueueElement* _tmp120_;
			GFile* _tmp121_;
			DirectoryMonitorQueryInfoQueueElement* _tmp122_;
			GFileInfo* _tmp123_;
			DirectoryMonitorQueryInfoQueueElement* _tmp124_;
			GFileMonitorEvent _tmp125_;
#line 1155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp51_) {
#line 5498 "DirectoryMonitor.c"
			}
#line 1155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp51_ = FALSE;
#line 1157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp52_ = self->priv->query_info_queue;
#line 1157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp53_ = gee_queue_peek (_tmp52_);
#line 1157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			next = (DirectoryMonitorQueryInfoQueueElement*) _tmp53_;
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp55_ = next;
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp55_ == NULL) {
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp54_ = TRUE;
#line 5514 "DirectoryMonitor.c"
			} else {
				DirectoryMonitorQueryInfoQueueElement* _tmp56_;
				gboolean _tmp57_;
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp56_ = next;
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp57_ = _tmp56_->completed;
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp54_ = !_tmp57_;
#line 5524 "DirectoryMonitor.c"
			}
#line 1158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp54_) {
#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (next);
#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 5532 "DirectoryMonitor.c"
			}
#line 1162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp58_ = self->priv->query_info_queue;
#line 1162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp59_ = gee_queue_poll (_tmp58_);
#line 1162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			n = (DirectoryMonitorQueryInfoQueueElement*) _tmp59_;
#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp60_ = next;
#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp61_ = n;
#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp60_ == _tmp61_, "next == n");
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp62_ = next;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp63_ = _tmp62_->position;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp64_ = next;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp65_ = _tmp64_->event;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp66_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp65_);
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp67_ = next;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp68_ = _tmp67_->file;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp69_ = g_file_get_path (_tmp68_);
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp70_ = _tmp69_;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp71_ = g_strdup_printf ("Completed info query %u for %s on %s", _tmp63_, (_tmp66_ != NULL) ? _tmp66_->value_name : NULL, _tmp70_);
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp72_ = _tmp71_;
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_mdbg (_tmp72_);
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_tmp72_);
#line 1165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_tmp70_);
#line 1168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp73_ = next;
#line 1168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp74_ = _tmp73_->err;
#line 1168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp74_ != NULL) {
#line 5580 "DirectoryMonitor.c"
				DirectoryMonitorQueryInfoQueueElement* _tmp75_;
				GFile* _tmp76_;
				gchar* _tmp77_;
				gchar* _tmp78_;
				DirectoryMonitorQueryInfoQueueElement* _tmp79_;
				GFileMonitorEvent _tmp80_;
				GEnumValue* _tmp81_;
				DirectoryMonitorQueryInfoQueueElement* _tmp82_;
				GError* _tmp83_;
				const gchar* _tmp84_;
				gchar* _tmp85_;
				gchar* _tmp86_;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp75_ = next;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp76_ = _tmp75_->file;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp77_ = g_file_get_path (_tmp76_);
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp78_ = _tmp77_;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp79_ = next;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp80_ = _tmp79_->event;
#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp81_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp80_);
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp82_ = next;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp83_ = _tmp82_->err;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp84_ = _tmp83_->message;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp85_ = g_strdup_printf ("Unable to retrieve file information for %s, dropping %s: %s", _tmp78_, (_tmp81_ != NULL) ? _tmp81_->value_name : NULL, _tmp84_);
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp86_ = _tmp85_;
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_mdbg (_tmp86_);
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp86_);
#line 1169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp78_);
#line 1172 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (n);
#line 1172 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (next);
#line 1172 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 5629 "DirectoryMonitor.c"
			}
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp88_ = next;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp89_ = _tmp88_->info;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp89_ != NULL) {
#line 5637 "DirectoryMonitor.c"
				DirectoryMonitorQueryInfoQueueElement* _tmp90_;
				GFileInfo* _tmp91_;
				gchar* _tmp92_;
				gchar* _tmp93_;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp90_ = next;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp91_ = _tmp90_->info;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp92_ = get_file_info_id (_tmp91_);
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp93_ = _tmp92_;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp87_ = _tmp93_ == NULL;
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp93_);
#line 5654 "DirectoryMonitor.c"
			} else {
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp87_ = FALSE;
#line 5658 "DirectoryMonitor.c"
			}
#line 1176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp87_) {
#line 5662 "DirectoryMonitor.c"
				DirectoryMonitorQueryInfoQueueElement* _tmp94_;
				GFile* _tmp95_;
				gchar* _tmp96_;
				gchar* _tmp97_;
				DirectoryMonitorQueryInfoQueueElement* _tmp98_;
				GFileMonitorEvent _tmp99_;
				GEnumValue* _tmp100_;
				gchar* _tmp101_;
				gchar* _tmp102_;
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp94_ = next;
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp95_ = _tmp94_->file;
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp96_ = g_file_get_path (_tmp95_);
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp97_ = _tmp96_;
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp98_ = next;
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp99_ = _tmp98_->event;
#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp100_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp99_);
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp101_ = g_strdup_printf ("Unable to retrieve file ID for %s, dropping %s", _tmp97_, (_tmp100_ != NULL) ? _tmp100_->value_name : NULL);
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp102_ = _tmp101_;
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_mdbg (_tmp102_);
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp102_);
#line 1177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp97_);
#line 1180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (n);
#line 1180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (next);
#line 1180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 5702 "DirectoryMonitor.c"
			}
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp104_ = next;
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp105_ = _tmp104_->info;
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp105_ != NULL) {
#line 5710 "DirectoryMonitor.c"
				DirectoryMonitorQueryInfoQueueElement* _tmp106_;
				GFileInfo* _tmp107_;
				gboolean _tmp108_;
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp106_ = next;
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp107_ = _tmp106_->info;
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp108_ = directory_monitor_is_file_symlink_supported (_tmp107_);
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp103_ = !_tmp108_;
#line 5722 "DirectoryMonitor.c"
			} else {
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp103_ = FALSE;
#line 5726 "DirectoryMonitor.c"
			}
#line 1184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp103_) {
#line 5730 "DirectoryMonitor.c"
				DirectoryMonitorQueryInfoQueueElement* _tmp109_;
				GFile* _tmp110_;
				gchar* _tmp111_;
				gchar* _tmp112_;
				DirectoryMonitorQueryInfoQueueElement* _tmp113_;
				GFileMonitorEvent _tmp114_;
				GEnumValue* _tmp115_;
				gchar* _tmp116_;
				gchar* _tmp117_;
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp109_ = next;
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp110_ = _tmp109_->file;
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp111_ = g_file_get_path (_tmp110_);
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp112_ = _tmp111_;
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp113_ = next;
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp114_ = _tmp113_->event;
#line 1186 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp115_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp114_);
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp116_ = g_strdup_printf ("No symlink support for %s, dropping %s", _tmp112_, (_tmp115_ != NULL) ? _tmp115_->value_name : NULL);
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp117_ = _tmp116_;
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_mdbg (_tmp117_);
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp117_);
#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp112_);
#line 1188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (n);
#line 1188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (next);
#line 1188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 5770 "DirectoryMonitor.c"
			}
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp118_ = next;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp119_ = _tmp118_->file;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp120_ = next;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp121_ = _tmp120_->other_file;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp122_ = next;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp123_ = _tmp122_->info;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp124_ = next;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp125_ = _tmp124_->event;
#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_on_monitor_notification_ready (self, _tmp119_, _tmp121_, _tmp123_, _tmp125_);
#line 1155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_directory_monitor_query_info_queue_element_unref0 (n);
#line 1155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_directory_monitor_query_info_queue_element_unref0 (next);
#line 5794 "DirectoryMonitor.c"
		}
	}
}


static void directory_monitor_on_monitor_notification_ready (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileInfo* info, GFileMonitorEvent event) {
	gchar* _tmp0_ = NULL;
	GFile* _tmp1_;
	GFileMonitorEvent _tmp5_;
	GEnumValue* _tmp6_;
	GFile* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	GFileMonitorEvent _tmp12_;
#line 1195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (IS_DIRECTORY_MONITOR (self));
#line 1195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 1195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail ((other_file == NULL) || G_IS_FILE (other_file));
#line 1195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = other_file;
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp1_ != NULL) {
#line 5823 "DirectoryMonitor.c"
		GFile* _tmp2_;
		gchar* _tmp3_;
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = other_file;
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = g_file_get_path (_tmp2_);
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp0_);
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = _tmp3_;
#line 5834 "DirectoryMonitor.c"
	} else {
		gchar* _tmp4_;
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = g_strdup ("(null)");
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp0_);
#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = _tmp4_;
#line 5843 "DirectoryMonitor.c"
	}
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = event;
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp5_);
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = file;
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = g_file_get_path (_tmp7_);
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = _tmp8_;
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = g_strdup_printf ("READY %s: file=%s other_file=%s", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL, _tmp9_, _tmp0_);
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = _tmp10_;
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg (_tmp11_);
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp11_);
#line 1197 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp9_);
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = event;
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_tmp12_) {
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_CREATED:
#line 5871 "DirectoryMonitor.c"
		{
			GFileInfo* _tmp13_;
			DirectoryMonitorFType ftype = 0;
			GFileInfo* _tmp14_;
			DirectoryMonitorFType _tmp15_;
			DirectoryMonitorFType _tmp16_;
#line 1204 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp13_ = info;
#line 1204 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp13_ != NULL, "info != null");
#line 1206 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp14_ = info;
#line 1206 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp15_ = directory_monitor_get_ftype (_tmp14_);
#line 1206 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp15_;
#line 1207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp16_ = ftype;
#line 1207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp16_) {
#line 1207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 5894 "DirectoryMonitor.c"
				{
					GFile* _tmp17_;
					GFileInfo* _tmp18_;
#line 1209 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp17_ = file;
#line 1209 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp18_ = info;
#line 1209 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_file_created (self, _tmp17_, _tmp18_);
#line 1210 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 5906 "DirectoryMonitor.c"
				}
#line 1207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 5910 "DirectoryMonitor.c"
				{
					gint _tmp19_;
					GFile* _tmp20_;
					GFileInfo* _tmp21_;
#line 1217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp19_ = self->priv->outstanding_exploration_dirs;
#line 1217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					self->priv->outstanding_exploration_dirs = _tmp19_ + 1;
#line 1218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp20_ = file;
#line 1218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp21_ = info;
#line 1218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_explore_async (self, _tmp20_, _tmp21_, FALSE, NULL, NULL);
#line 1219 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 5927 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp22_;
#line 1222 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp22_ = ftype;
#line 1222 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp22_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 5938 "DirectoryMonitor.c"
				}
			}
#line 1225 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 5943 "DirectoryMonitor.c"
		}
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_CHANGED:
#line 5947 "DirectoryMonitor.c"
		{
			GFileInfo* _tmp23_;
			GFileInfo* local_info = NULL;
			GFile* _tmp24_;
			GFileInfo* _tmp25_;
			GFileInfo* _tmp26_;
			DirectoryMonitorFType ftype = 0;
			GFileInfo* _tmp32_;
			DirectoryMonitorFType _tmp33_;
			DirectoryMonitorFType _tmp34_;
#line 1229 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp23_ = info;
#line 1229 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp23_ == NULL, "info == null");
#line 1231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp24_ = file;
#line 1231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp25_ = directory_monitor_get_file_info (self, _tmp24_);
#line 1231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			local_info = _tmp25_;
#line 1232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp26_ = local_info;
#line 1232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp26_ == NULL) {
#line 5972 "DirectoryMonitor.c"
				GFile* _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				gchar* _tmp30_;
				gchar* _tmp31_;
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp27_ = file;
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp28_ = g_file_get_path (_tmp27_);
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp29_ = _tmp28_;
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp30_ = g_strdup_printf ("Changed event for unknown file %s", _tmp29_);
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp31_ = _tmp30_;
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				directory_monitor_mdbg (_tmp31_);
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp31_);
#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp29_);
#line 1235 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (local_info);
#line 1235 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 5998 "DirectoryMonitor.c"
			}
#line 1238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp32_ = local_info;
#line 1238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp33_ = directory_monitor_get_ftype (_tmp32_);
#line 1238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp33_;
#line 1239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp34_ = ftype;
#line 1239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp34_) {
#line 1239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 6012 "DirectoryMonitor.c"
				{
					GFile* _tmp35_;
#line 1241 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp35_ = file;
#line 1241 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_notify_file_altered (self, _tmp35_);
#line 1242 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6021 "DirectoryMonitor.c"
				}
#line 1239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 6025 "DirectoryMonitor.c"
				{
					GFile* _tmp36_;
#line 1245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp36_ = file;
#line 1245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_notify_directory_altered (self, _tmp36_);
#line 1246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6034 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp37_;
#line 1249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp37_ = ftype;
#line 1249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp37_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1250 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6045 "DirectoryMonitor.c"
				}
			}
#line 1252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (local_info);
#line 1252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6052 "DirectoryMonitor.c"
		}
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
#line 6056 "DirectoryMonitor.c"
		{
			GFileInfo* _tmp38_;
			DirectoryMonitorFType ftype = 0;
			GFileInfo* _tmp39_;
			DirectoryMonitorFType _tmp40_;
			DirectoryMonitorFType _tmp41_;
#line 1255 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp38_ = info;
#line 1255 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp38_ != NULL, "info != null");
#line 1257 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp39_ = info;
#line 1257 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp40_ = directory_monitor_get_ftype (_tmp39_);
#line 1257 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp40_;
#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp41_ = ftype;
#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp41_) {
#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 6079 "DirectoryMonitor.c"
				{
					GFile* _tmp42_;
					GFileInfo* _tmp43_;
#line 1260 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp42_ = file;
#line 1260 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp43_ = info;
#line 1260 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_file_alteration_completed (self, _tmp42_, _tmp43_);
#line 1261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6091 "DirectoryMonitor.c"
				}
#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 6095 "DirectoryMonitor.c"
				{
					GFile* _tmp44_;
					GFileInfo* _tmp45_;
#line 1264 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp44_ = file;
#line 1264 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp45_ = info;
#line 1264 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_directory_alteration_completed (self, _tmp44_, _tmp45_);
#line 1265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6107 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp46_;
#line 1268 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp46_ = ftype;
#line 1268 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp46_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6118 "DirectoryMonitor.c"
				}
			}
#line 1271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6123 "DirectoryMonitor.c"
		}
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_MOVED:
#line 6127 "DirectoryMonitor.c"
		{
			GFileInfo* _tmp47_;
			GFile* _tmp48_;
			DirectoryMonitorFType ftype = 0;
			GFileInfo* _tmp49_;
			DirectoryMonitorFType _tmp50_;
			DirectoryMonitorFType _tmp51_;
#line 1274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp47_ = info;
#line 1274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp47_ != NULL, "info != null");
#line 1275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp48_ = other_file;
#line 1275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp48_ != NULL, "other_file != null");
#line 1279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp49_ = info;
#line 1279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp50_ = directory_monitor_get_ftype (_tmp49_);
#line 1279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp50_;
#line 1280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp51_ = ftype;
#line 1280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp51_) {
#line 1280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 6155 "DirectoryMonitor.c"
				{
					GFile* _tmp52_;
					GFile* _tmp53_;
					GFileInfo* _tmp54_;
#line 1282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp52_ = file;
#line 1282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp53_ = other_file;
#line 1282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp54_ = info;
#line 1282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_file_moved (self, _tmp52_, _tmp53_, _tmp54_);
#line 1283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6170 "DirectoryMonitor.c"
				}
#line 1280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 6174 "DirectoryMonitor.c"
				{
					GFileInfo* old_dir_info = NULL;
					DirectoryMonitorFileInfoMap* _tmp55_;
					GFile* _tmp56_;
					GFileInfo* _tmp57_;
					GFileInfo* _tmp58_;
					GFile* _tmp62_;
					GFileInfo* _tmp63_;
					GFile* _tmp64_;
					GFileInfo* _tmp65_;
#line 1287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp55_ = self->priv->files;
#line 1287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp56_ = file;
#line 1287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp57_ = directory_monitor_file_info_map_get_info (_tmp55_, _tmp56_);
#line 1287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					old_dir_info = _tmp57_;
#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp58_ = old_dir_info;
#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					if (_tmp58_ == NULL) {
#line 6197 "DirectoryMonitor.c"
						GFile* _tmp59_;
						gchar* _tmp60_;
						gchar* _tmp61_;
#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp59_ = file;
#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp60_ = g_file_get_path (_tmp59_);
#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp61_ = _tmp60_;
#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						g_warning ("DirectoryMonitor.vala:1289: Directory moved event for unknown file %s", _tmp61_);
#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_g_free0 (_tmp61_);
#line 1291 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_g_object_unref0 (old_dir_info);
#line 1291 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						break;
#line 6215 "DirectoryMonitor.c"
					}
#line 1294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp62_ = file;
#line 1294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp63_ = old_dir_info;
#line 1294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp64_ = other_file;
#line 1294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp65_ = info;
#line 1294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_directory_moved (self, _tmp62_, _tmp63_, _tmp64_, _tmp65_);
#line 1295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (old_dir_info);
#line 1295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6231 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp66_;
#line 1298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp66_ = ftype;
#line 1298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp66_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6242 "DirectoryMonitor.c"
				}
			}
#line 1301 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6247 "DirectoryMonitor.c"
		}
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_DELETED:
#line 6251 "DirectoryMonitor.c"
		{
			GFileInfo* _tmp67_;
			GFileInfo* local_info = NULL;
			GFile* _tmp68_;
			GFileInfo* _tmp69_;
			GFileInfo* _tmp70_;
			DirectoryMonitorFType ftype = 0;
			GFileInfo* _tmp74_;
			DirectoryMonitorFType _tmp75_;
			DirectoryMonitorFType _tmp76_;
#line 1304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp67_ = info;
#line 1304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp67_ == NULL, "info == null");
#line 1306 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp68_ = file;
#line 1306 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp69_ = directory_monitor_get_file_info (self, _tmp68_);
#line 1306 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			local_info = _tmp69_;
#line 1307 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp70_ = local_info;
#line 1307 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp70_ == NULL) {
#line 6276 "DirectoryMonitor.c"
				GFile* _tmp71_;
				gchar* _tmp72_;
				gchar* _tmp73_;
#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp71_ = file;
#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp72_ = g_file_get_path (_tmp71_);
#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp73_ = _tmp72_;
#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_warning ("DirectoryMonitor.vala:1308: Deleted event for unknown file %s", _tmp73_);
#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp73_);
#line 1310 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (local_info);
#line 1310 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 6294 "DirectoryMonitor.c"
			}
#line 1313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp74_ = local_info;
#line 1313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp75_ = directory_monitor_get_ftype (_tmp74_);
#line 1313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp75_;
#line 1314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp76_ = ftype;
#line 1314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp76_) {
#line 1314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 6308 "DirectoryMonitor.c"
				{
					GFile* _tmp77_;
#line 1316 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp77_ = file;
#line 1316 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_file_deleted (self, _tmp77_);
#line 1317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6317 "DirectoryMonitor.c"
				}
#line 1314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 6321 "DirectoryMonitor.c"
				{
					GFile* _tmp78_;
#line 1320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp78_ = file;
#line 1320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_internal_notify_directory_deleted (self, _tmp78_);
#line 1321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6330 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp79_;
#line 1324 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp79_ = ftype;
#line 1324 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp79_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1325 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6341 "DirectoryMonitor.c"
				}
			}
#line 1327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (local_info);
#line 1327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6348 "DirectoryMonitor.c"
		}
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED:
#line 6352 "DirectoryMonitor.c"
		{
			GFileInfo* _tmp80_;
			GFileInfo* local_info = NULL;
			GFile* _tmp81_;
			GFileInfo* _tmp82_;
			GFileInfo* _tmp83_;
			DirectoryMonitorFType ftype = 0;
			GFileInfo* _tmp87_;
			DirectoryMonitorFType _tmp88_;
			DirectoryMonitorFType _tmp89_;
#line 1331 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp80_ = info;
#line 1331 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp80_ == NULL, "info == null");
#line 1333 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp81_ = file;
#line 1333 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp82_ = directory_monitor_get_file_info (self, _tmp81_);
#line 1333 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			local_info = _tmp82_;
#line 1334 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp83_ = local_info;
#line 1334 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp83_ == NULL) {
#line 6377 "DirectoryMonitor.c"
				GFile* _tmp84_;
				gchar* _tmp85_;
				gchar* _tmp86_;
#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp84_ = file;
#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp85_ = g_file_get_path (_tmp84_);
#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp86_ = _tmp85_;
#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				g_warning ("DirectoryMonitor.vala:1335: Attribute changed event for unknown file %" \
"s", _tmp86_);
#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_tmp86_);
#line 1337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (local_info);
#line 1337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 6395 "DirectoryMonitor.c"
			}
#line 1340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp87_ = local_info;
#line 1340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp88_ = directory_monitor_get_ftype (_tmp87_);
#line 1340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp88_;
#line 1341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp89_ = ftype;
#line 1341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp89_) {
#line 1341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 6409 "DirectoryMonitor.c"
				{
					GFile* _tmp90_;
#line 1343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp90_ = file;
#line 1343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_notify_file_attributes_altered (self, _tmp90_);
#line 1344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6418 "DirectoryMonitor.c"
				}
#line 1341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 6422 "DirectoryMonitor.c"
				{
					GFile* _tmp91_;
#line 1347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp91_ = file;
#line 1347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_notify_directory_attributes_altered (self, _tmp91_);
#line 1348 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6431 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp92_;
#line 1351 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp92_ = ftype;
#line 1351 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp92_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1352 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 6442 "DirectoryMonitor.c"
				}
			}
#line 1354 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (local_info);
#line 1354 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6449 "DirectoryMonitor.c"
		}
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_PRE_UNMOUNT:
#line 1202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case G_FILE_MONITOR_EVENT_UNMOUNTED:
#line 6455 "DirectoryMonitor.c"
		{
#line 1359 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6459 "DirectoryMonitor.c"
		}
		default:
		{
			GFileMonitorEvent _tmp93_;
			GEnumValue* _tmp94_;
#line 1362 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp93_ = event;
#line 1362 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp94_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp93_);
#line 1362 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_warning ("DirectoryMonitor.vala:1362: Unknown directory monitor event %s", (_tmp94_ != NULL) ? _tmp94_->value_name : NULL);
#line 1363 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			break;
#line 6473 "DirectoryMonitor.c"
		}
	}
#line 1195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_tmp0_);
#line 6478 "DirectoryMonitor.c"
}


static gboolean directory_monitor_is_file_create_move (DirectoryMonitor* self, GFile* file, GFileInfo* info, GFile* * old_file, GFileInfo* * old_file_info) {
	GFile* _vala_old_file = NULL;
	GFileInfo* _vala_old_file_info = NULL;
	gboolean result = FALSE;
	GFile* match = NULL;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFileInfo* _tmp1_;
	GFile* _tmp2_;
	GFile* _tmp3_;
#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
#line 1372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->parent_moved;
#line 1372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = info;
#line 1372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = directory_monitor_file_info_map_find_match (_tmp0_, _tmp1_);
#line 1372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	match = _tmp2_;
#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = match;
#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp3_ != NULL) {
#line 6509 "DirectoryMonitor.c"
		GFile* _tmp4_;
		GFile* _tmp5_;
		DirectoryMonitorFileInfoMap* _tmp6_;
		GFile* _tmp7_;
		GFileInfo* _tmp8_;
		DirectoryMonitorFileInfoMap* _tmp9_;
		GFile* _tmp10_;
		GFileInfo* _tmp11_;
#line 1374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = match;
#line 1374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = _g_object_ref0 (_tmp4_);
#line 1374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_vala_old_file);
#line 1374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_old_file = _tmp5_;
#line 1375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = self->priv->parent_moved;
#line 1375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = match;
#line 1375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = directory_monitor_file_info_map_get_info (_tmp6_, _tmp7_);
#line 1375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_vala_old_file_info);
#line 1375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_old_file_info = _tmp8_;
#line 1377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = self->priv->parent_moved;
#line 1377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = match;
#line 1377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = info;
#line 1377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_remove (_tmp9_, _tmp10_, _tmp11_);
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = TRUE;
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (match);
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (old_file) {
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			*old_file = _vala_old_file;
#line 6552 "DirectoryMonitor.c"
		} else {
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_vala_old_file);
#line 6556 "DirectoryMonitor.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (old_file_info) {
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			*old_file_info = _vala_old_file_info;
#line 6562 "DirectoryMonitor.c"
		} else {
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_vala_old_file_info);
#line 6566 "DirectoryMonitor.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 6570 "DirectoryMonitor.c"
	}
#line 1382 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_vala_old_file);
#line 1382 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_old_file = NULL;
#line 1383 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_vala_old_file_info);
#line 1383 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_old_file_info = NULL;
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = FALSE;
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (match);
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (old_file) {
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*old_file = _vala_old_file;
#line 6588 "DirectoryMonitor.c"
	} else {
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_vala_old_file);
#line 6592 "DirectoryMonitor.c"
	}
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (old_file_info) {
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*old_file_info = _vala_old_file_info;
#line 6598 "DirectoryMonitor.c"
	} else {
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_vala_old_file_info);
#line 6602 "DirectoryMonitor.c"
	}
#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 6606 "DirectoryMonitor.c"
}


static gboolean directory_monitor_check_for_expired_delete_events (DirectoryMonitor* self) {
	gboolean result = FALSE;
	gulong expiration = 0UL;
	gulong _tmp0_;
	gboolean any_deleted = FALSE;
	gboolean any_expired = FALSE;
	gboolean _tmp13_;
	gboolean _tmp14_;
#line 1388 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
#line 1389 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = now_ms ();
#line 1389 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	expiration = _tmp0_ - DIRECTORY_MONITOR_DELETED_EXPIRATION_MSEC;
#line 1391 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	any_deleted = FALSE;
#line 1392 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	any_expired = FALSE;
#line 6628 "DirectoryMonitor.c"
	{
		GeeIterator* _element_it = NULL;
		GeeQueue* _tmp1_;
		GeeIterator* _tmp2_;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = self->priv->query_info_queue;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_element_it = _tmp2_;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 6641 "DirectoryMonitor.c"
			GeeIterator* _tmp3_;
			gboolean _tmp4_;
			DirectoryMonitorQueryInfoQueueElement* element = NULL;
			GeeIterator* _tmp5_;
			gpointer _tmp6_;
			DirectoryMonitorQueryInfoQueueElement* _tmp7_;
			GFileMonitorEvent _tmp8_;
			DirectoryMonitorQueryInfoQueueElement* _tmp9_;
			gulong _tmp10_;
			gulong _tmp11_;
			DirectoryMonitorQueryInfoQueueElement* _tmp12_;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp3_ = _element_it;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp4_ = gee_iterator_next (_tmp3_);
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp4_) {
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 6661 "DirectoryMonitor.c"
			}
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp5_ = _element_it;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp6_ = gee_iterator_get (_tmp5_);
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			element = (DirectoryMonitorQueryInfoQueueElement*) _tmp6_;
#line 1394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp7_ = element;
#line 1394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp8_ = _tmp7_->event;
#line 1394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp8_ != G_FILE_MONITOR_EVENT_DELETED) {
#line 1395 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (element);
#line 1395 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 6679 "DirectoryMonitor.c"
			}
#line 1397 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			any_deleted = TRUE;
#line 1399 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp9_ = element;
#line 1399 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp10_ = _tmp9_->time_created_msec;
#line 1399 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp11_ = expiration;
#line 1399 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp10_ > _tmp11_) {
#line 1400 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_directory_monitor_query_info_queue_element_unref0 (element);
#line 1400 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 6695 "DirectoryMonitor.c"
			}
#line 1403 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp12_ = element;
#line 1403 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp12_->completed = TRUE;
#line 1404 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			any_expired = TRUE;
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_directory_monitor_query_info_queue_element_unref0 (element);
#line 6705 "DirectoryMonitor.c"
		}
#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_element_it);
#line 6709 "DirectoryMonitor.c"
	}
#line 1407 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = any_expired;
#line 1407 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp13_) {
#line 1408 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_process_query_queue (self, NULL);
#line 6717 "DirectoryMonitor.c"
	}
#line 1410 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp14_ = any_deleted;
#line 1410 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp14_) {
#line 1411 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		self->priv->delete_timer_id = (guint) 0;
#line 6725 "DirectoryMonitor.c"
	}
#line 1413 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = any_deleted;
#line 1413 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 6731 "DirectoryMonitor.c"
}


GFileInfo* directory_monitor_get_file_info (DirectoryMonitor* self, GFile* file) {
	GFileInfo* result = NULL;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GFileInfo* _tmp2_;
#line 1417 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
#line 1417 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = directory_monitor_file_info_map_get_info (_tmp0_, _tmp1_);
#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp2_;
#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 6754 "DirectoryMonitor.c"
}


GeeCollection* directory_monitor_get_files (DirectoryMonitor* self) {
	GeeCollection* result = NULL;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GeeCollection* _tmp1_;
#line 1423 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
#line 1424 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 1424 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = directory_monitor_file_info_map_get_all (_tmp0_);
#line 1424 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp1_;
#line 1424 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 6772 "DirectoryMonitor.c"
}


GFileInfo* directory_monitor_query_file_info (DirectoryMonitor* self, GFile* file) {
	GFileInfo* result = NULL;
	DirectoryMonitorFileInfoMap* _tmp0_;
	GFile* _tmp1_;
	GCancellable* _tmp2_;
	GFileInfo* _tmp3_;
#line 1430 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
#line 1430 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 1431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->files;
#line 1431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 1431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = self->priv->cancellable;
#line 1431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_file_info_map_query_info (_tmp0_, _tmp1_, _tmp2_);
#line 1431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp3_;
#line 1431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 6798 "DirectoryMonitor.c"
}


gboolean directory_monitor_is_file_symlink_supported (GFileInfo* info) {
	gboolean result = FALSE;
	GFileInfo* _tmp0_;
	gboolean _tmp1_;
	DirectoryMonitorFType ftype = 0;
	GFileInfo* _tmp2_;
	DirectoryMonitorFType _tmp3_;
	DirectoryMonitorFType _tmp4_;
#line 1441 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
#line 1442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = info;
#line 1442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = g_file_info_get_is_symlink (_tmp0_);
#line 1442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp1_) {
#line 1443 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = TRUE;
#line 1443 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 6822 "DirectoryMonitor.c"
	}
#line 1445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = info;
#line 1445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_get_ftype (_tmp2_);
#line 1445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	ftype = _tmp3_;
#line 1446 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = ftype;
#line 1446 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	switch (_tmp4_) {
#line 1446 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 6836 "DirectoryMonitor.c"
		{
#line 1448 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = DIRECTORY_MONITOR_SUPPORT_DIR_SYMLINKS;
#line 1448 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 6842 "DirectoryMonitor.c"
		}
#line 1446 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		case DIRECTORY_MONITOR_FTYPE_FILE:
#line 6846 "DirectoryMonitor.c"
		{
#line 1451 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = DIRECTORY_MONITOR_SUPPORT_FILE_SYMLINKS;
#line 1451 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 6852 "DirectoryMonitor.c"
		}
		default:
		{
			DirectoryMonitorFType _tmp5_;
#line 1454 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp5_ = ftype;
#line 1454 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_assert (_tmp5_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 1456 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = FALSE;
#line 1456 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 6865 "DirectoryMonitor.c"
		}
	}
}


static void directory_monitor_real_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
#line 386 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_root));
#line 386 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_root));
#line 386 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_root_info));
#line 6878 "DirectoryMonitor.c"
}


static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
	register GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (n_param_values == 4);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data1 = closure->data;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data2 = param_values->data[0].v_pointer;
#line 6897 "DirectoryMonitor.c"
	} else {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data1 = param_values->data[0].v_pointer;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data2 = closure->data;
#line 6903 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	callback = (GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_object (param_values + 3), data2);
#line 6909 "DirectoryMonitor.c"
}


static void directory_monitor_real_root_deleted (DirectoryMonitor* self, GFile* root) {
#line 394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (root));
#line 6916 "DirectoryMonitor.c"
}


static void directory_monitor_real_discovery_started (DirectoryMonitor* self) {
}


static void directory_monitor_real_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 400 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 400 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 6929 "DirectoryMonitor.c"
}


static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
	register GMarshalFunc_VOID__OBJECT_OBJECT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (n_param_values == 3);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data1 = closure->data;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data2 = param_values->data[0].v_pointer;
#line 6948 "DirectoryMonitor.c"
	} else {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data1 = param_values->data[0].v_pointer;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		data2 = closure->data;
#line 6954 "DirectoryMonitor.c"
	}
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
#line 6960 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 403 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 403 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 6969 "DirectoryMonitor.c"
}


static void directory_monitor_real_discovery_failed (DirectoryMonitor* self, const gchar* reason) {
#line 408 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (reason != NULL);
#line 6976 "DirectoryMonitor.c"
}


static void directory_monitor_real_discovery_completed (DirectoryMonitor* self) {
#line 412 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->has_discovery_started = FALSE;
#line 413 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_mdbg ("discovery completed");
#line 6985 "DirectoryMonitor.c"
}


static void directory_monitor_real_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 416 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 416 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 6994 "DirectoryMonitor.c"
}


static void directory_monitor_real_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
#line 419 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_file));
#line 419 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_file));
#line 419 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_file_info));
#line 7005 "DirectoryMonitor.c"
}


static void directory_monitor_real_file_altered (DirectoryMonitor* self, GFile* file) {
#line 423 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 7012 "DirectoryMonitor.c"
}


static void directory_monitor_real_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
#line 428 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 428 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 7021 "DirectoryMonitor.c"
}


static void directory_monitor_real_file_attributes_altered (DirectoryMonitor* self, GFile* file) {
#line 431 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 7028 "DirectoryMonitor.c"
}


static void directory_monitor_real_file_deleted (DirectoryMonitor* self, GFile* file) {
#line 434 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (file));
#line 7035 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
#line 438 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 438 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 7044 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info) {
#line 442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (old_dir));
#line 442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (new_dir));
#line 442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (new_dir_info));
#line 7055 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_altered (DirectoryMonitor* self, GFile* dir) {
#line 446 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 7062 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
#line 451 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 451 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE_INFO (info));
#line 7071 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_attributes_altered (DirectoryMonitor* self, GFile* dir) {
#line 454 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 7078 "DirectoryMonitor.c"
}


static void directory_monitor_real_directory_deleted (DirectoryMonitor* self, GFile* dir) {
#line 458 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (dir));
#line 7085 "DirectoryMonitor.c"
}


static void directory_monitor_real_closed (DirectoryMonitor* self) {
}


static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_construct (GType object_type, DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event) {
	DirectoryMonitorQueryInfoQueueElement* self = NULL;
	DirectoryMonitor* _tmp0_;
	DirectoryMonitor* _tmp1_;
	GFile* _tmp2_;
	GFile* _tmp3_;
	GFile* _tmp4_;
	GFile* _tmp5_;
	GFileMonitorEvent _tmp6_;
	guint _tmp7_;
	gulong _tmp8_;
#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (IS_DIRECTORY_MONITOR (owner), NULL);
#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail ((other_file == NULL) || G_IS_FILE (other_file), NULL);
#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self = (DirectoryMonitorQueryInfoQueueElement*) g_type_create_instance (object_type);
#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = owner;
#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->owner);
#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->owner = _tmp1_;
#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = file;
#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->file);
#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->file = _tmp3_;
#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = other_file;
#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = _g_object_ref0 (_tmp4_);
#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->other_file);
#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->other_file = _tmp5_;
#line 101 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = event;
#line 101 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->event = _tmp6_;
#line 102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = directory_monitor_query_info_queue_element_current;
#line 102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_query_info_queue_element_current = _tmp7_ + 1;
#line 102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->position = _tmp7_;
#line 103 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = now_ms ();
#line 103 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->time_created_msec = _tmp8_;
#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return self;
#line 7152 "DirectoryMonitor.c"
}


static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_new (DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event) {
#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return directory_monitor_query_info_queue_element_construct (DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, owner, file, other_file, event);
#line 7159 "DirectoryMonitor.c"
}


static gpointer _g_error_copy0 (gpointer self) {
#line 117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return self ? g_error_copy (self) : NULL;
#line 7166 "DirectoryMonitor.c"
}


static void directory_monitor_query_info_queue_element_on_completed (DirectoryMonitorQueryInfoQueueElement* self, GObject* source, GAsyncResult* aresult) {
	GFile* source_file = NULL;
	GObject* _tmp0_;
	GFile* _tmp1_;
	DirectoryMonitor* _tmp16_;
	GError * _inner_error_ = NULL;
#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT (self));
#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail ((source == NULL) || G_IS_OBJECT (source));
#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_ASYNC_RESULT (aresult));
#line 107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = source;
#line 107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_file_get_type (), GFile));
#line 107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	source_file = _tmp1_;
#line 7188 "DirectoryMonitor.c"
	{
		GFileInfo* _tmp2_ = NULL;
		GAsyncResult* _tmp3_;
		GFileInfo* _tmp4_;
		GFileInfo* _tmp5_;
		GFileInfo* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gboolean _tmp9_;
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = aresult;
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = g_file_query_info_finish (source_file, _tmp3_, &_inner_error_);
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = _tmp4_;
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 7206 "DirectoryMonitor.c"
			goto __catch484_g_error;
		}
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = _tmp2_;
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = NULL;
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (self->info);
#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		self->info = _tmp5_;
#line 112 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = self->info;
#line 112 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = get_file_info_id (_tmp6_);
#line 112 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = _tmp7_;
#line 112 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = _tmp8_ == NULL;
#line 112 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp8_);
#line 112 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_tmp9_) {
#line 7229 "DirectoryMonitor.c"
			GFileInfo* _tmp10_;
			GFile* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp10_ = self->info;
#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp11_ = self->file;
#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp12_ = g_file_get_uri (_tmp11_);
#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp13_ = _tmp12_;
#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_file_info_set_attribute_string (_tmp10_, G_FILE_ATTRIBUTE_ID_FILE, _tmp13_);
#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_tmp13_);
#line 7246 "DirectoryMonitor.c"
		}
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp2_);
#line 7250 "DirectoryMonitor.c"
	}
	goto __finally484;
	__catch484_g_error:
	{
		GError* err = NULL;
		GError* _tmp14_;
		GError* _tmp15_;
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		err = _inner_error_;
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_inner_error_ = NULL;
#line 117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp14_ = err;
#line 117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = _g_error_copy0 (_tmp14_);
#line 117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_error_free0 (self->err);
#line 117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		self->err = _tmp15_;
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_error_free0 (err);
#line 7272 "DirectoryMonitor.c"
	}
	__finally484:
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (source_file);
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_clear_error (&_inner_error_);
#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return;
#line 7285 "DirectoryMonitor.c"
	}
#line 121 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->completed = TRUE;
#line 124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp16_ = self->owner;
#line 124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_process_query_queue (_tmp16_, self);
#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (source_file);
#line 7295 "DirectoryMonitor.c"
}


static void directory_monitor_value_query_info_queue_element_init (GValue* value) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	value->data[0].v_pointer = NULL;
#line 7302 "DirectoryMonitor.c"
}


static void directory_monitor_value_query_info_queue_element_free_value (GValue* value) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (value->data[0].v_pointer) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_query_info_queue_element_unref (value->data[0].v_pointer);
#line 7311 "DirectoryMonitor.c"
	}
}


static void directory_monitor_value_query_info_queue_element_copy_value (const GValue* src_value, GValue* dest_value) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (src_value->data[0].v_pointer) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		dest_value->data[0].v_pointer = directory_monitor_query_info_queue_element_ref (src_value->data[0].v_pointer);
#line 7321 "DirectoryMonitor.c"
	} else {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		dest_value->data[0].v_pointer = NULL;
#line 7325 "DirectoryMonitor.c"
	}
}


static gpointer directory_monitor_value_query_info_queue_element_peek_pointer (const GValue* value) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return value->data[0].v_pointer;
#line 7333 "DirectoryMonitor.c"
}


static gchar* directory_monitor_value_query_info_queue_element_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (collect_values[0].v_pointer) {
#line 7340 "DirectoryMonitor.c"
		DirectoryMonitorQueryInfoQueueElement * object;
		object = collect_values[0].v_pointer;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (object->parent_instance.g_class == NULL) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 7347 "DirectoryMonitor.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 7351 "DirectoryMonitor.c"
		}
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = directory_monitor_query_info_queue_element_ref (object);
#line 7355 "DirectoryMonitor.c"
	} else {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = NULL;
#line 7359 "DirectoryMonitor.c"
	}
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return NULL;
#line 7363 "DirectoryMonitor.c"
}


static gchar* directory_monitor_value_query_info_queue_element_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	DirectoryMonitorQueryInfoQueueElement ** object_p;
	object_p = collect_values[0].v_pointer;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!object_p) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 7374 "DirectoryMonitor.c"
	}
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!value->data[0].v_pointer) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*object_p = NULL;
#line 7380 "DirectoryMonitor.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*object_p = value->data[0].v_pointer;
#line 7384 "DirectoryMonitor.c"
	} else {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*object_p = directory_monitor_query_info_queue_element_ref (value->data[0].v_pointer);
#line 7388 "DirectoryMonitor.c"
	}
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return NULL;
#line 7392 "DirectoryMonitor.c"
}


static GParamSpec* directory_monitor_param_spec_query_info_queue_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	DirectoryMonitorParamSpecQueryInfoQueueElement* spec;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (g_type_is_a (object_type, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT), NULL);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return G_PARAM_SPEC (spec);
#line 7406 "DirectoryMonitor.c"
}


static gpointer directory_monitor_value_get_query_info_queue_element (const GValue* value) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT), NULL);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return value->data[0].v_pointer;
#line 7415 "DirectoryMonitor.c"
}


static void directory_monitor_value_set_query_info_queue_element (GValue* value, gpointer v_object) {
	DirectoryMonitorQueryInfoQueueElement * old;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old = value->data[0].v_pointer;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (v_object) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = v_object;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_query_info_queue_element_ref (value->data[0].v_pointer);
#line 7435 "DirectoryMonitor.c"
	} else {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = NULL;
#line 7439 "DirectoryMonitor.c"
	}
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (old) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_query_info_queue_element_unref (old);
#line 7445 "DirectoryMonitor.c"
	}
}


static void directory_monitor_value_take_query_info_queue_element (GValue* value, gpointer v_object) {
	DirectoryMonitorQueryInfoQueueElement * old;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old = value->data[0].v_pointer;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (v_object) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = v_object;
#line 7464 "DirectoryMonitor.c"
	} else {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = NULL;
#line 7468 "DirectoryMonitor.c"
	}
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (old) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_query_info_queue_element_unref (old);
#line 7474 "DirectoryMonitor.c"
	}
}


static void directory_monitor_query_info_queue_element_class_init (DirectoryMonitorQueryInfoQueueElementClass * klass) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_query_info_queue_element_parent_class = g_type_class_peek_parent (klass);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorQueryInfoQueueElementClass *) klass)->finalize = directory_monitor_query_info_queue_element_finalize;
#line 7484 "DirectoryMonitor.c"
}


static void directory_monitor_query_info_queue_element_instance_init (DirectoryMonitorQueryInfoQueueElement * self) {
#line 92 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->info = NULL;
#line 93 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->err = NULL;
#line 94 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->completed = FALSE;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->ref_count = 1;
#line 7497 "DirectoryMonitor.c"
}


static void directory_monitor_query_info_queue_element_finalize (DirectoryMonitorQueryInfoQueueElement * obj) {
	DirectoryMonitorQueryInfoQueueElement * self;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElement);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_handlers_destroy (self);
#line 86 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->owner);
#line 87 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->file);
#line 88 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->other_file);
#line 92 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->info);
#line 93 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_error_free0 (self->err);
#line 7517 "DirectoryMonitor.c"
}


static GType directory_monitor_query_info_queue_element_get_type (void) {
	static volatile gsize directory_monitor_query_info_queue_element_type_id__volatile = 0;
	if (g_once_init_enter (&directory_monitor_query_info_queue_element_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { directory_monitor_value_query_info_queue_element_init, directory_monitor_value_query_info_queue_element_free_value, directory_monitor_value_query_info_queue_element_copy_value, directory_monitor_value_query_info_queue_element_peek_pointer, "p", directory_monitor_value_query_info_queue_element_collect_value, "p", directory_monitor_value_query_info_queue_element_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (DirectoryMonitorQueryInfoQueueElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) directory_monitor_query_info_queue_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectoryMonitorQueryInfoQueueElement), 0, (GInstanceInitFunc) directory_monitor_query_info_queue_element_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType directory_monitor_query_info_queue_element_type_id;
		directory_monitor_query_info_queue_element_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DirectoryMonitorQueryInfoQueueElement", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&directory_monitor_query_info_queue_element_type_id__volatile, directory_monitor_query_info_queue_element_type_id);
	}
	return directory_monitor_query_info_queue_element_type_id__volatile;
}


static gpointer directory_monitor_query_info_queue_element_ref (gpointer instance) {
	DirectoryMonitorQueryInfoQueueElement * self;
	self = instance;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_atomic_int_inc (&self->ref_count);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return instance;
#line 7542 "DirectoryMonitor.c"
}


static void directory_monitor_query_info_queue_element_unref (gpointer instance) {
	DirectoryMonitorQueryInfoQueueElement * self;
	self = instance;
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_GET_CLASS (self)->finalize (self);
#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 7555 "DirectoryMonitor.c"
	}
}


static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_construct (GType object_type) {
	DirectoryMonitorFileInfoMap* self = NULL;
#line 138 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self = (DirectoryMonitorFileInfoMap*) g_type_create_instance (object_type);
#line 138 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return self;
#line 7566 "DirectoryMonitor.c"
}


static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_new (void) {
#line 138 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return directory_monitor_file_info_map_construct (DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP);
#line 7573 "DirectoryMonitor.c"
}


static gboolean directory_monitor_file_info_map_normalize_file (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info, GFile* * normalized, gchar* * id) {
	GFile* _vala_normalized = NULL;
	gchar* _vala_id = NULL;
	gboolean result = FALSE;
	GFileInfo* local_info = NULL;
	GFileInfo* _tmp0_;
	GFileInfo* _tmp1_;
	GFileInfo* _tmp2_;
	gchar* file_id = NULL;
	GFileInfo* _tmp7_;
	gchar* _tmp8_;
	const gchar* _tmp9_;
	GFile* known_file = NULL;
	GeeHashMap* _tmp10_;
	const gchar* _tmp11_;
	gpointer _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	GFile* _tmp15_ = NULL;
	GFile* _tmp16_;
	GFile* _tmp19_;
#line 141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
#line 141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), FALSE);
#line 144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = info;
#line 144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	local_info = _tmp1_;
#line 145 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = local_info;
#line 145 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp2_ == NULL) {
#line 7614 "DirectoryMonitor.c"
		GeeHashMap* _tmp3_;
		GFile* _tmp4_;
		gpointer _tmp5_;
		GFileInfo* _tmp6_;
#line 146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = self->priv->map;
#line 146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = file;
#line 146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
#line 146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (local_info);
#line 146 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		local_info = (GFileInfo*) _tmp5_;
#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = local_info;
#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (_tmp6_ == NULL) {
#line 148 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_vala_normalized);
#line 148 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_normalized = NULL;
#line 149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_vala_id);
#line 149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_vala_id = NULL;
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = FALSE;
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (local_info);
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (normalized) {
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				*normalized = _vala_normalized;
#line 7649 "DirectoryMonitor.c"
			} else {
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_vala_normalized);
#line 7653 "DirectoryMonitor.c"
			}
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (id) {
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				*id = _vala_id;
#line 7659 "DirectoryMonitor.c"
			} else {
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (_vala_id);
#line 7663 "DirectoryMonitor.c"
			}
#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 7667 "DirectoryMonitor.c"
		}
	}
#line 155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = local_info;
#line 155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = get_file_info_id (_tmp7_);
#line 155 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	file_id = _tmp8_;
#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = file_id;
#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp9_ == NULL) {
#line 157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_vala_normalized);
#line 157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_normalized = NULL;
#line 158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_vala_id);
#line 158 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_id = NULL;
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (file_id);
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (local_info);
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (normalized) {
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			*normalized = _vala_normalized;
#line 7698 "DirectoryMonitor.c"
		} else {
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_vala_normalized);
#line 7702 "DirectoryMonitor.c"
		}
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (id) {
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			*id = _vala_id;
#line 7708 "DirectoryMonitor.c"
		} else {
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_vala_id);
#line 7712 "DirectoryMonitor.c"
		}
#line 160 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 7716 "DirectoryMonitor.c"
	}
#line 163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = self->priv->id_map;
#line 163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp11_ = file_id;
#line 163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp12_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
#line 163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	known_file = (GFile*) _tmp12_;
#line 165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = file_id;
#line 165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp14_ = g_strdup ((const gchar*) _tmp13_);
#line 165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (_vala_id);
#line 165 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_id = _tmp14_;
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp16_ = known_file;
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp16_ != NULL) {
#line 7738 "DirectoryMonitor.c"
		GFile* _tmp17_;
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp17_ = known_file;
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = _tmp17_;
#line 7744 "DirectoryMonitor.c"
	} else {
		GFile* _tmp18_;
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp18_ = file;
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = _tmp18_;
#line 7751 "DirectoryMonitor.c"
	}
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp19_ = _g_object_ref0 (_tmp15_);
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (_vala_normalized);
#line 166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_vala_normalized = _tmp19_;
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = TRUE;
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (known_file);
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (file_id);
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (local_info);
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (normalized) {
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*normalized = _vala_normalized;
#line 7771 "DirectoryMonitor.c"
	} else {
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_vala_normalized);
#line 7775 "DirectoryMonitor.c"
	}
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (id) {
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*id = _vala_id;
#line 7781 "DirectoryMonitor.c"
	} else {
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_vala_id);
#line 7785 "DirectoryMonitor.c"
	}
#line 168 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 7789 "DirectoryMonitor.c"
}


static gboolean directory_monitor_file_info_map_update (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
	gboolean result = FALSE;
	GeeHashMap* _tmp0_;
	GFile* _tmp1_;
	gboolean _tmp2_;
	gchar* existing_id = NULL;
	GFileInfo* _tmp7_;
	gchar* _tmp8_;
	gboolean _tmp9_ = FALSE;
	const gchar* _tmp10_;
	gchar* id = NULL;
	GFile* normalized = NULL;
	GFile* _tmp18_;
	GFileInfo* _tmp19_;
	GFile* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	gboolean _tmp22_;
	GeeHashMap* _tmp23_;
	GFile* _tmp24_;
	GFileInfo* _tmp25_;
	GeeHashMap* _tmp26_;
	const gchar* _tmp27_;
	GFile* _tmp28_;
#line 171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
#line 171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
#line 173 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->map;
#line 173 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 173 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
#line 173 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp2_) {
#line 7830 "DirectoryMonitor.c"
		gboolean removed = FALSE;
		GeeHashMap* _tmp3_;
		GFile* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
#line 174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = self->priv->map;
#line 174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = file;
#line 174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
#line 174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		removed = _tmp5_;
#line 175 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = removed;
#line 175 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_assert (_tmp6_, "removed");
#line 7848 "DirectoryMonitor.c"
	}
#line 179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = info;
#line 179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = get_file_info_id (_tmp7_);
#line 179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	existing_id = _tmp8_;
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = existing_id;
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp10_ != NULL) {
#line 7860 "DirectoryMonitor.c"
		GeeHashMap* _tmp11_;
		const gchar* _tmp12_;
		gboolean _tmp13_;
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = self->priv->id_map;
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp12_ = existing_id;
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp13_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_);
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = _tmp13_;
#line 7872 "DirectoryMonitor.c"
	} else {
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = FALSE;
#line 7876 "DirectoryMonitor.c"
	}
#line 180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp9_) {
#line 7880 "DirectoryMonitor.c"
		gboolean removed = FALSE;
		GeeHashMap* _tmp14_;
		const gchar* _tmp15_;
		gboolean _tmp16_;
		gboolean _tmp17_;
#line 181 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp14_ = self->priv->id_map;
#line 181 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp15_ = existing_id;
#line 181 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp16_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp15_, NULL);
#line 181 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		removed = _tmp16_;
#line 182 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp17_ = removed;
#line 182 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_vala_assert (_tmp17_, "removed");
#line 7898 "DirectoryMonitor.c"
	}
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp18_ = file;
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp19_ = info;
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp22_ = directory_monitor_file_info_map_normalize_file (self, _tmp18_, _tmp19_, &_tmp20_, &_tmp21_);
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	normalized = _tmp20_;
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp21_;
#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp22_) {
#line 188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (normalized);
#line 188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (existing_id);
#line 188 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 7926 "DirectoryMonitor.c"
	}
#line 190 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp23_ = self->priv->map;
#line 190 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp24_ = normalized;
#line 190 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp25_ = info;
#line 190 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_, _tmp25_);
#line 191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp26_ = self->priv->id_map;
#line 191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp27_ = id;
#line 191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp28_ = normalized;
#line 191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp27_, _tmp28_);
#line 193 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = TRUE;
#line 193 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 193 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 193 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (existing_id);
#line 193 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 7954 "DirectoryMonitor.c"
}


static gboolean directory_monitor_file_info_map_remove (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
	gboolean result = FALSE;
	gchar* id = NULL;
	GFile* normalized = NULL;
	GFile* _tmp0_;
	GFileInfo* _tmp1_;
	GFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gboolean _tmp4_;
	GeeHashMap* _tmp5_;
	GFile* _tmp6_;
	GeeHashMap* _tmp7_;
	const gchar* _tmp8_;
#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), FALSE);
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = info;
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = directory_monitor_file_info_map_normalize_file (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	normalized = _tmp2_;
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp3_;
#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp4_) {
#line 200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (normalized);
#line 200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8001 "DirectoryMonitor.c"
	}
#line 202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = self->priv->map;
#line 202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = normalized;
#line 202 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_, NULL);
#line 203 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = self->priv->id_map;
#line 203 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = id;
#line 203 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp8_, NULL);
#line 205 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = TRUE;
#line 205 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 205 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 205 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8023 "DirectoryMonitor.c"
}


static void directory_monitor_file_info_map_remove_all (DirectoryMonitorFileInfoMap* self, GeeCollection* files) {
#line 210 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self));
#line 210 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (GEE_IS_COLLECTION (files));
#line 8032 "DirectoryMonitor.c"
	{
		GeeIterator* _file_it = NULL;
		GeeCollection* _tmp0_;
		GeeIterator* _tmp1_;
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = files;
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_file_it = _tmp1_;
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 8045 "DirectoryMonitor.c"
			GeeIterator* _tmp2_;
			gboolean _tmp3_;
			GFile* file = NULL;
			GeeIterator* _tmp4_;
			gpointer _tmp5_;
			GFile* _tmp6_;
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp2_ = _file_it;
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp3_ = gee_iterator_next (_tmp2_);
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp3_) {
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 8060 "DirectoryMonitor.c"
			}
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp4_ = _file_it;
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp5_ = gee_iterator_get (_tmp4_);
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			file = (GFile*) _tmp5_;
#line 212 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp6_ = file;
#line 212 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			directory_monitor_file_info_map_remove (self, _tmp6_, NULL);
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (file);
#line 8074 "DirectoryMonitor.c"
		}
#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_file_it);
#line 8078 "DirectoryMonitor.c"
	}
}


static gboolean directory_monitor_file_info_map_contains (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
	gboolean result = FALSE;
	gchar* id = NULL;
	GFile* normalized = NULL;
	GFile* _tmp0_;
	GFileInfo* _tmp1_;
	GFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gboolean _tmp4_;
	GeeHashMap* _tmp5_;
	const gchar* _tmp6_;
	gboolean _tmp7_;
#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), FALSE);
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = info;
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = directory_monitor_file_info_map_normalize_file (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	normalized = _tmp2_;
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp3_;
#line 218 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp4_) {
#line 219 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = FALSE;
#line 219 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (normalized);
#line 219 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 219 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8125 "DirectoryMonitor.c"
	}
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = self->priv->id_map;
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = id;
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_);
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = _tmp7_;
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 221 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8141 "DirectoryMonitor.c"
}


static gchar* directory_monitor_file_info_map_get_id (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
	gchar* result = NULL;
	GFileInfo* _tmp0_;
	gchar* id = NULL;
	GFile* normalized = NULL;
	GFile* _tmp3_;
	GFile* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gboolean _tmp6_;
#line 224 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
#line 224 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 224 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), NULL);
#line 226 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = info;
#line 226 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp0_ != NULL) {
#line 8164 "DirectoryMonitor.c"
		GFileInfo* _tmp1_;
		gchar* _tmp2_;
#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = info;
#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = get_file_info_id (_tmp1_);
#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = _tmp2_;
#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8175 "DirectoryMonitor.c"
	}
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = file;
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp6_ = directory_monitor_file_info_map_normalize_file (self, _tmp3_, NULL, &_tmp4_, &_tmp5_);
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	normalized = _tmp4_;
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp5_;
#line 231 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp6_) {
#line 232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = NULL;
#line 232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (normalized);
#line 232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8199 "DirectoryMonitor.c"
	}
#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = id;
#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8207 "DirectoryMonitor.c"
}


static GeeCollection* directory_monitor_file_info_map_get_all (DirectoryMonitorFileInfoMap* self) {
	GeeCollection* result = NULL;
	GeeHashMap* _tmp0_;
	GeeSet* _tmp1_;
	GeeSet* _tmp2_;
#line 237 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
#line 238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->map;
#line 238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = _tmp1_;
#line 238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
#line 238 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8228 "DirectoryMonitor.c"
}


static GFileInfo* directory_monitor_file_info_map_get_info (DirectoryMonitorFileInfoMap* self, GFile* file) {
	GFileInfo* result = NULL;
	GFileInfo* info = NULL;
	GeeHashMap* _tmp0_;
	GFile* _tmp1_;
	gpointer _tmp2_;
	GFileInfo* _tmp3_;
	gchar* id = NULL;
	GFile* normalized = NULL;
	GFile* _tmp4_;
	GFile* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gboolean _tmp7_;
	GeeHashMap* _tmp8_;
	GFile* _tmp9_;
	gpointer _tmp10_;
#line 241 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
#line 241 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 243 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = self->priv->map;
#line 243 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = file;
#line 243 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
#line 243 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	info = (GFileInfo*) _tmp2_;
#line 244 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = info;
#line 244 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp3_ != NULL) {
#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = info;
#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8268 "DirectoryMonitor.c"
	}
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = file;
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp7_ = directory_monitor_file_info_map_normalize_file (self, _tmp4_, NULL, &_tmp5_, &_tmp6_);
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	normalized = _tmp5_;
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp6_;
#line 249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp7_) {
#line 250 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = NULL;
#line 250 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (normalized);
#line 250 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 250 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (info);
#line 250 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8294 "DirectoryMonitor.c"
	}
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp8_ = self->priv->map;
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp9_ = normalized;
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp10_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_);
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = (GFileInfo*) _tmp10_;
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (info);
#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8312 "DirectoryMonitor.c"
}


static GFileInfo* directory_monitor_file_info_map_query_info (DirectoryMonitorFileInfoMap* self, GFile* file, GCancellable* cancellable) {
	GFileInfo* result = NULL;
	GFileInfo* info = NULL;
	GFile* _tmp0_;
	GFileInfo* _tmp1_;
	GFileInfo* _tmp2_;
	GFileInfo* _tmp13_;
	gboolean _tmp14_;
	gchar* id = NULL;
	GFileInfo* _tmp15_;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	const gchar* _tmp18_;
	GFile* normalized = NULL;
	GeeHashMap* _tmp23_;
	const gchar* _tmp24_;
	gpointer _tmp25_;
	GFile* _tmp26_;
	GeeHashMap* _tmp27_;
	GFile* _tmp28_;
	gpointer _tmp29_;
	GError * _inner_error_ = NULL;
#line 255 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
#line 255 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 255 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), NULL);
#line 256 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = file;
#line 256 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = directory_monitor_file_info_map_get_info (self, _tmp0_);
#line 256 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	info = _tmp1_;
#line 257 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = info;
#line 257 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp2_ != NULL) {
#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = info;
#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8358 "DirectoryMonitor.c"
	}
	{
		GFileInfo* _tmp3_ = NULL;
		GFile* _tmp4_;
		GCancellable* _tmp5_;
		GFileInfo* _tmp6_;
		GFileInfo* _tmp7_;
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = file;
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = cancellable;
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp6_ = g_file_query_info (_tmp4_, G_FILE_ATTRIBUTE_ID_FILE, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, _tmp5_, &_inner_error_);
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = _tmp6_;
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 8376 "DirectoryMonitor.c"
			goto __catch485_g_error;
		}
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = _tmp3_;
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = NULL;
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (info);
#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		info = _tmp7_;
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp3_);
#line 8389 "DirectoryMonitor.c"
	}
	goto __finally485;
	__catch485_g_error:
	{
		GError* err = NULL;
		GFile* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		GError* _tmp11_;
		const gchar* _tmp12_;
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		err = _inner_error_;
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_inner_error_ = NULL;
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = file;
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = g_file_get_path (_tmp8_);
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = _tmp9_;
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = err;
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp12_ = _tmp11_->message;
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_warning ("DirectoryMonitor.vala:265: Unable to query file ID of %s: %s", _tmp10_, _tmp12_);
#line 265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp10_);
#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = NULL;
#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_error_free0 (err);
#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (info);
#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8426 "DirectoryMonitor.c"
	}
	__finally485:
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (info);
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_clear_error (&_inner_error_);
#line 262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return NULL;
#line 8439 "DirectoryMonitor.c"
	}
#line 270 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp13_ = info;
#line 270 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp14_ = directory_monitor_is_file_symlink_supported (_tmp13_);
#line 270 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!_tmp14_) {
#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = NULL;
#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (info);
#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8453 "DirectoryMonitor.c"
	}
#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp15_ = info;
#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp16_ = g_file_info_get_attribute_string (_tmp15_, G_FILE_ATTRIBUTE_ID_FILE);
#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp17_ = g_strdup (_tmp16_);
#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	id = _tmp17_;
#line 274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp18_ = id;
#line 274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp18_ == NULL) {
#line 8467 "DirectoryMonitor.c"
		GFileInfo* _tmp19_;
		GFile* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp19_ = info;
#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp20_ = file;
#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp21_ = g_file_get_uri (_tmp20_);
#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp22_ = _tmp21_;
#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_file_info_set_attribute_string (_tmp19_, G_FILE_ATTRIBUTE_ID_FILE, _tmp22_);
#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (_tmp22_);
#line 8484 "DirectoryMonitor.c"
	}
#line 279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp23_ = self->priv->id_map;
#line 279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp24_ = id;
#line 279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp25_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_);
#line 279 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	normalized = (GFile*) _tmp25_;
#line 280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp26_ = normalized;
#line 280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp26_ == NULL) {
#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = NULL;
#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (normalized);
#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (id);
#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (info);
#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8508 "DirectoryMonitor.c"
	}
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp27_ = self->priv->map;
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp28_ = file;
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp29_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp28_);
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = (GFileInfo*) _tmp29_;
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (normalized);
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (id);
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (info);
#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8526 "DirectoryMonitor.c"
}


static GFile* directory_monitor_file_info_map_find_match (DirectoryMonitorFileInfoMap* self, GFileInfo* match) {
	GFile* result = NULL;
	gchar* match_id = NULL;
	GFileInfo* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gint64 match_size = 0LL;
	GFileInfo* _tmp3_;
	gint64 _tmp4_;
	GTimeVal match_time = {0};
	GFileInfo* _tmp5_;
	GTimeVal _tmp6_ = {0};
#line 286 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
#line 286 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE_INFO (match), NULL);
#line 287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = match;
#line 287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = get_file_info_id (_tmp0_);
#line 287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	match_id = _tmp1_;
#line 288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = match_id;
#line 288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp2_ == NULL) {
#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		result = NULL;
#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_free0 (match_id);
#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return result;
#line 8562 "DirectoryMonitor.c"
	}
#line 292 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = match;
#line 292 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = g_file_info_get_size (_tmp3_);
#line 292 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	match_size = _tmp4_;
#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp5_ = match;
#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_file_info_get_modification_time (_tmp5_, &_tmp6_);
#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	match_time = _tmp6_;
#line 8576 "DirectoryMonitor.c"
	{
		GeeIterator* _file_it = NULL;
		GeeHashMap* _tmp7_;
		GeeSet* _tmp8_;
		GeeSet* _tmp9_;
		GeeSet* _tmp10_;
		GeeIterator* _tmp11_;
		GeeIterator* _tmp12_;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp7_ = self->priv->map;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp8_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp9_ = _tmp8_;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp10_ = _tmp9_;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp12_ = _tmp11_;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp10_);
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_file_it = _tmp12_;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 8603 "DirectoryMonitor.c"
			GeeIterator* _tmp13_;
			gboolean _tmp14_;
			GFile* file = NULL;
			GeeIterator* _tmp15_;
			gpointer _tmp16_;
			GFileInfo* info = NULL;
			GeeHashMap* _tmp17_;
			GFile* _tmp18_;
			gpointer _tmp19_;
			GFileInfo* _tmp20_;
			gchar* _tmp21_;
			gchar* _tmp22_;
			const gchar* _tmp23_;
			gboolean _tmp24_;
			gint64 _tmp25_;
			GFileInfo* _tmp26_;
			gint64 _tmp27_;
			GTimeVal time = {0};
			GFileInfo* _tmp28_;
			GTimeVal _tmp29_ = {0};
			GTimeVal _tmp30_;
			glong _tmp31_;
			GTimeVal _tmp32_;
			glong _tmp33_;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp13_ = _file_it;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp14_ = gee_iterator_next (_tmp13_);
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp14_) {
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 8636 "DirectoryMonitor.c"
			}
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp15_ = _file_it;
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp16_ = gee_iterator_get (_tmp15_);
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			file = (GFile*) _tmp16_;
#line 296 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp17_ = self->priv->map;
#line 296 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp18_ = file;
#line 296 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp19_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp18_);
#line 296 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			info = (GFileInfo*) _tmp19_;
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp20_ = info;
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp21_ = get_file_info_id (_tmp20_);
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp22_ = _tmp21_;
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp23_ = match_id;
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp24_ = g_strcmp0 (_tmp22_, _tmp23_) == 0;
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (_tmp22_);
#line 299 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp24_) {
#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				result = file;
#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (info);
#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (_file_it);
#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_free0 (match_id);
#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				return result;
#line 8676 "DirectoryMonitor.c"
			}
#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp25_ = match_size;
#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp26_ = info;
#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp27_ = g_file_info_get_size (_tmp26_);
#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp25_ != _tmp27_) {
#line 304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (info);
#line 304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (file);
#line 304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 8692 "DirectoryMonitor.c"
			}
#line 306 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp28_ = info;
#line 306 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			g_file_info_get_modification_time (_tmp28_, &_tmp29_);
#line 306 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			time = _tmp29_;
#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp30_ = time;
#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp31_ = _tmp30_.tv_sec;
#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp32_ = match_time;
#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp33_ = _tmp32_.tv_sec;
#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp31_ != _tmp33_) {
#line 309 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (info);
#line 309 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (file);
#line 309 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 8716 "DirectoryMonitor.c"
			}
#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			result = file;
#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (info);
#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_file_it);
#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_free0 (match_id);
#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return result;
#line 8728 "DirectoryMonitor.c"
		}
#line 295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_file_it);
#line 8732 "DirectoryMonitor.c"
	}
#line 314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = NULL;
#line 314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_free0 (match_id);
#line 314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 8740 "DirectoryMonitor.c"
}


static void directory_monitor_file_info_map_remove_descendents (DirectoryMonitorFileInfoMap* self, GFile* root, DirectoryMonitorFileInfoMap* descendents) {
	GeeArrayList* pruned = NULL;
	GeeArrayList* _tmp28_;
#line 317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self));
#line 317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_IS_FILE (root));
#line 317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (descendents));
#line 318 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	pruned = NULL;
#line 8755 "DirectoryMonitor.c"
	{
		GeeIterator* _file_it = NULL;
		GeeHashMap* _tmp0_;
		GeeSet* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeIterator* _tmp4_;
		GeeIterator* _tmp5_;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = self->priv->map;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = _tmp1_;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = _tmp2_;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = _tmp4_;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp3_);
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_file_it = _tmp5_;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 8782 "DirectoryMonitor.c"
			GeeIterator* _tmp6_;
			gboolean _tmp7_;
			GFile* file = NULL;
			GeeIterator* _tmp8_;
			gpointer _tmp9_;
			GFile* parent = NULL;
			GFile* _tmp10_;
			GFile* _tmp11_;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp6_ = _file_it;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp7_ = gee_iterator_next (_tmp6_);
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp7_) {
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 8799 "DirectoryMonitor.c"
			}
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp8_ = _file_it;
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp9_ = gee_iterator_get (_tmp8_);
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			file = (GFile*) _tmp9_;
#line 320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp10_ = file;
#line 320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp11_ = g_file_get_parent (_tmp10_);
#line 320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			parent = _tmp11_;
#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			while (TRUE) {
#line 8815 "DirectoryMonitor.c"
				GFile* _tmp12_;
				GFile* _tmp13_;
				GFile* _tmp14_;
				gboolean _tmp15_;
				GFile* _tmp26_;
				GFile* _tmp27_;
#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp12_ = parent;
#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (!(_tmp12_ != NULL)) {
#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 8828 "DirectoryMonitor.c"
				}
#line 322 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp13_ = parent;
#line 322 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp14_ = root;
#line 322 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp15_ = g_file_equal (_tmp13_, _tmp14_);
#line 322 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				if (_tmp15_) {
#line 8838 "DirectoryMonitor.c"
					GeeArrayList* _tmp16_;
					GeeArrayList* _tmp18_;
					GFile* _tmp19_;
					DirectoryMonitorFileInfoMap* _tmp20_;
					GFile* _tmp21_;
					GeeHashMap* _tmp22_;
					GFile* _tmp23_;
					gpointer _tmp24_;
					GFileInfo* _tmp25_;
#line 323 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp16_ = pruned;
#line 323 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					if (_tmp16_ == NULL) {
#line 8852 "DirectoryMonitor.c"
						GeeArrayList* _tmp17_;
#line 324 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_tmp17_ = gee_array_list_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 324 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						_g_object_unref0 (pruned);
#line 324 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
						pruned = _tmp17_;
#line 8860 "DirectoryMonitor.c"
					}
#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp18_ = pruned;
#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp19_ = file;
#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp19_);
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp20_ = descendents;
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp21_ = file;
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp22_ = self->priv->map;
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp23_ = file;
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp24_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp23_);
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp25_ = (GFileInfo*) _tmp24_;
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					directory_monitor_file_info_map_update (_tmp20_, _tmp21_, _tmp25_);
#line 327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_g_object_unref0 (_tmp25_);
#line 329 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 8886 "DirectoryMonitor.c"
				}
#line 332 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp26_ = parent;
#line 332 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp27_ = g_file_get_parent (_tmp26_);
#line 332 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (parent);
#line 332 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				parent = _tmp27_;
#line 8896 "DirectoryMonitor.c"
			}
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (parent);
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (file);
#line 8902 "DirectoryMonitor.c"
		}
#line 319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_file_it);
#line 8906 "DirectoryMonitor.c"
	}
#line 336 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp28_ = pruned;
#line 336 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (_tmp28_ != NULL) {
#line 8912 "DirectoryMonitor.c"
		GeeArrayList* _tmp29_;
#line 337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp29_ = pruned;
#line 337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_remove_all (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
#line 8918 "DirectoryMonitor.c"
	}
#line 317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (pruned);
#line 8922 "DirectoryMonitor.c"
}


static gint directory_monitor_file_info_map_get_children (DirectoryMonitorFileInfoMap* self, GFile* root, GeeCollection* files, GeeCollection* dirs) {
	gint result = 0;
	gint count = 0;
#line 342 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), 0);
#line 342 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_IS_FILE (root), 0);
#line 342 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (GEE_IS_COLLECTION (files), 0);
#line 342 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (GEE_IS_COLLECTION (dirs), 0);
#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	count = 0;
#line 8939 "DirectoryMonitor.c"
	{
		GeeIterator* _file_it = NULL;
		GeeHashMap* _tmp0_;
		GeeSet* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeIterator* _tmp4_;
		GeeIterator* _tmp5_;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp0_ = self->priv->map;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp2_ = _tmp1_;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp3_ = _tmp2_;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_tmp5_ = _tmp4_;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_tmp3_);
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_file_it = _tmp5_;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		while (TRUE) {
#line 8966 "DirectoryMonitor.c"
			GeeIterator* _tmp6_;
			gboolean _tmp7_;
			GFile* file = NULL;
			GeeIterator* _tmp8_;
			gpointer _tmp9_;
			GFile* parent = NULL;
			GFile* _tmp10_;
			GFile* _tmp11_;
			gboolean _tmp12_ = FALSE;
			GFile* _tmp13_;
			DirectoryMonitorFType ftype = 0;
			GeeHashMap* _tmp17_;
			GFile* _tmp18_;
			gpointer _tmp19_;
			GFileInfo* _tmp20_;
			DirectoryMonitorFType _tmp21_;
			DirectoryMonitorFType _tmp22_;
			DirectoryMonitorFType _tmp23_;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp6_ = _file_it;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp7_ = gee_iterator_next (_tmp6_);
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (!_tmp7_) {
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				break;
#line 8993 "DirectoryMonitor.c"
			}
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp8_ = _file_it;
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp9_ = gee_iterator_get (_tmp8_);
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			file = (GFile*) _tmp9_;
#line 345 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp10_ = file;
#line 345 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp11_ = g_file_get_parent (_tmp10_);
#line 345 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			parent = _tmp11_;
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp13_ = parent;
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp13_ == NULL) {
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp12_ = TRUE;
#line 9013 "DirectoryMonitor.c"
			} else {
				GFile* _tmp14_;
				GFile* _tmp15_;
				gboolean _tmp16_;
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp14_ = parent;
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp15_ = root;
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp16_ = g_file_equal (_tmp14_, _tmp15_);
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_tmp12_ = !_tmp16_;
#line 9026 "DirectoryMonitor.c"
			}
#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			if (_tmp12_) {
#line 347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (parent);
#line 347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				_g_object_unref0 (file);
#line 347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				continue;
#line 9036 "DirectoryMonitor.c"
			}
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp17_ = self->priv->map;
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp18_ = file;
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp19_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp18_);
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp20_ = (GFileInfo*) _tmp19_;
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp21_ = directory_monitor_get_ftype (_tmp20_);
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp22_ = _tmp21_;
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (_tmp20_);
#line 349 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			ftype = _tmp22_;
#line 350 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_tmp23_ = ftype;
#line 350 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			switch (_tmp23_) {
#line 350 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_FILE:
#line 9060 "DirectoryMonitor.c"
				{
					GeeCollection* _tmp24_;
					GFile* _tmp25_;
					gint _tmp26_;
#line 352 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp24_ = files;
#line 352 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp25_ = file;
#line 352 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					gee_collection_add (_tmp24_, _tmp25_);
#line 353 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp26_ = count;
#line 353 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					count = _tmp26_ + 1;
#line 354 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 9077 "DirectoryMonitor.c"
				}
#line 350 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
				case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
#line 9081 "DirectoryMonitor.c"
				{
					GeeCollection* _tmp27_;
					GFile* _tmp28_;
					gint _tmp29_;
#line 357 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp27_ = dirs;
#line 357 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp28_ = file;
#line 357 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					gee_collection_add (_tmp27_, _tmp28_);
#line 358 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp29_ = count;
#line 358 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					count = _tmp29_ + 1;
#line 359 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 9098 "DirectoryMonitor.c"
				}
				default:
				{
					DirectoryMonitorFType _tmp30_;
#line 362 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_tmp30_ = ftype;
#line 362 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					_vala_assert (_tmp30_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
#line 363 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
					break;
#line 9109 "DirectoryMonitor.c"
				}
			}
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (parent);
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			_g_object_unref0 (file);
#line 9116 "DirectoryMonitor.c"
		}
#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		_g_object_unref0 (_file_it);
#line 9120 "DirectoryMonitor.c"
	}
#line 367 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	result = count;
#line 367 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return result;
#line 9126 "DirectoryMonitor.c"
}


static void directory_monitor_value_file_info_map_init (GValue* value) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	value->data[0].v_pointer = NULL;
#line 9133 "DirectoryMonitor.c"
}


static void directory_monitor_value_file_info_map_free_value (GValue* value) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (value->data[0].v_pointer) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_unref (value->data[0].v_pointer);
#line 9142 "DirectoryMonitor.c"
	}
}


static void directory_monitor_value_file_info_map_copy_value (const GValue* src_value, GValue* dest_value) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (src_value->data[0].v_pointer) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		dest_value->data[0].v_pointer = directory_monitor_file_info_map_ref (src_value->data[0].v_pointer);
#line 9152 "DirectoryMonitor.c"
	} else {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		dest_value->data[0].v_pointer = NULL;
#line 9156 "DirectoryMonitor.c"
	}
}


static gpointer directory_monitor_value_file_info_map_peek_pointer (const GValue* value) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return value->data[0].v_pointer;
#line 9164 "DirectoryMonitor.c"
}


static gchar* directory_monitor_value_file_info_map_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (collect_values[0].v_pointer) {
#line 9171 "DirectoryMonitor.c"
		DirectoryMonitorFileInfoMap * object;
		object = collect_values[0].v_pointer;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		if (object->parent_instance.g_class == NULL) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 9178 "DirectoryMonitor.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 9182 "DirectoryMonitor.c"
		}
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = directory_monitor_file_info_map_ref (object);
#line 9186 "DirectoryMonitor.c"
	} else {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = NULL;
#line 9190 "DirectoryMonitor.c"
	}
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return NULL;
#line 9194 "DirectoryMonitor.c"
}


static gchar* directory_monitor_value_file_info_map_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	DirectoryMonitorFileInfoMap ** object_p;
	object_p = collect_values[0].v_pointer;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!object_p) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 9205 "DirectoryMonitor.c"
	}
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (!value->data[0].v_pointer) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*object_p = NULL;
#line 9211 "DirectoryMonitor.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*object_p = value->data[0].v_pointer;
#line 9215 "DirectoryMonitor.c"
	} else {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		*object_p = directory_monitor_file_info_map_ref (value->data[0].v_pointer);
#line 9219 "DirectoryMonitor.c"
	}
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return NULL;
#line 9223 "DirectoryMonitor.c"
}


static GParamSpec* directory_monitor_param_spec_file_info_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	DirectoryMonitorParamSpecFileInfoMap* spec;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (g_type_is_a (object_type, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP), NULL);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return G_PARAM_SPEC (spec);
#line 9237 "DirectoryMonitor.c"
}


static gpointer directory_monitor_value_get_file_info_map (const GValue* value) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP), NULL);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return value->data[0].v_pointer;
#line 9246 "DirectoryMonitor.c"
}


static void directory_monitor_value_set_file_info_map (GValue* value, gpointer v_object) {
	DirectoryMonitorFileInfoMap * old;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old = value->data[0].v_pointer;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (v_object) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = v_object;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_ref (value->data[0].v_pointer);
#line 9266 "DirectoryMonitor.c"
	} else {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = NULL;
#line 9270 "DirectoryMonitor.c"
	}
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (old) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_unref (old);
#line 9276 "DirectoryMonitor.c"
	}
}


static void directory_monitor_value_take_file_info_map (GValue* value, gpointer v_object) {
	DirectoryMonitorFileInfoMap * old;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	old = value->data[0].v_pointer;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (v_object) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = v_object;
#line 9295 "DirectoryMonitor.c"
	} else {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		value->data[0].v_pointer = NULL;
#line 9299 "DirectoryMonitor.c"
	}
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (old) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		directory_monitor_file_info_map_unref (old);
#line 9305 "DirectoryMonitor.c"
	}
}


static void directory_monitor_file_info_map_class_init (DirectoryMonitorFileInfoMapClass * klass) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_file_info_map_parent_class = g_type_class_peek_parent (klass);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorFileInfoMapClass *) klass)->finalize = directory_monitor_file_info_map_finalize;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_type_class_add_private (klass, sizeof (DirectoryMonitorFileInfoMapPrivate));
#line 9317 "DirectoryMonitor.c"
}


static void directory_monitor_file_info_map_instance_init (DirectoryMonitorFileInfoMap * self) {
	GeeHashMap* _tmp0_;
	GeeHashMap* _tmp1_;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv = DIRECTORY_MONITOR_FILE_INFO_MAP_GET_PRIVATE (self);
#line 133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = gee_hash_map_new (g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
#line 133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->map = _tmp0_;
#line 135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, g_file_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
#line 135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->id_map = _tmp1_;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->ref_count = 1;
#line 9336 "DirectoryMonitor.c"
}


static void directory_monitor_file_info_map_finalize (DirectoryMonitorFileInfoMap * obj) {
	DirectoryMonitorFileInfoMap * self;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMap);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_signal_handlers_destroy (self);
#line 133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->map);
#line 135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->id_map);
#line 9350 "DirectoryMonitor.c"
}


static GType directory_monitor_file_info_map_get_type (void) {
	static volatile gsize directory_monitor_file_info_map_type_id__volatile = 0;
	if (g_once_init_enter (&directory_monitor_file_info_map_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { directory_monitor_value_file_info_map_init, directory_monitor_value_file_info_map_free_value, directory_monitor_value_file_info_map_copy_value, directory_monitor_value_file_info_map_peek_pointer, "p", directory_monitor_value_file_info_map_collect_value, "p", directory_monitor_value_file_info_map_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (DirectoryMonitorFileInfoMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) directory_monitor_file_info_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectoryMonitorFileInfoMap), 0, (GInstanceInitFunc) directory_monitor_file_info_map_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType directory_monitor_file_info_map_type_id;
		directory_monitor_file_info_map_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DirectoryMonitorFileInfoMap", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&directory_monitor_file_info_map_type_id__volatile, directory_monitor_file_info_map_type_id);
	}
	return directory_monitor_file_info_map_type_id__volatile;
}


static gpointer directory_monitor_file_info_map_ref (gpointer instance) {
	DirectoryMonitorFileInfoMap * self;
	self = instance;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_atomic_int_inc (&self->ref_count);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	return instance;
#line 9375 "DirectoryMonitor.c"
}


static void directory_monitor_file_info_map_unref (gpointer instance) {
	DirectoryMonitorFileInfoMap * self;
	self = instance;
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		DIRECTORY_MONITOR_FILE_INFO_MAP_GET_CLASS (self)->finalize (self);
#line 132 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 9388 "DirectoryMonitor.c"
	}
}


static void directory_monitor_class_init (DirectoryMonitorClass * klass) {
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_parent_class = g_type_class_peek_parent (klass);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	g_type_class_add_private (klass, sizeof (DirectoryMonitorPrivate));
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_root_deleted = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_root_deleted;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_root_moved = (void (*) (DirectoryMonitor *, GFile*, GFile*, GFileInfo*)) directory_monitor_real_notify_root_moved;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_discovery_started = (void (*) (DirectoryMonitor *)) directory_monitor_real_notify_discovery_started;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->internal_notify_file_discovered = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_internal_notify_file_discovered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_discovered = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_notify_file_discovered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->internal_notify_directory_discovered = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_internal_notify_directory_discovered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_discovered = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_notify_directory_discovered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_discovery_failed = (void (*) (DirectoryMonitor *, const gchar*)) directory_monitor_real_notify_discovery_failed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_discovery_completed = (void (*) (DirectoryMonitor *)) directory_monitor_real_notify_discovery_completed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_created = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_notify_file_created;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_moved = (void (*) (DirectoryMonitor *, GFile*, GFile*, GFileInfo*)) directory_monitor_real_notify_file_moved;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_altered = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_file_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_alteration_completed = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_notify_file_alteration_completed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_attributes_altered = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_file_attributes_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_file_deleted = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_file_deleted;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_created = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_notify_directory_created;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_moved = (void (*) (DirectoryMonitor *, GFile*, GFile*, GFileInfo*)) directory_monitor_real_notify_directory_moved;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_altered = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_directory_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_alteration_completed = (void (*) (DirectoryMonitor *, GFile*, GFileInfo*)) directory_monitor_real_notify_directory_alteration_completed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_attributes_altered = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_directory_attributes_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_directory_deleted = (void (*) (DirectoryMonitor *, GFile*)) directory_monitor_real_notify_directory_deleted;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->notify_closed = (void (*) (DirectoryMonitor *)) directory_monitor_real_notify_closed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->close = (void (*) (DirectoryMonitor *)) directory_monitor_real_close;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->root_moved = directory_monitor_real_root_moved;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->root_deleted = directory_monitor_real_root_deleted;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->discovery_started = directory_monitor_real_discovery_started;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_discovered = directory_monitor_real_file_discovered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_discovered = directory_monitor_real_directory_discovered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->discovery_failed = directory_monitor_real_discovery_failed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->discovery_completed = directory_monitor_real_discovery_completed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_created = directory_monitor_real_file_created;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_moved = directory_monitor_real_file_moved;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_altered = directory_monitor_real_file_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_alteration_completed = directory_monitor_real_file_alteration_completed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_attributes_altered = directory_monitor_real_file_attributes_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->file_deleted = directory_monitor_real_file_deleted;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_created = directory_monitor_real_directory_created;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_moved = directory_monitor_real_directory_moved;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_altered = directory_monitor_real_directory_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_alteration_completed = directory_monitor_real_directory_alteration_completed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_attributes_altered = directory_monitor_real_directory_attributes_altered;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->directory_deleted = directory_monitor_real_directory_deleted;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	((DirectoryMonitorClass *) klass)->closed = directory_monitor_real_closed;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	G_OBJECT_CLASS (klass)->finalize = directory_monitor_finalize;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_ROOT_MOVED_SIGNAL] = g_signal_new ("root-moved", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, root_moved), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, g_file_get_type (), g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_ROOT_DELETED_SIGNAL] = g_signal_new ("root-deleted", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, root_deleted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DISCOVERY_STARTED_SIGNAL] = g_signal_new ("discovery-started", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, discovery_started), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_DISCOVERED_SIGNAL] = g_signal_new ("file-discovered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_discovered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_DISCOVERED_SIGNAL] = g_signal_new ("directory-discovered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_discovered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DISCOVERY_FAILED_SIGNAL] = g_signal_new ("discovery-failed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, discovery_failed), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DISCOVERY_COMPLETED_SIGNAL] = g_signal_new ("discovery-completed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, discovery_completed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_CREATED_SIGNAL] = g_signal_new ("file-created", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_created), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_MOVED_SIGNAL] = g_signal_new ("file-moved", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_moved), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, g_file_get_type (), g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_ALTERED_SIGNAL] = g_signal_new ("file-altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_ALTERATION_COMPLETED_SIGNAL] = g_signal_new ("file-alteration-completed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_alteration_completed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_ATTRIBUTES_ALTERED_SIGNAL] = g_signal_new ("file-attributes-altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_attributes_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_FILE_DELETED_SIGNAL] = g_signal_new ("file-deleted", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_deleted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_CREATED_SIGNAL] = g_signal_new ("directory-created", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_created), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_MOVED_SIGNAL] = g_signal_new ("directory-moved", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_moved), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, g_file_get_type (), g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_ALTERED_SIGNAL] = g_signal_new ("directory-altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_ALTERATION_COMPLETED_SIGNAL] = g_signal_new ("directory-alteration-completed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_alteration_completed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, g_file_get_type (), g_file_info_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_ATTRIBUTES_ALTERED_SIGNAL] = g_signal_new ("directory-attributes-altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_attributes_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_DIRECTORY_DELETED_SIGNAL] = g_signal_new ("directory-deleted", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_deleted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_file_get_type ());
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	directory_monitor_signals[DIRECTORY_MONITOR_CLOSED_SIGNAL] = g_signal_new ("closed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, closed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 9526 "DirectoryMonitor.c"
}


static void directory_monitor_instance_init (DirectoryMonitor * self) {
	GeeHashMap* _tmp0_;
	GeeLinkedList* _tmp1_;
	DirectoryMonitorFileInfoMap* _tmp2_;
	DirectoryMonitorFileInfoMap* _tmp3_;
	GCancellable* _tmp4_;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv = DIRECTORY_MONITOR_GET_PRIVATE (self);
#line 374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, g_file_monitor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->monitors = _tmp0_;
#line 375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp1_ = gee_linked_list_new (DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, (GBoxedCopyFunc) directory_monitor_query_info_queue_element_ref, (GDestroyNotify) directory_monitor_query_info_queue_element_unref, NULL, NULL, NULL);
#line 375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->query_info_queue = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_QUEUE, GeeQueue);
#line 377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp2_ = directory_monitor_file_info_map_new ();
#line 377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->files = _tmp2_;
#line 378 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp3_ = directory_monitor_file_info_map_new ();
#line 378 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->parent_moved = _tmp3_;
#line 379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_tmp4_ = g_cancellable_new ();
#line 379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->cancellable = _tmp4_;
#line 380 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->outstanding_exploration_dirs = 0;
#line 381 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->started = FALSE;
#line 382 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->has_discovery_started = FALSE;
#line 383 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self->priv->delete_timer_id = (guint) 0;
#line 9566 "DirectoryMonitor.c"
}


static void directory_monitor_finalize (GObject * obj) {
	DirectoryMonitor * self;
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECTORY_MONITOR, DirectoryMonitor);
#line 371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->root);
#line 374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->monitors);
#line 375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->query_info_queue);
#line 377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_directory_monitor_file_info_map_unref0 (self->priv->files);
#line 378 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_directory_monitor_file_info_map_unref0 (self->priv->parent_moved);
#line 379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	_g_object_unref0 (self->priv->cancellable);
#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
	G_OBJECT_CLASS (directory_monitor_parent_class)->finalize (obj);
#line 9588 "DirectoryMonitor.c"
}


GType directory_monitor_get_type (void) {
	static volatile gsize directory_monitor_type_id__volatile = 0;
	if (g_once_init_enter (&directory_monitor_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DirectoryMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) directory_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectoryMonitor), 0, (GInstanceInitFunc) directory_monitor_instance_init, NULL };
		GType directory_monitor_type_id;
		directory_monitor_type_id = g_type_register_static (G_TYPE_OBJECT, "DirectoryMonitor", &g_define_type_info, 0);
		g_once_init_leave (&directory_monitor_type_id__volatile, directory_monitor_type_id);
	}
	return directory_monitor_type_id__volatile;
}