summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2020-05-20 22:05:11 +0000
committerSam Thursfield <sam@afuera.me.uk>2020-05-20 22:05:11 +0000
commit5a013fc1612d10731ce7dbfcd897c80e05178a51 (patch)
treec67290014bcc141a42ed67ab4ba333b00eb46e5f
parentedc7cd116c3a6dc14cab6f695373b0ab45ae829d (diff)
parent64c2e2ae9503ee25132139dbcd4c8edd80ac5280 (diff)
downloadtracker-5a013fc1612d10731ce7dbfcd897c80e05178a51.tar.gz
Merge branch 'wip/carlosg/writeback-refactor' into 'master'
libtracker-sparql: Add API call to list TrackerResource properties See merge request GNOME/tracker!252
-rw-r--r--src/libtracker-sparql/tracker-resource.c27
-rw-r--r--src/libtracker-sparql/tracker-resource.h3
2 files changed, 28 insertions, 2 deletions
diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c
index 26b2d00a8..f7d75996f 100644
--- a/src/libtracker-sparql/tracker-resource.c
+++ b/src/libtracker-sparql/tracker-resource.c
@@ -692,8 +692,8 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_uri, const char *, TRACKER_TYPE_URI
*
* Returns the list of all known values of the given property.
*
- * Returns: (transfer full) (element-type GValue): a #GList of #GValue
- * instances, which must be freed by the caller.
+ * Returns: (transfer container) (element-type GValue): a #GList of #GValue
+ * instances. The list should be freed with g_list_free()
*
* Since: 1.10
*/
@@ -963,6 +963,29 @@ tracker_resource_compare (TrackerResource *a,
return strcmp (a_priv->identifier, b_priv->identifier);
};
+/**
+ * tracker_resource_get_properties:
+ * @resource: a #TrackerResource
+ *
+ * Gets the list of properties defined in @resource
+ *
+ * Returns: (transfer container) (element-type utf8): The list of properties.
+ * The list should be freed with g_list_free().
+ *
+ * Since: 3.0
+ **/
+GList *
+tracker_resource_get_properties (TrackerResource *resource)
+{
+ TrackerResourcePrivate *priv;
+
+ g_return_val_if_fail (TRACKER_IS_RESOURCE (resource), NULL);
+
+ priv = GET_PRIVATE (resource);
+
+ return g_hash_table_get_keys (priv->properties);
+}
+
/* Helper function for serialization code. This allows you to selectively
* populate 'interned_namespaces' from 'all_namespaces' based on when a
* particular prefix is actually used. This is quite inefficient compared
diff --git a/src/libtracker-sparql/tracker-resource.h b/src/libtracker-sparql/tracker-resource.h
index 85a110389..fcc36b3ed 100644
--- a/src/libtracker-sparql/tracker-resource.h
+++ b/src/libtracker-sparql/tracker-resource.h
@@ -97,6 +97,9 @@ TRACKER_AVAILABLE_IN_ALL
gint tracker_resource_identifier_compare_func (TrackerResource *resource, const char *identifier);
TRACKER_AVAILABLE_IN_ALL
+GList *tracker_resource_get_properties (TrackerResource *resource);
+
+TRACKER_AVAILABLE_IN_ALL
char *tracker_resource_print_turtle(TrackerResource *self, TrackerNamespaceManager *namespaces);
TRACKER_AVAILABLE_IN_ALL