File: Redland.i

package info (click to toggle)
redland 1.0.10-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 8,860 kB
  • ctags: 4,138
  • sloc: ansic: 37,655; xml: 11,761; sh: 10,864; perl: 1,972; makefile: 525
file content (430 lines) | stat: -rw-r--r-- 20,534 bytes parent folder | download
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
/* -*- Mode: c; c-basic-offset: 2 -*-
 *
 * Redland.i - SWIG interface file for interfaces to Redland
 *
 * Copyright (C) 2000-2008 David Beckett http://www.dajobe.org/
 * Copyright (C) 2000-2005 University of Bristol, UK http://www.bristol.ac.uk/
 * 
 * This package is Free Software and part of Redland http://librdf.org/
 * 
 * It is licensed under the following three licenses as alternatives:
 *   1. GNU Lesser General Public License (LGPL) V2.1 or any newer version
 *   2. GNU General Public License (GPL) V2 or any newer version
 *   3. Apache License, V2.0 or any newer version
 * 
 * You may not use this file except in compliance with at least one of
 * the above three licenses.
 * 
 * See LICENSE.html or LICENSE.txt at the top of this package for the
 * complete terms and further detail along with the license texts for
 * the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively.
 * 
 * 
 */

%module Redland
%include typemaps.i

#ifdef REDLAND_TYPEMAP_I
%include <redland-typemap.i>
#endif

%{

/* compile-time include (inside a % ... % block) */
#ifdef REDLAND_PRE_I
#include <redland-pre.i>
#endif

#include <redland.h>

/* 
 * Thanks to the patch in this Debian bug for the solution
 * to the crash inside vsnprintf on some architectures.
 *
 * "reuse of args inside the while(1) loop is in violation of the
 * specs and only happens to work by accident on other systems."
 *
 * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=104325 
 */

#ifndef va_copy
#ifdef __va_copy
#define va_copy(dest,src) __va_copy(dest,src)
#else
#define va_copy(dest,src) (dest) = (src)
#endif
#endif

/* compile-time include (inside a % ... % block) */
#ifdef REDLAND_POST_I
#include <redland-post.i>
#endif

/* Internal prototypes */
/* FOR TESTING ERRORS ONLY - NOT PART OF API */
void librdf_internal_test_error(librdf_world *world);
void librdf_internal_test_warning(librdf_world *world);


/* prototypes for internal routines called below - NOT PART OF API */
void librdf_test_error(librdf_world* world, const char* message);
void librdf_test_warning(librdf_world* world, const char* message);

/* FOR TESTING ERRORS ONLY - NOT PART OF API */
void
librdf_internal_test_error(librdf_world *world) 
{
  librdf_test_error(world, "test error message number 1.");
}

void
librdf_internal_test_warning(librdf_world *world) 
{
  librdf_test_warning(world, "test warning message number 2.");
}

%}



%init %{
/* compile-time include (inside a % ... % block) */
#ifdef REDLAND_INIT_I
#include <redland-init.i>
#endif
%}


/* SWIG-time include (outside a % ... % block) */
#ifdef REDLAND_TYPES_I
%include <redland-types.i>
#endif

typedef struct librdf_world_s librdf_world;
typedef struct librdf_digest_s librdf_digest;
typedef struct librdf_hash_s librdf_hash;
typedef struct librdf_uri_s librdf_uri;
typedef struct librdf_iterator_s librdf_iterator;
typedef struct librdf_node_s librdf_node;
typedef struct librdf_statement_s librdf_statement;
typedef struct librdf_model_s librdf_model;
typedef struct librdf_storage_s librdf_storage;
typedef struct librdf_stream_s librdf_stream;
typedef struct librdf_parser_s librdf_parser;
typedef struct librdf_serializer_s librdf_serializer;


/* rdf_digest.h */
%newobject librdf_new_digest;
librdf_digest* librdf_new_digest(librdf_world *world, char *name);
void librdf_free_digest(librdf_digest *digest);
void librdf_digest_init(librdf_digest* digest);
void librdf_digest_update(librdf_digest* digest, const char* buf, size_t length);
void librdf_digest_update_string(librdf_digest* digest, const char* string);
void librdf_digest_final(librdf_digest* digest);
%newobject librdf_digest_to_string;
char* librdf_digest_to_string(librdf_digest* digest);

