Sord
0.8.0
Main Page
Modules
sord
sord.h
1
/*
2
Copyright 2011-2012 David Robillard <http://drobilla.net>
3
4
Permission to use, copy, modify, and/or distribute this software for any
5
purpose with or without fee is hereby granted, provided that the above
6
copyright notice and this permission notice appear in all copies.
7
8
THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
*/
16
21
#ifndef SORD_SORD_H
22
#define SORD_SORD_H
23
24
#include <stddef.h>
25
#include <stdint.h>
26
#include <stdio.h>
27
28
#include "serd/serd.h"
29
30
#ifdef SORD_SHARED
31
# ifdef _WIN32
32
# define SORD_LIB_IMPORT __declspec(dllimport)
33
# define SORD_LIB_EXPORT __declspec(dllexport)
34
# else
35
# define SORD_LIB_IMPORT __attribute__((visibility("default")))
36
# define SORD_LIB_EXPORT __attribute__((visibility("default")))
37
# endif
38
# ifdef SORD_INTERNAL
39
# define SORD_API SORD_LIB_EXPORT
40
# else
41
# define SORD_API SORD_LIB_IMPORT
42
# endif
43
#else
44
# define SORD_API
45
#endif
46
47
#ifdef __cplusplus
48
extern
"C"
{
49
#else
50
# include <stdbool.h>
51
#endif
52
66
typedef
struct
SordWorldImpl
SordWorld
;
67
75
typedef
struct
SordModelImpl
SordModel
;
76
84
typedef
struct
SordInserterImpl
SordInserter
;
85
89
typedef
struct
SordIterImpl
SordIter
;
90
97
typedef
struct
SordNodeImpl
SordNode
;
98
104
typedef
const
SordNode
*
SordQuad
[4];
105
109
typedef
enum
{
110
SORD_SUBJECT
= 0,
111
SORD_PREDICATE
= 1,
112
SORD_OBJECT
= 2,
113
SORD_GRAPH
= 3
114
}
SordQuadIndex
;
115
119
typedef
enum
{
120
SORD_URI
= 1,
121
SORD_BLANK
= 2,
122
SORD_LITERAL
= 3
123
}
SordNodeType
;
124
128
typedef
enum
{
129
SORD_SPO
= 1,
130
SORD_SOP
= 1 << 1,
131
SORD_OPS
= 1 << 2,
132
SORD_OSP
= 1 << 3,
133
SORD_PSO
= 1 << 4,
134
SORD_POS
= 1 << 5
135
}
SordIndexOption
;
136
148
SORD_API
149
SordWorld
*
150
sord_world_new
(
void
);
151
155
SORD_API
156
void
157
sord_world_free
(
SordWorld
* world);
158
171
SORD_API
172
SordNode
*
173
sord_new_uri
(
SordWorld
* world,
const
uint8_t* uri);
174
178
SORD_API
179
SordNode
*
180
sord_new_relative_uri
(
SordWorld
* world,
181
const
uint8_t* str,
182
const
uint8_t* base_uri);
183
190
SORD_API
191
SordNode
*
192
sord_new_blank
(
SordWorld
* world,
const
uint8_t* str);
193
200
SORD_API
201
SordNode
*
202
sord_new_literal
(
SordWorld
* world,
203
SordNode
* datatype,
204
const
uint8_t* str,
205
const
char
* lang);
206
213
SORD_API
214
SordNode
*
215
sord_node_copy
(
const
SordNode
* node);
216
220
SORD_API
221
void
222
sord_node_free
(
SordWorld
* world,
SordNode
* node);
223
227
SORD_API
228
SordNodeType
229
sord_node_get_type
(
const
SordNode
* node);
230
234
SORD_API
235
const
uint8_t*
236
sord_node_get_string
(
const
SordNode
* node);
237
241
SORD_API
242
const
uint8_t*
243
sord_node_get_string_counted
(
const
SordNode
* node,
size_t
* len);
244
248
SORD_API
249
const
char
*
250
sord_node_get_language
(
const
SordNode
* node);
251
255
SORD_API
256
SordNode
*
257
sord_node_get_datatype
(
const
SordNode
* node);
258
262
SORD_API
263
SerdNodeFlags
264
sord_node_get_flags
(
const
SordNode
* node);
265
273
SORD_API
274
bool
275
sord_node_is_inline_object
(
const
SordNode
* node);
276
282
SORD_API
283
bool
284
sord_node_equals
(
const
SordNode
* a,
285
const
SordNode
* b);
286
292
SORD_API
293
const
SerdNode*
294
sord_node_to_serd_node
(
const
SordNode
* node);
295
301
SORD_API
302
SordNode
*
303
sord_node_from_serd_node
(
SordWorld
* world,
304
SerdEnv* env,
305
const
SerdNode* node,
306
const
SerdNode* datatype,
307
const
SerdNode* lang);
308
326
SORD_API
327
SordModel
*
328
sord_new
(
SordWorld
* world,
329
unsigned
indices,
330
bool
graphs);
331
335
SORD_API
336
void
337
sord_free
(
SordModel
* model);
338
342
SORD_API
343
SordWorld
*
344
sord_get_world
(
SordModel
* model);
345
351
SORD_API
352
size_t
353
sord_num_nodes
(
const
SordWorld
* world);
354
358
SORD_API
359
size_t
360
sord_num_quads
(
const
SordModel
* model);
361
365
SORD_API
366
SordIter
*
367
sord_begin
(
const
SordModel
* model);
368
373
SORD_API
374
SordIter
*
375
sord_find
(
SordModel
* model,
const
SordQuad pat);
376
381
SORD_API
382
SordIter
*
383
sord_search
(
SordModel
* model,
384
const
SordNode
* s,
385
const
SordNode
* p,
386
const
SordNode
* o,
387
const
SordNode
* g);
388
392
SORD_API
393
bool
394
sord_ask
(
SordModel
* model,
395
const
SordNode
* s,
396
const
SordNode
* p,
397
const
SordNode
* o,
398
const
SordNode
* g);
399
403
SORD_API
404
uint64_t
405
sord_count
(
SordModel
* model,
406
const
SordNode
* s,
407
const
SordNode
* p,
408
const
SordNode
* o,
409
const
SordNode
* g);
410
414
SORD_API
415
bool
416
sord_contains
(
SordModel
* model,
const
SordQuad pat);
417
421
SORD_API
422
bool
423
sord_add
(
SordModel
* model,
const
SordQuad quad);
424
430
SORD_API
431
void
432
sord_remove
(
SordModel
* model,
const
SordQuad quad);
433
443
SORD_API
444
SordInserter
*
445
sord_inserter_new
(
SordModel
* model,
446
SerdEnv* env);
447
451
SORD_API
452
void
453
sord_inserter_free
(
SordInserter
* inserter);
454
460
SORD_API
461
SerdStatus
462
sord_inserter_set_base_uri
(
SordInserter
* inserter,
463
const
SerdNode* uri);
464
470
SORD_API
471
SerdStatus
472
sord_inserter_set_prefix
(
SordInserter
* inserter,
473
const
SerdNode* name,
474
const
SerdNode* uri);
475
481
SORD_API
482
SerdStatus
483
sord_inserter_write_statement
(
SordInserter
* inserter,
484
SerdStatementFlags flags,
485
const
SerdNode* graph,
486
const
SerdNode* subject,
487
const
SerdNode* predicate,
488
const
SerdNode*
object
,
489
const
SerdNode* object_datatype,
490
const
SerdNode* object_lang);
491
501
SORD_API
502
void
503
sord_iter_get
(
const
SordIter
* iter, SordQuad quad);
504
508
SORD_API
509
const
SordNode
*
510
sord_iter_get_node
(
const
SordIter
* iter,
SordQuadIndex
index);
511
515
SORD_API
516
const
SordModel
*
517
sord_iter_get_model
(
SordIter
* iter);
518
522
SORD_API
523
bool
524
sord_iter_next
(
SordIter
* iter);
525
529
SORD_API
530
bool
531
sord_iter_end
(
const
SordIter
* iter);
532
536
SORD_API
537
void
538
sord_iter_free
(
SordIter
* iter);
539
553
SORD_API
554
bool
555
sord_quad_match
(
const
SordQuad x,
const
SordQuad y);
556
566
SORD_API
567
SerdReader*
568
sord_new_reader
(
SordModel
* model,
569
SerdEnv* env,
570
SerdSyntax syntax,
571
SordNode
* graph);
572
576
SORD_API
577
bool
578
sord_write
(
SordModel
* model,
579
SerdWriter* writer,
580
SordNode
* graph);
581
587
SORD_API
588
bool
589
sord_write_iter
(
SordIter
* iter,
590
SerdWriter* writer);
591
597
#ifdef __cplusplus
598
}
/* extern "C" */
599
#endif
600
601
#endif
/* SORD_SORD_H */
Generated on Thu Mar 20 2014 11:43:09 for Sord by
1.8.1.2