summaryrefslogtreecommitdiff
path: root/src/libtracker-sparql/tracker-resource.h
blob: 61e1268119fc63f126a701de48f0e690def826e6 (plain)
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
/*
 * Copyright (C) 2016, Sam Thursfield <sam@afuera.me.uk>
 *
 * 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_RESOURCE_H__
#define __LIBTRACKER_RESOURCE_H__

#include <glib-object.h>
#include <libtracker-sparql/tracker-enums.h>
#include <libtracker-sparql/tracker-version.h>
#include <libtracker-sparql/tracker-namespace-manager.h>

G_BEGIN_DECLS

#define TRACKER_TYPE_RESOURCE tracker_resource_get_type()
TRACKER_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE (TrackerResource, tracker_resource, TRACKER, RESOURCE, GObject)

TRACKER_AVAILABLE_IN_ALL
TrackerResource *tracker_resource_new (const char *identifier);

TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_gvalue (TrackerResource *self, const char *property_uri, const GValue *value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_boolean (TrackerResource *self, const char *property_uri, gboolean value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_double (TrackerResource *self, const char *property_uri, double value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_int (TrackerResource *self, const char *property_uri, int value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_int64 (TrackerResource *self, const char *property_uri, gint64 value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_relation (TrackerResource *self, const char *property_uri, TrackerResource *resource);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_take_relation (TrackerResource *self, const char *property_uri, TrackerResource *resource);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_string (TrackerResource *self, const char *property_uri, const char *value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_uri (TrackerResource *self, const char *property_uri, const char *value);
TRACKER_AVAILABLE_IN_3_2
void tracker_resource_set_datetime (TrackerResource *self, const char *property_uri, GDateTime *value);

TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_gvalue (TrackerResource *self, const char *property_uri, const GValue *value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_boolean (TrackerResource *self, const char *property_uri, gboolean value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_double (TrackerResource *self, const char *property_uri, double value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_int (TrackerResource *self, const char *property_uri, int value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_int64 (TrackerResource *self, const char *property_uri, gint64 value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_relation (TrackerResource *self, const char *property_uri, TrackerResource *resource);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_take_relation (TrackerResource *self, const char *property_uri, TrackerResource *resource);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_string (TrackerResource *self, const char *property_uri, const char *value);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_add_uri (TrackerResource *self, const char *property_uri, const char *value);
TRACKER_AVAILABLE_IN_3_2
void tracker_resource_add_datetime (TrackerResource *self, const char *property_uri, GDateTime *value);

TRACKER_AVAILABLE_IN_ALL
GList *tracker_resource_get_values (TrackerResource *self, const char *property_uri);

TRACKER_AVAILABLE_IN_ALL
gboolean tracker_resource_get_first_boolean (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_ALL
double tracker_resource_get_first_double (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_ALL
int tracker_resource_get_first_int (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_ALL
gint64 tracker_resource_get_first_int64 (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_ALL
TrackerResource *tracker_resource_get_first_relation (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_ALL
const char *tracker_resource_get_first_string (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_ALL
const char *tracker_resource_get_first_uri (TrackerResource *self, const char *property_uri);
TRACKER_AVAILABLE_IN_3_2
GDateTime *tracker_resource_get_first_datetime (TrackerResource *self, const char *property_uri);

TRACKER_AVAILABLE_IN_ALL
const char *tracker_resource_get_identifier (TrackerResource *self);
TRACKER_AVAILABLE_IN_ALL
void tracker_resource_set_identifier (TrackerResource *self, const char *identifier);
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_DEPRECATED_IN_3_4_FOR(tracker_resource_print_rdf)
char *tracker_resource_print_turtle(TrackerResource *self, TrackerNamespaceManager *namespaces);

TRACKER_AVAILABLE_IN_ALL
char *tracker_resource_print_sparql_update (TrackerResource *self, TrackerNamespaceManager *namespaces, const char *graph_id);

TRACKER_DEPRECATED_IN_3_5_FOR(tracker_resource_print_rdf)
char *tracker_resource_print_jsonld (TrackerResource *self, TrackerNamespaceManager *namespaces);

TRACKER_AVAILABLE_IN_3_4
char * tracker_resource_print_rdf (TrackerResource         *self,
                                   TrackerNamespaceManager *namespaces,
                                   TrackerRdfFormat         format,
                                   const gchar             *graph);

TRACKER_AVAILABLE_IN_ALL
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__ */