/* rdf_hash.h */
%newobject librdf_new_hash_from_string;
%newobject librdf_new_hash_from_array_of_strings;
librdf_hash* librdf_new_hash_from_string(librdf_world *world, const char* name, const char* string);
librdf_hash* librdf_new_hash_from_array_of_strings(librdf_world *world, const char* name, const char* *string);
void librdf_free_hash(librdf_hash *hash);

/* rdf_init.h */
%newobject librdf_new_world;

librdf_world* librdf_new_world(void);
void librdf_free_world(librdf_world *world);
void librdf_world_open(librdf_world *world);

%newobject librdf_world_get_feature;
librdf_node* librdf_world_get_feature(librdf_world* world, librdf_uri *feature);int librdf_world_set_feature(librdf_world* world, librdf_uri *feature, librdf_node* value);
%newobject librdf_parser_get_accept_header;
char* librdf_parser_get_accept_header(librdf_parser* parser);


/* rdf_iterator.h */
void librdf_free_iterator(librdf_iterator*);
int librdf_iterator_end(librdf_iterator* iterator);
librdf_node* librdf_iterator_get_object(librdf_iterator* iterator);
librdf_node* librdf_iterator_get_context(librdf_iterator* iterator);
int librdf_iterator_next(librdf_iterator* iterator);

/* rdf_uri.h */
%newobject librdf_new_uri;
%newobject librdf_new_uri_from_uri;
%newobject librdf_new_uri_from_filenam;

librdf_uri* librdf_new_uri (librdf_world *world, char *string);
librdf_uri* librdf_new_uri_from_uri (librdf_uri* uri);
librdf_uri* librdf_new_uri_from_filename(librdf_world* world, const char* filename);
void librdf_free_uri(librdf_uri *uri);
%newobject librdf_uri_to_string;
char* librdf_uri_to_string (librdf_uri* uri);
int librdf_uri_equals(librdf_uri* first_uri, librdf_uri* second_uri);
int librdf_uri_compare(librdf_uri* first_uri, librdf_uri* second_uri);

/* rdf_node.h */
%newobject librdf_new_node;
%newobject librdf_new_node_from_uri_string;
%newobject librdf_new_node_from_uri;
%newobject librdf_new_node_from_literal;
%newobject librdf_new_node_from_typed_literal;
%newobject librdf_new_node_from_node;
%newobject librdf_new_node_from_blank_identifier;

librdf_node* librdf_new_node(librdf_world *world);
librdf_node* librdf_new_node_from_uri_string(librdf_world *world, const char* string);
librdf_node* librdf_new_node_from_uri(librdf_world *world, librdf_uri *uri);
librdf_node* librdf_new_node_from_literal(librdf_world *world, const char* string, const char* inStrOrNull /* string */ =NULL, int is_wf_xml=0);
librdf_node* librdf_new_node_from_typed_literal(librdf_world *world, const char* string, const char* inStrOrNull /* string */ =NULL, librdf_uri* inUriOrNull /* datatype_uri */ =NULL);
librdf_node* librdf_new_node_from_node(librdf_node* node);
librdf_node* librdf_new_node_from_blank_identifier(librdf_world *world, const char* inStrOrNull /* identifier */ =NULL);
void librdf_free_node(librdf_node* r);
librdf_uri* librdf_node_get_uri(librdf_node* node);
int librdf_node_get_type(librdf_node* node);
char* librdf_node_get_literal_value(librdf_node* node);
char* librdf_node_get_literal_value_as_latin1(librdf_node* node);
char* librdf_node_get_literal_value_language(librdf_node* node);
librdf_uri* librdf_node_get_literal_value_datatype_uri(librdf_node* node);
int librdf_node_get_literal_value_is_wf_xml(librdf_node* node);

%newobject librdf_node_to_string;
char *librdf_node_to_string(librdf_node* node);
char *librdf_node_get_blank_identifier(librdf_node* node);

int librdf_node_is_resource(librdf_node* node);
int librdf_node_is_literal(librdf_node* node);
int librdf_node_is_blank(librdf_node* node);

int librdf_node_equals(librdf_node* first_node, librdf_node* second_node);


/* rdf_statement.h */
%newobject librdf_new_statement;
%newobject librdf_new_statement_from_statement;
%newobject librdf_new_statement_from_nodes;

librdf_statement* librdf_new_statement(librdf_world *world);
librdf_statement* librdf_new_statement_from_statement(librdf_statement* statement);
librdf_statement* librdf_new_statement_from_nodes(librdf_world *world, librdf_node* subject, librdf_node* predicate, librdf_node* object);
void librdf_free_statement(librdf_statement* statement);

