diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-11-22 12:07:59 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-11-27 00:14:06 +0100 |
commit | d42a31b77ff42e01553e29a7c4210c7e483f5828 (patch) | |
tree | cae1d2f91016f5a2b4c33d512e907cf3cee69487 | |
parent | dddb0c97d9b102264e54ac65aedf89b0f11daed6 (diff) | |
download | tracker-d42a31b77ff42e01553e29a7c4210c7e483f5828.tar.gz |
libtracker-sparql: Add tracker_resource_get_property_overwrite()
This function returns whether the given property would be overwritten
entirely in the issued SPARQL. We need this to be able to fully introspect
a TrackerResource in a way that we can bypass SPARQL.
-rw-r--r-- | docs/reference/libtracker-sparql/libtracker-sparql-sections.txt | 1 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-resource.c | 21 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-resource.h | 3 |
3 files changed, 25 insertions, 0 deletions
diff --git a/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt b/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt index 0054c0f58..495859130 100644 --- a/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt +++ b/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt @@ -47,6 +47,7 @@ tracker_resource_get_first_uri tracker_resource_get_identifier tracker_resource_get_values tracker_resource_get_properties +tracker_resource_get_property_overwrite tracker_resource_identifier_compare_func tracker_resource_print_sparql_update tracker_resource_print_turtle diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c index 4c4c0fc42..480f0d9ed 100644 --- a/src/libtracker-sparql/tracker-resource.c +++ b/src/libtracker-sparql/tracker-resource.c @@ -2010,3 +2010,24 @@ tracker_resource_deserialize (GVariant *variant) return resource; } + +/** + * tracker_resource_get_property_overwrite: + * @resource: a #TrackerResource + * @property_uri: a string identifying the property to query + * + * Returns whether the prior values for this property would be deleted + * in the SPARQL issued by @resource. + * + * Returns: #TRUE if the property would be overwritten + * + * Since: 3.1 + **/ +gboolean +tracker_resource_get_property_overwrite (TrackerResource *resource, + const gchar *property_uri) +{ + TrackerResourcePrivate *priv = GET_PRIVATE (resource); + + return g_hash_table_contains (priv->overwrite, property_uri); +} diff --git a/src/libtracker-sparql/tracker-resource.h b/src/libtracker-sparql/tracker-resource.h index 171834449..f975c757c 100644 --- a/src/libtracker-sparql/tracker-resource.h +++ b/src/libtracker-sparql/tracker-resource.h @@ -114,6 +114,9 @@ GVariant * tracker_resource_serialize (TrackerResource *resource); TRACKER_AVAILABLE_IN_ALL TrackerResource * tracker_resource_deserialize (GVariant *variant); +TRACKER_AVAILABLE_IN_3_1 +gboolean tracker_resource_get_property_overwrite (TrackerResource *resource, const gchar *property_uri); + G_END_DECLS #endif /* __LIBTRACKER_RESOURCE_H__ */ |