383
390
FolksBackendStore* folks_backend_store_dup (void);
384
391
static FolksBackendStore* folks_backend_store_new (void);
385
392
static FolksBackendStore* folks_backend_store_construct (GType object_type);
386
void folks_debug_set_flags (const gchar* debug_flags);
393
FolksDebug* folks_debug_dup (const gchar* debug_flags);
394
void _folks_debug_register_domain (FolksDebug* self, const gchar* domain);
387
395
static void folks_backend_store_prepare_data_free (gpointer _data);
388
static void folks_backend_store_prepare_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
389
396
void folks_backend_store_prepare (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
390
397
void folks_backend_store_prepare_finish (FolksBackendStore* self, GAsyncResult* _res_);
391
398
static gboolean folks_backend_store_prepare_co (FolksBackendStorePrepareData* data);
392
static void folks_backend_store_load_disabled_backend_names (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
393
static void folks_backend_store_load_disabled_backend_names_finish (FolksBackendStore* self, GAsyncResult* _res_);
399
static void _folks_backend_store_load_disabled_backend_names (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
400
static void _folks_backend_store_load_disabled_backend_names_finish (FolksBackendStore* self, GAsyncResult* _res_);
401
static void folks_backend_store_prepare_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
394
402
static void folks_backend_store_load_backends_data_free (gpointer _data);
395
static void folks_backend_store_load_backends_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
396
403
void folks_backend_store_load_backends (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
397
404
void folks_backend_store_load_backends_finish (FolksBackendStore* self, GAsyncResult* _res_, GError** error);
398
405
static gboolean folks_backend_store_load_backends_co (FolksBackendStoreLoadBackendsData* data);
399
static void folks_backend_store_backend_unload_if_needed (FolksBackendStore* self, FolksBackend* backend, GAsyncReadyCallback _callback_, gpointer _user_data_);
400
static gboolean folks_backend_store_backend_unload_if_needed_finish (FolksBackendStore* self, GAsyncResult* _res_);
401
static void folks_backend_store_get_file_info (GFile* file, GAsyncReadyCallback _callback_, gpointer _user_data_);
402
static void folks_backend_store_get_file_info_finish (GAsyncResult* _res_, gboolean* is_file, gboolean* is_dir);
403
static void folks_backend_store_get_modules_from_dir (FolksBackendStore* self, GFile* dir, GAsyncReadyCallback _callback_, gpointer _user_data_);
404
static GeeHashMap* folks_backend_store_get_modules_from_dir_finish (FolksBackendStore* self, GAsyncResult* _res_);
405
static void folks_backend_store_load_module_from_file (FolksBackendStore* self, GFile* file);
406
static void folks_backend_store_backend_load_if_needed (FolksBackendStore* self, FolksBackend* backend, GAsyncReadyCallback _callback_, gpointer _user_data_);
407
static void folks_backend_store_backend_load_if_needed_finish (FolksBackendStore* self, GAsyncResult* _res_);
408
static void folks_backend_store_backend_load_if_needed_data_free (gpointer _data);
409
static void folks_backend_store_backend_load_if_needed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
410
static gboolean folks_backend_store_backend_load_if_needed_co (FolksBackendStoreBackendLoadIfNeededData* data);
411
static gboolean folks_backend_store_backend_is_enabled (FolksBackendStore* self, const gchar* name);
406
static void folks_backend_store_load_backends_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
407
static void _folks_backend_store_backend_unload_if_needed (FolksBackendStore* self, FolksBackend* backend, GAsyncReadyCallback _callback_, gpointer _user_data_);
408
static gboolean _folks_backend_store_backend_unload_if_needed_finish (FolksBackendStore* self, GAsyncResult* _res_);
409
static void _folks_backend_store_get_file_info (GFile* file, GAsyncReadyCallback _callback_, gpointer _user_data_);
410
static void _folks_backend_store_get_file_info_finish (GAsyncResult* _res_, gboolean* is_file, gboolean* is_dir);
411
static void _folks_backend_store_get_modules_from_dir (FolksBackendStore* self, GFile* dir, GAsyncReadyCallback _callback_, gpointer _user_data_);
412
static GeeHashMap* _folks_backend_store_get_modules_from_dir_finish (FolksBackendStore* self, GAsyncResult* _res_);
413
static void _folks_backend_store_load_module_from_file (FolksBackendStore* self, GFile* file);
414
static void _folks_backend_store_backend_load_if_needed (FolksBackendStore* self, FolksBackend* backend, GAsyncReadyCallback _callback_, gpointer _user_data_);
415
static void _folks_backend_store_backend_load_if_needed_finish (FolksBackendStore* self, GAsyncResult* _res_);
416
static void _folks_backend_store_backend_load_if_needed_data_free (gpointer _data);
417
static gboolean _folks_backend_store_backend_load_if_needed_co (FolksBackendStoreBackendLoadIfNeededData* data);
418
static gboolean _folks_backend_store_backend_is_enabled (FolksBackendStore* self, const gchar* name);
412
419
const gchar* folks_backend_get_name (FolksBackend* self);
413
420
void folks_backend_prepare (FolksBackend* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
414
421
void folks_backend_prepare_finish (FolksBackend* self, GAsyncResult* _res_, GError** error);
415
static void folks_backend_store_backend_unload_if_needed_data_free (gpointer _data);
416
static void folks_backend_store_backend_unload_if_needed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
417
static gboolean folks_backend_store_backend_unload_if_needed_co (FolksBackendStoreBackendUnloadIfNeededData* data);
422
static void _folks_backend_store_backend_load_if_needed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
423
static void _folks_backend_store_backend_unload_if_needed_data_free (gpointer _data);
424
static gboolean _folks_backend_store_backend_unload_if_needed_co (FolksBackendStoreBackendUnloadIfNeededData* data);
418
425
void folks_backend_unprepare (FolksBackend* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
419
426
void folks_backend_unprepare_finish (FolksBackend* self, GAsyncResult* _res_, GError** error);
427
static void _folks_backend_store_backend_unload_if_needed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
420
428
void folks_backend_store_add_backend (FolksBackendStore* self, FolksBackend* backend);
421
429
FolksBackend* folks_backend_store_get_backend_by_name (FolksBackendStore* self, const gchar* name);
422
430
GeeCollection* folks_backend_store_list_backends (FolksBackendStore* self);
423
431
static void folks_backend_store_enable_backend_data_free (gpointer _data);
424
static void folks_backend_store_enable_backend_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
425
432
void folks_backend_store_enable_backend (FolksBackendStore* self, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
426
433
void folks_backend_store_enable_backend_finish (FolksBackendStore* self, GAsyncResult* _res_);
427
434
static gboolean folks_backend_store_enable_backend_co (FolksBackendStoreEnableBackendData* data);
428
static void folks_backend_store_save_key_file (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
429
static void folks_backend_store_save_key_file_finish (FolksBackendStore* self, GAsyncResult* _res_);
435
static void _folks_backend_store_save_key_file (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
436
static void _folks_backend_store_save_key_file_finish (FolksBackendStore* self, GAsyncResult* _res_);
437
static void folks_backend_store_enable_backend_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
430
438
static void folks_backend_store_disable_backend_data_free (gpointer _data);
431
static void folks_backend_store_disable_backend_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
432
439
void folks_backend_store_disable_backend (FolksBackendStore* self, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
433
440
void folks_backend_store_disable_backend_finish (FolksBackendStore* self, GAsyncResult* _res_);
434
441
static gboolean folks_backend_store_disable_backend_co (FolksBackendStoreDisableBackendData* data);
435
static void folks_backend_store_get_modules_from_dir_data_free (gpointer _data);
436
static void folks_backend_store_get_modules_from_dir_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
437
static gboolean folks_backend_store_get_modules_from_dir_co (FolksBackendStoreGetModulesFromDirData* data);
442
static void folks_backend_store_disable_backend_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
443
static void _folks_backend_store_get_modules_from_dir_data_free (gpointer _data);
444
static gboolean _folks_backend_store_get_modules_from_dir_co (FolksBackendStoreGetModulesFromDirData* data);
445
static void _folks_backend_store_get_modules_from_dir_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
438
446
static void _g_object_unref0_ (gpointer var);
439
447
static void _g_list_free__g_object_unref0_ (GList* self);
440
static void folks_backend_store_get_file_info_data_free (gpointer _data);
441
static void folks_backend_store_get_file_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
442
static gboolean folks_backend_store_get_file_info_co (FolksBackendStoreGetFileInfoData* data);
443
static void folks_backend_store_load_disabled_backend_names_data_free (gpointer _data);
444
static void folks_backend_store_load_disabled_backend_names_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
445
static gboolean folks_backend_store_load_disabled_backend_names_co (FolksBackendStoreLoadDisabledBackendNamesData* data);
446
static void folks_backend_store_save_key_file_data_free (gpointer _data);
447
static void folks_backend_store_save_key_file_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
448
static gboolean folks_backend_store_save_key_file_co (FolksBackendStoreSaveKeyFileData* data);
448
static void _folks_backend_store_get_file_info_data_free (gpointer _data);
449
static gboolean _folks_backend_store_get_file_info_co (FolksBackendStoreGetFileInfoData* data);
450
static void _folks_backend_store_get_file_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
451
static void _folks_backend_store_load_disabled_backend_names_data_free (gpointer _data);
452
static gboolean _folks_backend_store_load_disabled_backend_names_co (FolksBackendStoreLoadDisabledBackendNamesData* data);
453
static void _folks_backend_store_load_disabled_backend_names_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
454
static void _folks_backend_store_save_key_file_data_free (gpointer _data);
455
static gboolean _folks_backend_store_save_key_file_co (FolksBackendStoreSaveKeyFileData* data);
456
static void _folks_backend_store_save_key_file_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
449
457
GList* folks_backend_store_get_enabled_backends (FolksBackendStore* self);
450
458
static void folks_backend_store_set_enabled_backends (FolksBackendStore* self, GList* value);
451
459
gboolean folks_backend_store_get_is_prepared (FolksBackendStore* self);
487
495
static FolksBackendStore* folks_backend_store_construct (GType object_type) {
488
496
FolksBackendStore * self = NULL;
489
497
const gchar* _tmp0_ = NULL;
490
GeeHashMap* _tmp1_ = NULL;
498
FolksDebug* _tmp1_ = NULL;
492
500
GeeHashMap* _tmp3_ = NULL;
493
501
GeeHashMap* _tmp4_;
494
502
GeeHashMap* _tmp5_ = NULL;
495
503
GeeHashMap* _tmp6_;
504
GeeHashMap* _tmp7_ = NULL;
496
506
self = (FolksBackendStore*) g_object_new (object_type, NULL);
497
507
_tmp0_ = g_getenv ("FOLKS_DEBUG");
498
folks_debug_set_flags (_tmp0_);
499
_tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_POINTER, NULL, NULL, g_str_hash, g_str_equal, NULL);
508
_tmp1_ = folks_debug_dup (_tmp0_);
501
_g_object_unref0 (self->priv->modules);
502
self->priv->modules = _tmp2_;
503
_tmp3_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_BACKEND, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_str_hash, g_str_equal, NULL);
510
_g_object_unref0 (self->priv->_debug);
511
self->priv->_debug = _tmp2_;
512
_folks_debug_register_domain (self->priv->_debug, G_LOG_DOMAIN);
513
_tmp3_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_POINTER, NULL, NULL, g_str_hash, g_str_equal, NULL);
505
_g_object_unref0 (self->priv->backend_hash);
506
self->priv->backend_hash = _tmp4_;
515
_g_object_unref0 (self->priv->_modules);
516
self->priv->_modules = _tmp4_;
507
517
_tmp5_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_BACKEND, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_str_hash, g_str_equal, NULL);
519
_g_object_unref0 (self->priv->_backend_hash);
520
self->priv->_backend_hash = _tmp6_;
521
_tmp7_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_BACKEND, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_str_hash, g_str_equal, NULL);
509
523
_g_object_unref0 (self->priv->_prepared_backends);
510
self->priv->_prepared_backends = _tmp6_;
524
self->priv->_prepared_backends = _tmp8_;
705
719
data->modules = data->_tmp11_;
706
720
data->_tmp13_ = NULL;
707
721
data->_tmp13_ = data->_tmp12_ = g_strsplit (data->path, ":", 0);
708
data->_tmp14_ = data->_tmp13_;
722
data->path_split = data->_tmp13_;
709
723
data->path_split_length1 = _vala_array_length (data->_tmp12_);
710
data->_path_split_size_ = data->path_split_length1;
711
data->path_split = data->_tmp14_;
724
data->_path_split_size_ = _vala_array_length (data->_tmp12_);
713
726
data->subpath_collection = data->path_split;
714
727
data->subpath_collection_length1 = data->path_split_length1;
715
728
for (data->subpath_it = 0; data->subpath_it < data->path_split_length1; data->subpath_it = data->subpath_it + 1) {
716
data->_tmp15_ = g_strdup (data->subpath_collection[data->subpath_it]);
717
data->subpath = data->_tmp15_;
729
data->subpath = data->subpath_collection[data->subpath_it];
719
data->_tmp16_ = NULL;
720
data->_tmp16_ = g_file_new_for_path (data->subpath);
721
data->file = data->_tmp16_;
731
data->_tmp14_ = NULL;
732
data->_tmp14_ = g_file_new_for_path (data->subpath);
733
data->file = data->_tmp14_;
722
734
g_assert (data->file != NULL);
723
735
data->_state_ = 3;
724
folks_backend_store_get_file_info (data->file, folks_backend_store_load_backends_ready, data);
736
_folks_backend_store_get_file_info (data->file, folks_backend_store_load_backends_ready, data);
727
folks_backend_store_get_file_info_finish (data->_res_, &data->_tmp17_, &data->_tmp18_);
728
data->is_file = data->_tmp17_;
729
data->is_dir = data->_tmp18_;
739
_folks_backend_store_get_file_info_finish (data->_res_, &data->_tmp15_, &data->_tmp16_);
740
data->is_file = data->_tmp15_;
741
data->is_dir = data->_tmp16_;
730
742
if (data->is_file) {
731
743
gee_abstract_map_set ((GeeAbstractMap*) data->modules, data->subpath, data->file);
733
745
if (data->is_dir) {
734
746
data->_state_ = 4;
735
folks_backend_store_get_modules_from_dir (data->self, data->file, folks_backend_store_load_backends_ready, data);
747
_folks_backend_store_get_modules_from_dir (data->self, data->file, folks_backend_store_load_backends_ready, data);
738
data->_tmp19_ = NULL;
739
data->_tmp19_ = folks_backend_store_get_modules_from_dir_finish (data->self, data->_res_);
740
data->cur_modules = data->_tmp19_;
750
data->_tmp17_ = NULL;
751
data->_tmp17_ = _folks_backend_store_get_modules_from_dir_finish (data->self, data->_res_);
752
data->cur_modules = data->_tmp17_;
754
data->_tmp18_ = NULL;
755
data->_tmp18_ = gee_map_get_entries ((GeeMap*) data->cur_modules);
756
data->_tmp19_ = data->_tmp18_;
742
757
data->_tmp20_ = NULL;
743
data->_tmp20_ = gee_map_get_entries ((GeeMap*) data->cur_modules);
744
data->_tmp21_ = data->_tmp20_;
745
data->_tmp22_ = NULL;
746
data->_tmp22_ = gee_iterable_iterator ((GeeIterable*) data->_tmp21_);
747
data->_entry_it = (data->_tmp23_ = data->_tmp22_, _g_object_unref0 (data->_tmp21_), data->_tmp23_);
758
data->_tmp20_ = gee_iterable_iterator ((GeeIterable*) data->_tmp19_);
759
data->_entry_it = (data->_tmp21_ = data->_tmp20_, _g_object_unref0 (data->_tmp19_), data->_tmp21_);
749
data->_tmp24_ = gee_iterator_next (data->_entry_it);
750
if (!data->_tmp24_) {
761
data->_tmp22_ = gee_iterator_next (data->_entry_it);
762
if (!data->_tmp22_) {
765
data->_tmp23_ = NULL;
766
data->_tmp23_ = gee_iterator_get (data->_entry_it);
767
data->entry = (GeeMapEntry*) data->_tmp23_;
768
data->_tmp24_ = NULL;
769
data->_tmp24_ = gee_map_entry_get_key (data->entry);
753
770
data->_tmp25_ = NULL;
754
data->_tmp25_ = gee_iterator_get (data->_entry_it);
755
data->entry = (GeeMapEntry*) data->_tmp25_;
756
data->_tmp26_ = NULL;
757
data->_tmp26_ = gee_map_entry_get_key (data->entry);
758
data->_tmp27_ = NULL;
759
data->_tmp27_ = gee_map_entry_get_value (data->entry);
760
gee_abstract_map_set ((GeeAbstractMap*) data->modules, (const gchar*) data->_tmp26_, (GFile*) data->_tmp27_);
771
data->_tmp25_ = gee_map_entry_get_value (data->entry);
772
gee_abstract_map_set ((GeeAbstractMap*) data->modules, (const gchar*) data->_tmp24_, (GFile*) data->_tmp25_);
761
773
_g_object_unref0 (data->entry);
763
775
_g_object_unref0 (data->_entry_it);
771
783
_g_object_unref0 (data->file);
772
_g_free0 (data->subpath);
788
data->_tmp26_ = NULL;
789
data->_tmp26_ = gee_map_get_values ((GeeMap*) data->modules);
790
data->_tmp27_ = data->_tmp26_;
777
791
data->_tmp28_ = NULL;
778
data->_tmp28_ = gee_map_get_values ((GeeMap*) data->modules);
779
data->_tmp29_ = data->_tmp28_;
780
data->_tmp30_ = NULL;
781
data->_tmp30_ = gee_iterable_iterator ((GeeIterable*) data->_tmp29_);
782
data->_module_it = (data->_tmp31_ = data->_tmp30_, _g_object_unref0 (data->_tmp29_), data->_tmp31_);
792
data->_tmp28_ = gee_iterable_iterator ((GeeIterable*) data->_tmp27_);
793
data->_module_it = (data->_tmp29_ = data->_tmp28_, _g_object_unref0 (data->_tmp27_), data->_tmp29_);
784
data->_tmp32_ = gee_iterator_next (data->_module_it);
785
if (!data->_tmp32_) {
795
data->_tmp30_ = gee_iterator_next (data->_module_it);
796
if (!data->_tmp30_) {
788
data->_tmp33_ = NULL;
789
data->_tmp33_ = gee_iterator_get (data->_module_it);
790
data->module = (GFile*) data->_tmp33_;
791
folks_backend_store_load_module_from_file (data->self, data->module);
799
data->_tmp31_ = NULL;
800
data->_tmp31_ = gee_iterator_get (data->_module_it);
801
data->module = (GFile*) data->_tmp31_;
802
_folks_backend_store_load_module_from_file (data->self, data->module);
792
803
_g_object_unref0 (data->module);
794
805
_g_object_unref0 (data->_module_it);
808
data->_tmp32_ = NULL;
809
data->_tmp32_ = gee_map_get_values ((GeeMap*) data->self->priv->_backend_hash);
810
data->_tmp33_ = data->_tmp32_;
797
811
data->_tmp34_ = NULL;
798
data->_tmp34_ = gee_map_get_values ((GeeMap*) data->self->priv->backend_hash);
799
data->_tmp35_ = data->_tmp34_;
800
data->_tmp36_ = NULL;
801
data->_tmp36_ = gee_iterable_iterator ((GeeIterable*) data->_tmp35_);
802
data->_backend_it = (data->_tmp37_ = data->_tmp36_, _g_object_unref0 (data->_tmp35_), data->_tmp37_);
812
data->_tmp34_ = gee_iterable_iterator ((GeeIterable*) data->_tmp33_);
813
data->_backend_it = (data->_tmp35_ = data->_tmp34_, _g_object_unref0 (data->_tmp33_), data->_tmp35_);
804
data->_tmp38_ = gee_iterator_next (data->_backend_it);
805
if (!data->_tmp38_) {
815
data->_tmp36_ = gee_iterator_next (data->_backend_it);
816
if (!data->_tmp36_) {
808
data->_tmp39_ = NULL;
809
data->_tmp39_ = gee_iterator_get (data->_backend_it);
810
data->backend = (FolksBackend*) data->_tmp39_;
819
data->_tmp37_ = NULL;
820
data->_tmp37_ = gee_iterator_get (data->_backend_it);
821
data->backend = (FolksBackend*) data->_tmp37_;
811
822
data->_state_ = 5;
812
folks_backend_store_backend_load_if_needed (data->self, data->backend, folks_backend_store_load_backends_ready, data);
823
_folks_backend_store_backend_load_if_needed (data->self, data->backend, folks_backend_store_load_backends_ready, data);
815
folks_backend_store_backend_load_if_needed_finish (data->self, data->_res_);
826
_folks_backend_store_backend_load_if_needed_finish (data->self, data->_res_);
816
827
_g_object_unref0 (data->backend);
818
829
_g_object_unref0 (data->_backend_it);
842
static void folks_backend_store_backend_load_if_needed (FolksBackendStore* self, FolksBackend* backend, GAsyncReadyCallback _callback_, gpointer _user_data_) {
853
static void _folks_backend_store_backend_load_if_needed (FolksBackendStore* self, FolksBackend* backend, GAsyncReadyCallback _callback_, gpointer _user_data_) {
843
854
FolksBackendStoreBackendLoadIfNeededData* _data_;
844
855
_data_ = g_slice_new0 (FolksBackendStoreBackendLoadIfNeededData);
845
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, folks_backend_store_backend_load_if_needed);
846
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, folks_backend_store_backend_load_if_needed_data_free);
856
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _folks_backend_store_backend_load_if_needed);
857
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _folks_backend_store_backend_load_if_needed_data_free);
847
858
_data_->self = _g_object_ref0 (self);
848
859
_data_->backend = _g_object_ref0 (backend);
849
folks_backend_store_backend_load_if_needed_co (_data_);
860
_folks_backend_store_backend_load_if_needed_co (_data_);
853
static void folks_backend_store_backend_load_if_needed_finish (FolksBackendStore* self, GAsyncResult* _res_) {
864
static void _folks_backend_store_backend_load_if_needed_finish (FolksBackendStore* self, GAsyncResult* _res_) {
854
865
FolksBackendStoreBackendLoadIfNeededData* _data_;
855
866
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
859
static void folks_backend_store_backend_load_if_needed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
870
static void _folks_backend_store_backend_load_if_needed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
860
871
FolksBackendStoreBackendLoadIfNeededData* data;
861
872
data = _user_data_;
862
873
data->_source_object_ = source_object;
863
874
data->_res_ = _res_;
864
folks_backend_store_backend_load_if_needed_co (data);
875
_folks_backend_store_backend_load_if_needed_co (data);
868
static gboolean folks_backend_store_backend_load_if_needed_co (FolksBackendStoreBackendLoadIfNeededData* data) {
879
static gboolean _folks_backend_store_backend_load_if_needed_co (FolksBackendStoreBackendLoadIfNeededData* data) {
869
880
switch (data->_state_) {
1361
1375
data->_tmp0_ = NULL;
1362
1376
data->_tmp0_ = g_file_get_path (data->dir);
1363
1377
data->_tmp1_ = data->_tmp0_;
1364
g_debug ("backend-store.vala:389: Searching for modules in folder '%s' ..", data->_tmp1_);
1378
g_debug ("backend-store.vala:397: Searching for modules in folder '%s' ..", data->_tmp1_);
1365
1379
_g_free0 (data->_tmp1_);
1366
1380
data->_tmp2_ = g_strdup (G_FILE_ATTRIBUTE_STANDARD_NAME "," G_FILE_ATTRIBUTE_STANDARD_TYPE "," G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "," G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
1367
1381
data->attributes = data->_tmp2_;
1368
1382
data->_state_ = 1;
1369
g_file_enumerate_children_async (data->dir, data->attributes, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, NULL, folks_backend_store_get_modules_from_dir_ready, data);
1383
g_file_enumerate_children_async (data->dir, data->attributes, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, NULL, _folks_backend_store_get_modules_from_dir_ready, data);
1372
1386
data->_tmp3_ = NULL;
1373
1387
data->_tmp3_ = g_file_enumerate_children_finish (data->dir, data->_res_, &data->_inner_error_);
1374
data->_tmp4_ = data->_tmp3_;
1388
data->enumerator = data->_tmp3_;
1375
1389
if (data->_inner_error_ != NULL) {
1376
1390
goto __catch3_g_error;
1378
data->_tmp5_ = data->_tmp4_;
1379
_g_object_unref0 (data->enumerator);
1380
data->enumerator = data->_tmp5_;
1381
1392
data->_state_ = 2;
1382
g_file_enumerator_next_files_async (data->enumerator, G_MAXINT, G_PRIORITY_DEFAULT, NULL, folks_backend_store_get_modules_from_dir_ready, data);
1393
g_file_enumerator_next_files_async (data->enumerator, G_MAXINT, G_PRIORITY_DEFAULT, NULL, _folks_backend_store_get_modules_from_dir_ready, data);
1385
data->_tmp6_ = NULL;
1386
data->_tmp6_ = g_file_enumerator_next_files_finish (data->enumerator, data->_res_, &data->_inner_error_);
1387
data->_tmp7_ = data->_tmp6_;
1396
data->_tmp4_ = NULL;
1397
data->_tmp4_ = g_file_enumerator_next_files_finish (data->enumerator, data->_res_, &data->_inner_error_);
1398
data->_tmp5_ = data->_tmp4_;
1388
1399
if (data->_inner_error_ != NULL) {
1400
_g_object_unref0 (data->enumerator);
1389
1401
goto __catch3_g_error;
1391
data->_tmp8_ = data->_tmp7_;
1403
data->_tmp6_ = data->_tmp5_;
1392
1404
__g_list_free__g_object_unref0_0 (data->infos);
1393
data->infos = data->_tmp8_;
1405
data->infos = data->_tmp6_;
1406
_g_object_unref0 (data->enumerator);
1394
1407
goto __finally3;
1395
1408
__catch3_g_error:
1397
1410
data->_error_ = data->_inner_error_;
1398
1411
data->_inner_error_ = NULL;
1399
data->_tmp9_ = NULL;
1400
data->_tmp9_ = _ ("Error listing contents of folder '%s': %s");
1401
data->_tmp10_ = NULL;
1402
data->_tmp10_ = g_file_get_path (data->dir);
1403
data->_tmp11_ = data->_tmp10_;
1404
g_critical (data->_tmp9_, data->_tmp11_, data->_error_->message);
1405
_g_free0 (data->_tmp11_);
1412
data->_tmp7_ = NULL;
1413
data->_tmp7_ = _ ("Error listing contents of folder '%s': %s");
1414
data->_tmp8_ = NULL;
1415
data->_tmp8_ = g_file_get_path (data->dir);
1416
data->_tmp9_ = data->_tmp8_;
1417
g_critical (data->_tmp7_, data->_tmp9_, data->_error_->message);
1418
_g_free0 (data->_tmp9_);
1406
1419
data->result = NULL;
1407
1420
_g_error_free0 (data->_error_);
1408
_g_object_unref0 (data->enumerator);
1409
1421
__g_list_free__g_object_unref0_0 (data->infos);
1410
1422
_g_free0 (data->attributes);
1411
1423
if (data->_state_ == 0) {
1420
1432
if (data->_inner_error_ != NULL) {
1421
_g_object_unref0 (data->enumerator);
1422
1433
__g_list_free__g_object_unref0_0 (data->infos);
1423
1434
_g_free0 (data->attributes);
1424
1435
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);
1425
1436
g_clear_error (&data->_inner_error_);
1428
data->_tmp12_ = NULL;
1429
data->_tmp12_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_str_hash, g_str_equal, NULL);
1430
data->modules_final = data->_tmp12_;
1439
data->_tmp10_ = NULL;
1440
data->_tmp10_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_str_hash, g_str_equal, NULL);
1441
data->modules_final = data->_tmp10_;
1432
1443
data->info_collection = data->infos;
1433
1444
for (data->info_it = data->info_collection; data->info_it != NULL; data->info_it = data->info_it->next) {
1434
data->_tmp13_ = _g_object_ref0 ((GFileInfo*) data->info_it->data);
1435
data->info = data->_tmp13_;
1445
data->_tmp11_ = _g_object_ref0 ((GFileInfo*) data->info_it->data);
1446
data->info = data->_tmp11_;
1437
data->_tmp14_ = NULL;
1438
data->_tmp14_ = g_file_info_get_name (data->info);
1448
data->_tmp12_ = NULL;
1449
data->_tmp12_ = g_file_info_get_name (data->info);
1450
data->_tmp13_ = NULL;
1451
data->_tmp13_ = g_file_get_child (data->dir, data->_tmp12_);
1452
data->file = data->_tmp13_;
1453
data->_tmp14_ = g_file_info_get_file_type (data->info);
1454
data->file_type = data->_tmp14_;
1439
1455
data->_tmp15_ = NULL;
1440
data->_tmp15_ = g_file_get_child (data->dir, data->_tmp14_);
1441
data->file = data->_tmp15_;
1442
data->_tmp16_ = g_file_info_get_file_type (data->info);
1443
data->file_type = data->_tmp16_;
1456
data->_tmp15_ = g_file_info_get_content_type (data->info);
1457
data->content_type = data->_tmp15_;
1458
data->_tmp16_ = g_file_info_get_is_symlink (data->info);
1459
data->is_symlink = data->_tmp16_;
1444
1460
data->_tmp17_ = NULL;
1445
data->_tmp17_ = g_file_info_get_content_type (data->info);
1446
data->content_type = data->_tmp17_;
1447
data->_tmp18_ = g_file_info_get_is_symlink (data->info);
1448
data->is_symlink = data->_tmp18_;
1449
data->_tmp19_ = NULL;
1450
data->_tmp19_ = g_content_type_get_mime_type (data->content_type);
1451
data->mime = data->_tmp19_;
1461
data->_tmp17_ = g_content_type_get_mime_type (data->content_type);
1462
data->mime = data->_tmp17_;
1452
1463
if (data->file_type == G_FILE_TYPE_DIRECTORY) {
1453
1464
data->_state_ = 3;
1454
folks_backend_store_get_modules_from_dir (data->self, data->file, folks_backend_store_get_modules_from_dir_ready, data);
1465
_folks_backend_store_get_modules_from_dir (data->self, data->file, _folks_backend_store_get_modules_from_dir_ready, data);
1457
data->_tmp20_ = NULL;
1458
data->_tmp20_ = folks_backend_store_get_modules_from_dir_finish (data->self, data->_res_);
1459
data->modules = data->_tmp20_;
1468
data->_tmp18_ = NULL;
1469
data->_tmp18_ = _folks_backend_store_get_modules_from_dir_finish (data->self, data->_res_);
1470
data->modules = data->_tmp18_;
1472
data->_tmp19_ = NULL;
1473
data->_tmp19_ = gee_map_get_entries ((GeeMap*) data->modules);
1474
data->_tmp20_ = data->_tmp19_;
1461
1475
data->_tmp21_ = NULL;
1462
data->_tmp21_ = gee_map_get_entries ((GeeMap*) data->modules);
1463
data->_tmp22_ = data->_tmp21_;
1464
data->_tmp23_ = NULL;
1465
data->_tmp23_ = gee_iterable_iterator ((GeeIterable*) data->_tmp22_);
1466
data->_entry_it = (data->_tmp24_ = data->_tmp23_, _g_object_unref0 (data->_tmp22_), data->_tmp24_);
1476
data->_tmp21_ = gee_iterable_iterator ((GeeIterable*) data->_tmp20_);
1477
data->_entry_it = (data->_tmp22_ = data->_tmp21_, _g_object_unref0 (data->_tmp20_), data->_tmp22_);
1468
data->_tmp25_ = gee_iterator_next (data->_entry_it);
1469
if (!data->_tmp25_) {
1479
data->_tmp23_ = gee_iterator_next (data->_entry_it);
1480
if (!data->_tmp23_) {
1483
data->_tmp24_ = NULL;
1484
data->_tmp24_ = gee_iterator_get (data->_entry_it);
1485
data->entry = (GeeMapEntry*) data->_tmp24_;
1486
data->_tmp25_ = NULL;
1487
data->_tmp25_ = gee_map_entry_get_key (data->entry);
1472
1488
data->_tmp26_ = NULL;
1473
data->_tmp26_ = gee_iterator_get (data->_entry_it);
1474
data->entry = (GeeMapEntry*) data->_tmp26_;
1475
data->_tmp27_ = NULL;
1476
data->_tmp27_ = gee_map_entry_get_key (data->entry);
1477
data->_tmp28_ = NULL;
1478
data->_tmp28_ = gee_map_entry_get_value (data->entry);
1479
gee_abstract_map_set ((GeeAbstractMap*) data->modules_final, (const gchar*) data->_tmp27_, (GFile*) data->_tmp28_);
1489
data->_tmp26_ = gee_map_entry_get_value (data->entry);
1490
gee_abstract_map_set ((GeeAbstractMap*) data->modules_final, (const gchar*) data->_tmp25_, (GFile*) data->_tmp26_);
1480
1491
_g_object_unref0 (data->entry);
1482
1493
_g_object_unref0 (data->_entry_it);
1724
static void folks_backend_store_load_disabled_backend_names (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1733
static void _folks_backend_store_load_disabled_backend_names (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1725
1734
FolksBackendStoreLoadDisabledBackendNamesData* _data_;
1726
1735
_data_ = g_slice_new0 (FolksBackendStoreLoadDisabledBackendNamesData);
1727
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, folks_backend_store_load_disabled_backend_names);
1728
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, folks_backend_store_load_disabled_backend_names_data_free);
1736
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _folks_backend_store_load_disabled_backend_names);
1737
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _folks_backend_store_load_disabled_backend_names_data_free);
1729
1738
_data_->self = _g_object_ref0 (self);
1730
folks_backend_store_load_disabled_backend_names_co (_data_);
1739
_folks_backend_store_load_disabled_backend_names_co (_data_);
1734
static void folks_backend_store_load_disabled_backend_names_finish (FolksBackendStore* self, GAsyncResult* _res_) {
1743
static void _folks_backend_store_load_disabled_backend_names_finish (FolksBackendStore* self, GAsyncResult* _res_) {
1735
1744
FolksBackendStoreLoadDisabledBackendNamesData* _data_;
1736
1745
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1740
static void folks_backend_store_load_disabled_backend_names_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1749
static void _folks_backend_store_load_disabled_backend_names_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1741
1750
FolksBackendStoreLoadDisabledBackendNamesData* data;
1742
1751
data = _user_data_;
1743
1752
data->_source_object_ = source_object;
1744
1753
data->_res_ = _res_;
1745
folks_backend_store_load_disabled_backend_names_co (data);
1754
_folks_backend_store_load_disabled_backend_names_co (data);
1749
static gboolean folks_backend_store_load_disabled_backend_names_co (FolksBackendStoreLoadDisabledBackendNamesData* data) {
1758
static gboolean _folks_backend_store_load_disabled_backend_names_co (FolksBackendStoreLoadDisabledBackendNamesData* data) {
1750
1759
switch (data->_state_) {
1759
1768
data->_tmp0_ = NULL;
1760
1769
data->_tmp0_ = g_getenv ("FOLKS_BACKEND_STORE_KEY_FILE_PATH");
1761
data->_tmp1_ = g_strdup (data->_tmp0_);
1762
data->path = data->_tmp1_;
1770
data->path = data->_tmp0_;
1763
1771
if (data->path == NULL) {
1772
data->_tmp1_ = NULL;
1773
data->_tmp1_ = g_get_user_data_dir ();
1764
1774
data->_tmp2_ = NULL;
1765
data->_tmp2_ = g_get_user_data_dir ();
1766
data->_tmp3_ = NULL;
1767
data->_tmp3_ = g_file_new_for_path (data->_tmp2_);
1768
data->_tmp4_ = data->_tmp3_;
1769
_g_object_unref0 (data->file);
1770
data->file = data->_tmp4_;
1771
data->_tmp5_ = NULL;
1772
data->_tmp5_ = g_file_get_child (data->file, "folks");
1773
data->_tmp6_ = data->_tmp5_;
1774
_g_object_unref0 (data->file);
1775
data->file = data->_tmp6_;
1776
data->_tmp7_ = NULL;
1777
data->_tmp7_ = g_file_get_child (data->file, "backends.ini");
1778
data->_tmp8_ = data->_tmp7_;
1779
_g_object_unref0 (data->file);
1780
data->file = data->_tmp8_;
1781
data->_tmp9_ = NULL;
1782
data->_tmp9_ = g_file_get_path (data->file);
1783
data->_tmp10_ = data->_tmp9_;
1784
g_debug ("Using built-in backends key file '%s' (override with " "environment variable FOLKS_BACKEND_STORE_KEY_FILE_PATH)", data->_tmp10_);
1785
_g_free0 (data->_tmp10_);
1775
data->_tmp2_ = g_file_new_for_path (data->_tmp1_);
1776
data->_tmp3_ = data->_tmp2_;
1777
_g_object_unref0 (data->file);
1778
data->file = data->_tmp3_;
1779
data->_tmp4_ = NULL;
1780
data->_tmp4_ = g_file_get_child (data->file, "folks");
1781
data->_tmp5_ = data->_tmp4_;
1782
_g_object_unref0 (data->file);
1783
data->file = data->_tmp5_;
1784
data->_tmp6_ = NULL;
1785
data->_tmp6_ = g_file_get_child (data->file, "backends.ini");
1786
data->_tmp7_ = data->_tmp6_;
1787
_g_object_unref0 (data->file);
1788
data->file = data->_tmp7_;
1789
data->_tmp8_ = NULL;
1790
data->_tmp8_ = g_file_get_path (data->file);
1791
data->_tmp9_ = data->_tmp8_;
1792
g_debug ("Using built-in backends key file '%s' (override with " "environment variable FOLKS_BACKEND_STORE_KEY_FILE_PATH)", data->_tmp9_);
1793
_g_free0 (data->_tmp9_);
1787
data->_tmp11_ = NULL;
1788
data->_tmp11_ = g_file_new_for_path (data->path);
1789
data->_tmp12_ = data->_tmp11_;
1795
data->_tmp10_ = NULL;
1796
data->_tmp10_ = g_file_new_for_path (data->path);
1797
data->_tmp11_ = data->_tmp10_;
1790
1798
_g_object_unref0 (data->file);
1791
data->file = data->_tmp12_;
1799
data->file = data->_tmp11_;
1792
1800
g_debug ("Using environment variable " "FOLKS_BACKEND_STORE_KEY_FILE_PATH = '%s' to load the backends " "key file.", data->path);
1794
data->_tmp13_ = _g_object_ref0 (data->file);
1795
data->_tmp14_ = data->_tmp13_;
1796
_g_object_unref0 (data->self->priv->config_file);
1797
data->self->priv->config_file = data->_tmp14_;
1798
data->_tmp15_ = NULL;
1799
data->_tmp15_ = g_key_file_new ();
1800
data->_tmp16_ = data->_tmp15_;
1801
_g_key_file_free0 (data->self->priv->backends_key_file);
1802
data->self->priv->backends_key_file = data->_tmp16_;
1802
data->_tmp12_ = _g_object_ref0 (data->file);
1803
data->_tmp13_ = data->_tmp12_;
1804
_g_object_unref0 (data->self->priv->_config_file);
1805
data->self->priv->_config_file = data->_tmp13_;
1806
data->_tmp14_ = NULL;
1807
data->_tmp14_ = g_key_file_new ();
1808
data->_tmp15_ = data->_tmp14_;
1809
_g_key_file_free0 (data->self->priv->_backends_key_file);
1810
data->self->priv->_backends_key_file = data->_tmp15_;
1803
1811
data->contents = NULL;
1804
1812
data->length = (gsize) 0;
1805
data->_tmp17_ = NULL;
1813
data->_tmp16_ = NULL;
1806
1814
data->_state_ = 1;
1807
g_file_load_contents_async (data->file, NULL, folks_backend_store_load_disabled_backend_names_ready, data);
1815
g_file_load_contents_async (data->file, NULL, _folks_backend_store_load_disabled_backend_names_ready, data);
1810
g_file_load_contents_finish (data->file, data->_res_, &data->_tmp17_, &data->_tmp18_, NULL, &data->_inner_error_);
1818
g_file_load_contents_finish (data->file, data->_res_, &data->_tmp16_, &data->_tmp17_, NULL, &data->_inner_error_);
1811
1819
_g_free0 (data->contents);
1812
data->contents = data->_tmp17_;
1813
data->length = data->_tmp18_;
1820
data->contents = data->_tmp16_;
1821
data->length = data->_tmp17_;
1814
1822
if (data->_inner_error_ != NULL) {
1815
1823
_g_free0 (data->contents);
1816
1824
goto __catch5_g_error;
1818
1826
if (data->length > 0) {
1819
g_key_file_load_from_data (data->self->priv->backends_key_file, data->contents, data->length, G_KEY_FILE_KEEP_COMMENTS, &data->_inner_error_);
1827
g_key_file_load_from_data (data->self->priv->_backends_key_file, data->contents, data->length, G_KEY_FILE_KEEP_COMMENTS, &data->_inner_error_);
1820
1828
if (data->_inner_error_ != NULL) {
1821
1829
_g_free0 (data->contents);
1822
1830
goto __catch5_g_error;
1879
static void folks_backend_store_save_key_file (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1884
static void _folks_backend_store_save_key_file (FolksBackendStore* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1880
1885
FolksBackendStoreSaveKeyFileData* _data_;
1881
1886
_data_ = g_slice_new0 (FolksBackendStoreSaveKeyFileData);
1882
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, folks_backend_store_save_key_file);
1883
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, folks_backend_store_save_key_file_data_free);
1887
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _folks_backend_store_save_key_file);
1888
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _folks_backend_store_save_key_file_data_free);
1884
1889
_data_->self = _g_object_ref0 (self);
1885
folks_backend_store_save_key_file_co (_data_);
1890
_folks_backend_store_save_key_file_co (_data_);
1889
static void folks_backend_store_save_key_file_finish (FolksBackendStore* self, GAsyncResult* _res_) {
1894
static void _folks_backend_store_save_key_file_finish (FolksBackendStore* self, GAsyncResult* _res_) {
1890
1895
FolksBackendStoreSaveKeyFileData* _data_;
1891
1896
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1895
static void folks_backend_store_save_key_file_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1900
static void _folks_backend_store_save_key_file_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1896
1901
FolksBackendStoreSaveKeyFileData* data;
1897
1902
data = _user_data_;
1898
1903
data->_source_object_ = source_object;
1899
1904
data->_res_ = _res_;
1900
folks_backend_store_save_key_file_co (data);
1905
_folks_backend_store_save_key_file_co (data);
1904
static gboolean folks_backend_store_save_key_file_co (FolksBackendStoreSaveKeyFileData* data) {
1909
static gboolean _folks_backend_store_save_key_file_co (FolksBackendStoreSaveKeyFileData* data) {
1905
1910
switch (data->_state_) {