librdf_node* librdf_statement_get_subject(librdf_statement *statement);
void librdf_statement_set_subject(librdf_statement *statement, librdf_node* subject);

librdf_node* librdf_statement_get_predicate(librdf_statement *statement);
void librdf_statement_set_predicate(librdf_statement *statement, librdf_node* predicate);
librdf_node* librdf_statement_get_object(librdf_statement *statement);
void librdf_statement_set_object(librdf_statement *statement, librdf_node* object);
int librdf_statement_equals(librdf_statement* statement1, librdf_statement* statement2);
int librdf_statement_match(librdf_statement* statement, librdf_statement* partial_statement);

%newobject librdf_statement_to_string;
char *librdf_statement_to_string(librdf_statement *statement);

/* rdf_model.h */
%newobject librdf_new_model;
%newobject librdf_new_model_with_options;
%newobject librdf_new_model_from_model;

librdf_model* librdf_new_model(librdf_world *world, librdf_storage *storage, char* options_string);
librdf_model* librdf_new_model_with_options(librdf_world *world, librdf_storage *storage, librdf_hash* options);
librdf_model* librdf_new_model_from_model(librdf_model* model);
void librdf_free_model(librdf_model* model);
int librdf_model_size(librdf_model* model);
int librdf_model_add(librdf_model* model, librdf_node* subject, librdf_node* predicate, librdf_node* object);
int librdf_model_add_typed_literal_statement(librdf_model* model, librdf_node* subject, librdf_node* predicate, char* string, char *xml_language, librdf_uri *datatype_uri);
int librdf_model_add_statement(librdf_model* model, librdf_statement* statement);
int librdf_model_add_statements(librdf_model* model, librdf_stream* statement_stream);
int librdf_model_remove_statement(librdf_model* model, librdf_statement* statement);
int librdf_model_contains_statement(librdf_model* model, librdf_statement* statement);
%newobject librdf_model_as_stream;
librdf_stream* librdf_model_as_stream(librdf_model* model);
%newobject librdf_model_find_statements;
librdf_stream* librdf_model_find_statements(librdf_model* model, librdf_statement* statement);
%newobject librdf_model_find_statements_in_context;
librdf_stream* librdf_model_find_statements_in_context(librdf_model* model, librdf_statement* statement, librdf_node* inNodeOrNull /* context_node */ =NULL);
%newobject librdf_model_get_sources;
librdf_iterator* librdf_model_get_sources(librdf_model* model, librdf_node* arc, librdf_node* target);
%newobject librdf_model_get_arcs;
librdf_iterator* librdf_model_get_arcs(librdf_model* model, librdf_node* source, librdf_node* target);
%newobject librdf_model_get_targets;
librdf_iterator* librdf_model_get_targets(librdf_model* model, librdf_node* source, librdf_node* arc);
%newobject librdf_model_get_source;
librdf_node* librdf_model_get_source(librdf_model* model, librdf_node* arc, librdf_node* target);
%newobject librdf_model_get_arc;
librdf_node* librdf_model_get_arc(librdf_model* model, librdf_node* source, librdf_node* target);
%newobject librdf_model_get_arcs_out;
librdf_iterator* librdf_model_get_arcs_out(librdf_model* model,librdf_node* node);
%newobject librdf_model_get_arcs_in;
librdf_iterator* librdf_model_get_arcs_in(librdf_model* model,librdf_node* node);
int librdf_model_has_arc_in(librdf_model* model,librdf_node* node,librdf_node* property);
int librdf_model_has_arc_out(librdf_model* model,librdf_node* node,librdf_node* property);
%newobject librdf_model_get_target;
librdf_node* librdf_model_get_target(librdf_model* model, librdf_node* source, librdf_node* arc);
int librdf_model_context_add_statement(librdf_model* model, librdf_node* context, librdf_statement* statement);
int librdf_model_context_add_statements(librdf_model* model, librdf_node* context, librdf_stream* stream);
int librdf_model_context_remove_statement(librdf_model* model, librdf_node* context, librdf_statement* statement);
int librdf_model_context_remove_statements(librdf_model* model, librdf_node* context);
%newobject librdf_model_context_as_stream;
librdf_stream* librdf_model_context_as_stream(librdf_model* model, librdf_node* context);
void librdf_model_sync(librdf_model* model);
%newobject librdf_model_get_contexts;
librdf_iterator* librdf_model_get_contexts(librdf_model* model);
int librdf_model_contains_context(librdf_model* model, librdf_node* context);
%newobject librdf_model_get_feature;
librdf_node* librdf_model_get_feature(librdf_model* model, librdf_uri* feature);
int librdf_model_set_feature(librdf_model* model, librdf_uri* feature, librdf_node* value);
int librdf_model_load(librdf_model* model, librdf_uri *uri, const char* inStrOrNull /* name */ =NULL, const char* inStrOrNull /* mime_type */ =NULL, librdf_uri *type_uri=NULL);
%newobject librdf_model_query_execute;
librdf_query_results* librdf_model_query_execute(librdf_model* model, librdf_query* query);
%newobject librdf_model_to_string;
char* librdf_model_to_string(librdf_model* model, librdf_uri *uri /* or NULL */, const char* inStrOrNull /* name */ =NULL /* */ , const char* inStrOrNull /* mime_type */ =NULL, librdf_uri* inUriOrNull /*type_uri */ =NULL);

