summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2022-12-03 23:03:17 +0100
committerCarlos Garnacho <carlosg@gnome.org>2022-12-24 01:14:41 +0100
commit0ae0c7b5b2a01df58b6b4d5a3e6c8319a1838eaf (patch)
treec0eb0b6dbbe3bd594ad61e8756c643bbbfc72200 /src
parentcb4a150235fe2192301b3c481f3062ad6e6bdd7a (diff)
downloadtracker-0ae0c7b5b2a01df58b6b4d5a3e6c8319a1838eaf.tar.gz
libtracker-sparql: Add private class vmethods for update statements
We want to make TrackerSparqlStatement usable for updates, add the vmethods that will internally do the work. Besides creation and execution of individual update statements, also add a TrackerBatch vmethod so that a statement (plus a series of bound parameters) can be attached to them.
Diffstat (limited to 'src')
-rw-r--r--src/libtracker-sparql/tracker-private.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libtracker-sparql/tracker-private.h b/src/libtracker-sparql/tracker-private.h
index d6263621b..3aa303b34 100644
--- a/src/libtracker-sparql/tracker-private.h
+++ b/src/libtracker-sparql/tracker-private.h
@@ -80,6 +80,10 @@ struct _TrackerSparqlConnectionClass
const gchar *sparql,
GCancellable *cancellable,
GError **error);
+ TrackerSparqlStatement * (* update_statement) (TrackerSparqlConnection *connection,
+ const gchar *sparql,
+ GCancellable *cancellable,
+ GError **error);
TrackerNotifier * (* create_notifier) (TrackerSparqlConnection *connection);
void (* close) (TrackerSparqlConnection *connection);
@@ -259,6 +263,17 @@ struct _TrackerSparqlStatementClass
GInputStream * (* serialize_finish) (TrackerSparqlStatement *stmt,
GAsyncResult *res,
GError **error);
+
+ gboolean (* update) (TrackerSparqlStatement *stmt,
+ GCancellable *cancellable,
+ GError **error);
+ void (* update_async) (TrackerSparqlStatement *stmt,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* update_finish) (TrackerSparqlStatement *stmt,
+ GAsyncResult *res,
+ GError **error);
};
struct _TrackerNotifierClass {
@@ -276,6 +291,11 @@ struct _TrackerBatchClass {
void (* add_resource) (TrackerBatch *batch,
const gchar *graph,
TrackerResource *resource);
+ void (* add_statement) (TrackerBatch *batch,
+ TrackerSparqlStatement *stmt,
+ guint n_values,
+ const gchar *variable_names[],
+ const GValue values[]);
gboolean (* execute) (TrackerBatch *batch,
GCancellable *cancellable,
GError **error);