[tepl] MetadataStore: add is_loading() private function
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] MetadataStore: add is_loading() private function
- Date: Sat, 18 Apr 2020 17:18:56 +0000 (UTC)
commit d7c1d70a3bfece7a70864db18de6a37c1999365f
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed Apr 15 21:40:28 2020 +0200
MetadataStore: add is_loading() private function
tepl/tepl-metadata-store.c | 14 ++++++++++++++
tepl/tepl-metadata-store.h | 3 +++
2 files changed, 17 insertions(+)
---
diff --git a/tepl/tepl-metadata-store.c b/tepl/tepl-metadata-store.c
index 7411a2c..4d43437 100644
--- a/tepl/tepl-metadata-store.c
+++ b/tepl/tepl-metadata-store.c
@@ -93,6 +93,7 @@ struct _TeplMetadataStorePrivate
guint max_number_of_locations;
guint is_loaded : 1;
+ guint is_loading : 1;
guint modified : 1;
};
@@ -741,9 +742,12 @@ _tepl_metadata_store_load_async (TeplMetadataStore *store,
g_return_if_fail (TEPL_IS_METADATA_STORE (store));
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
+ g_return_if_fail (!_tepl_metadata_store_is_loading (store));
g_return_if_fail (!_tepl_metadata_store_is_loaded (store));
g_return_if_fail (store->priv->xml_file != NULL);
+ store->priv->is_loading = TRUE;
+
task = g_task_new (store, cancellable, callback, user_data);
g_task_set_priority (task, io_priority);
@@ -777,14 +781,24 @@ _tepl_metadata_store_load_finish (TeplMetadataStore *store,
g_return_val_if_fail (TEPL_IS_METADATA_STORE (store), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_task_is_valid (result, store), FALSE);
+ g_return_val_if_fail (_tepl_metadata_store_is_loading (store), FALSE);
g_return_val_if_fail (!_tepl_metadata_store_is_loaded (store), FALSE);
+ store->priv->is_loading = FALSE;
store->priv->is_loaded = TRUE;
g_object_notify_by_pspec (G_OBJECT (store), properties[PROP_LOADED]);
return g_task_propagate_boolean (G_TASK (result), error);
}
+gboolean
+_tepl_metadata_store_is_loading (TeplMetadataStore *store)
+{
+ g_return_val_if_fail (TEPL_IS_METADATA_STORE (store), FALSE);
+
+ return store->priv->is_loading;
+}
+
/*
* _tepl_metadata_store_is_loaded:
* @store: the #TeplMetadataStore.
diff --git a/tepl/tepl-metadata-store.h b/tepl/tepl-metadata-store.h
index 44145bc..e8d5521 100644
--- a/tepl/tepl-metadata-store.h
+++ b/tepl/tepl-metadata-store.h
@@ -85,6 +85,9 @@ gboolean _tepl_metadata_store_load_finish (TeplMetadataStore
*store,
GAsyncResult *result,
GError **error);
+G_GNUC_INTERNAL
+gboolean _tepl_metadata_store_is_loading (TeplMetadataStore *store);
+
G_GNUC_INTERNAL
gboolean _tepl_metadata_store_is_loaded (TeplMetadataStore *store);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]