int librdf_model_transaction_start(librdf_model* model);
int librdf_model_transaction_commit(librdf_model* model);
int librdf_model_transaction_rollback(librdf_model* model);


/* rdf_storage.h */
%newobject librdf_new_storage;
%newobject librdf_new_storage_from_storage;

librdf_storage* librdf_new_storage(librdf_world *world, char *storage_name, char *name, char *options_string);
librdf_storage* librdf_new_storage_from_storage (librdf_storage* old_storage);
void librdf_free_storage(librdf_storage *storage);

/* rdf_parser.h */
%newobject librdf_new_parser;

librdf_parser* librdf_new_parser(librdf_world *world, const char* name, const char* mime_type, librdf_uri *type_uri);
void librdf_free_parser(librdf_parser *parser);

%newobject librdf_parser_parse_as_stream;
librdf_stream* librdf_parser_parse_as_stream(librdf_parser* parser, librdf_uri* uri, librdf_uri* inUriorNull /* base_uri */ = NULL);
int librdf_parser_parse_into_model(librdf_parser* parser, librdf_uri* uri, librdf_uri* inUriOrNull /* base_uri */, librdf_model* model);
%newobject librdf_parser_parse_string_as_stream;
librdf_stream* librdf_parser_parse_string_as_stream(librdf_parser* parser, const char* string, librdf_uri* base_uri);
int librdf_parser_parse_string_into_model(librdf_parser* parser, const char* string, librdf_uri* base_uri, librdf_model* model);
librdf_stream* librdf_parser_parse_counted_string_as_stream(librdf_parser* parser, const char* string, size_t length, librdf_uri* base_uri);
int librdf_parser_parse_counted_string_into_model(librdf_parser* parser, const char* string, size_t length, librdf_uri* base_uri, librdf_model* model);
%newobject librdf_parser_get_feature;
librdf_node* librdf_parser_get_feature(librdf_parser* parser, librdf_uri *feature);
int librdf_parser_set_feature(librdf_parser* parser, librdf_uri *feature, librdf_node* value);
const char* librdf_parser_guess_name(const char *mime_type, const char *buffer, const char *identifier);
const char* librdf_parser_guess_name2(librdf_world* world, const char *mime_type, const unsigned char *buffer, const unsigned char *identifier);
const char* librdf_parser_get_namespaces_seen_prefix(librdf_parser* parser, int offset);
librdf_uri* librdf_parser_get_namespaces_seen_uri(librdf_parser* parser, int offset);
int librdf_parser_get_namespaces_seen_count(librdf_parser* parser);

/* rdf_query.h */
%newobject librdf_new_query;
%newobject librdf_new_query_from_query;

librdf_query* librdf_new_query(librdf_world* world, const char* name, librdf_uri* inUriOrNull /* uri */, const char* query_string, librdf_uri* inUriOrNull /* base_uri */);
librdf_query* librdf_new_query_from_query (librdf_query* old_query);
void librdf_free_query(librdf_query *query);

/* methods */
%newobject librdf_query_execute;
librdf_query_results* librdf_query_execute(librdf_query* query, librdf_model* model);
int librdf_query_get_limit(librdf_query *query);
int librdf_query_set_limit(librdf_query *query, int limit);
int librdf_query_get_offset(librdf_query *query);
int librdf_query_set_offset(librdf_query *query, int offset);

