1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
/*
* Copyright (C) 2006, Jamie McCracken <jamiemcc@gnome.org>
* Copyright (C) 2008, Nokia <ivan.frade@nokia.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __LIBTRACKER_DATA_UPDATE_H__
#define __LIBTRACKER_DATA_UPDATE_H__
#if !defined (__LIBTRACKER_DATA_INSIDE__) && !defined (TRACKER_COMPILATION)
#error "only <libtracker-data/tracker-data.h> must be included directly."
#endif
#include <glib.h>
#include <gio/gio.h>
G_BEGIN_DECLS
typedef struct _TrackerData TrackerData;
typedef struct _TrackerDataClass TrackerDataClass;
#include "tracker-db-interface.h"
#include "tracker-data-manager.h"
#define TRACKER_TYPE_DATA (tracker_data_get_type ())
#define TRACKER_DATA(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TRACKER_TYPE_DATA, TrackerData))
#define TRACKER_DATA_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TRACKER_TYPE_DATA, TrackerDataClass))
#define TRACKER_IS_DATA(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TRACKER_TYPE_DATA))
#define TRACKER_IS_DATA_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TRACKER_TYPE_DATA))
#define TRACKER_DATA_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TRACKER_TYPE_DATA, TrackerDataClass))
typedef struct _TrackerData TrackerData;
typedef struct _TrackerDataClass TrackerDataClass;
typedef struct _TrackerData TrackerData;
typedef struct _TrackerData TrackerDataUpdate;
typedef void (*TrackerStatementCallback) (gint graph_id,
const gchar *graph,
gint subject_id,
const gchar *subject,
gint predicate_id,
gint object_id,
const gchar *object,
GPtrArray *rdf_types,
gpointer user_data);
typedef void (*TrackerCommitCallback) (gpointer user_data);
GQuark tracker_data_error_quark (void);
/* Metadata */
void tracker_data_delete_statement (TrackerData *data,
const gchar *graph,
const gchar *subject,
const gchar *predicate,
GBytes *object,
GError **error);
void tracker_data_insert_statement (TrackerData *data,
const gchar *graph,
const gchar *subject,
const gchar *predicate,
GBytes *object,
GError **error);
void tracker_data_update_statement (TrackerData *data,
const gchar *graph,
const gchar *subject,
const gchar *predicate,
GBytes *object,
GError **error);
void tracker_data_begin_transaction (TrackerData *data,
GError **error);
void tracker_data_begin_ontology_transaction (TrackerData *data,
GError **error);
void tracker_data_commit_transaction (TrackerData *data,
GError **error);
void tracker_data_rollback_transaction (TrackerData *data);
void tracker_data_update_sparql (TrackerData *data,
const gchar *update,
GError **error);
GVariant *
tracker_data_update_sparql_blank (TrackerData *data,
const gchar *update,
GError **error);
void tracker_data_update_buffer_flush (TrackerData *data,
GError **error);
void tracker_data_update_buffer_might_flush (TrackerData *data,
GError **error);
void tracker_data_load_turtle_file (TrackerData *data,
GFile *file,
const gchar *graph,
GError **error);
gint tracker_data_ensure_graph (TrackerData *data,
const gchar *name,
GError **error);
gboolean tracker_data_delete_graph (TrackerData *data,
const gchar *uri,
GError **error);
/* Calling back */
void tracker_data_add_insert_statement_callback (TrackerData *data,
TrackerStatementCallback callback,
gpointer user_data);
void tracker_data_add_delete_statement_callback (TrackerData *data,
TrackerStatementCallback callback,
gpointer user_data);
void tracker_data_add_commit_statement_callback (TrackerData *data,
TrackerCommitCallback callback,
gpointer user_data);
void tracker_data_add_rollback_statement_callback (TrackerData *data,
TrackerCommitCallback callback,
gpointer user_data);
void tracker_data_remove_insert_statement_callback (TrackerData *data,
TrackerStatementCallback callback,
gpointer user_data);
void tracker_data_remove_delete_statement_callback (TrackerData *data,
TrackerStatementCallback callback,
gpointer user_data);
void tracker_data_remove_commit_statement_callback (TrackerData *data,
TrackerCommitCallback callback,
gpointer user_data);
void tracker_data_remove_rollback_statement_callback (TrackerData *data,
TrackerCommitCallback callback,
gpointer user_data);
gboolean tracker_data_update_resource (TrackerData *data,
const gchar *graph,
TrackerResource *resource,
GHashTable *bnodes,
GError **error);
gint tracker_data_update_ensure_resource (TrackerData *data,
const gchar *uri,
gboolean *create);
gchar * tracker_data_update_ensure_new_bnode (TrackerData *data,
TrackerDBInterface *iface,
GError **error);
GType tracker_data_get_type (void) G_GNUC_CONST;
TrackerData * tracker_data_new (TrackerDataManager *manager);
G_END_DECLS
#endif /* __LIBTRACKER_DATA_UPDATE_H__ */
|