%newobject librdf_query_results_as_stream;
librdf_stream* librdf_query_results_as_stream(librdf_query_results* query_results);
int librdf_query_results_get_count(librdf_query_results* query_results);
int librdf_query_results_next(librdf_query_results* query_results);
int librdf_query_results_finished(librdf_query_results* query_results);
%newobject librdf_query_results_get_binding_value;
librdf_node* librdf_query_results_get_binding_value(librdf_query_results* query_results, int offset);
const char* librdf_query_results_get_binding_name(librdf_query_results* query_results, int offset);
%newobject librdf_query_results_get_binding_value_by_name;
librdf_node* librdf_query_results_get_binding_value_by_name(librdf_query_results* query_results, const char* name);
int librdf_query_results_get_bindings_count(librdf_query_results* query_results);
int librdf_query_results_to_file(librdf_query_results *query_results, const char* name, librdf_uri *format_uri, librdf_uri *base_uri);
%newobject librdf_query_results_to_string;
char* librdf_query_results_to_string(librdf_query_results *query_results, librdf_uri *format_uri, librdf_uri *base_uri);

void librdf_free_query_results(librdf_query_results* query_results);

int librdf_query_results_is_bindings(librdf_query_results *query_results);
int librdf_query_results_is_boolean(librdf_query_results *query_results);
int librdf_query_results_is_graph(librdf_query_results *query_results);

int librdf_query_results_get_boolean(librdf_query_results *query_results);


/* rdf_serializer.h */
%newobject librdf_new_serializer;

librdf_serializer* librdf_new_serializer(librdf_world* world, const char* name, const char* mime_type, librdf_uri *type_uri);
void librdf_free_serializer(librdf_serializer *serializer);
int librdf_serializer_serialize_model_to_file(librdf_serializer* serializer, const char* name, librdf_uri* inUriOrNull /* base_uri */, librdf_model* model);
%newobject librdf_serializer_serialize_model_to_string;
char* librdf_serializer_serialize_model_to_string(librdf_serializer* serializer, librdf_uri* inUriOrNull /* base_uri */, librdf_model* model);
librdf_node* librdf_serializer_get_feature(librdf_serializer* serializer, librdf_uri *feature);
int librdf_serializer_set_feature(librdf_serializer* serializer, librdf_uri *feature, librdf_node* value);
int librdf_serializer_set_namespace(librdf_serializer* serializer, librdf_uri *nspace, const char*  prefix);

/* rdf_stream.h */
void librdf_free_stream(librdf_stream* stream);
int librdf_stream_end(librdf_stream* stream);
int librdf_stream_next(librdf_stream* stream);
librdf_statement* librdf_stream_get_object(librdf_stream* stream);
librdf_node* librdf_stream_get_context(librdf_stream* stream);


/* rdf_log.h and raptor.h */
int librdf_log_message_code(librdf_log_message *message);
int librdf_log_message_level(librdf_log_message *message);
int librdf_log_message_facility(librdf_log_message *message);
const char*  librdf_log_message_message(librdf_log_message *message);
raptor_locator* librdf_log_message_locator(librdf_log_message *message);
int raptor_locator_line(raptor_locator *locator);
int raptor_locator_column(raptor_locator *locator);
int raptor_locator_byte(raptor_locator *locator);
const char* raptor_locator_file(raptor_locator *locator);
const char* raptor_locator_uri(raptor_locator *locator);


/* FOR TESTING ERRORS ONLY - NOT PART OF API */
void librdf_internal_test_error(librdf_world *world);
void librdf_internal_test_warning(librdf_world *world);


/* SWIG world - declare variables wanted from rdf_init.h */

%immutable;
extern const char* const  librdf_short_copyright_string;
extern const char* const  librdf_copyright_string;
extern const char* const  librdf_version_string;
extern const unsigned int librdf_version_major;
extern const unsigned int librdf_version_minor;
extern const unsigned int librdf_version_release;
extern const unsigned int librdf_version_decimal;

extern const char * const raptor_version_string;
extern const unsigned int raptor_version_major;
extern const unsigned int raptor_version_minor;
extern const unsigned int raptor_version_release;
extern const unsigned int raptor_version_decimal;

extern const char* const  rasqal_version_string;
extern const unsigned int rasqal_version_major;
extern const unsigned int rasqal_version_minor;
extern const unsigned int rasqal_version_release;
extern const unsigned int rasqal_version_decimal;
%mutable;


/* SWIG-time include (not inside a % ... % block) */
#ifdef REDLAND_DECL_I
%include <redland-decl.i>
#endif