raptor.h | raptor.h | |||
---|---|---|---|---|
/* -*- Mode: c; c-basic-offset: 2 -*- | #include <raptor2.h> | |||
* | ||||
* raptor.h - Redland Parser Toolkit for RDF (Raptor) - public API | ||||
* | ||||
* Copyright (C) 2000-2010, 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. | ||||
* | ||||
* | ||||
*/ | ||||
#ifndef RAPTOR_H | ||||
#define RAPTOR_H | ||||
#ifdef __cplusplus | ||||
extern "C" { | ||||
#endif | ||||
#include <stdio.h> | ||||
/* Required for va_list in raptor_vsnprintf */ | ||||
#include <stdarg.h> | ||||
/** | ||||
* RAPTOR_V2_AVAILABLE | ||||
* | ||||
* Flag for marking raptor2 API availability. | ||||
*/ | ||||
#define RAPTOR_V2_AVAILABLE 1 | ||||
/** | ||||
* RAPTOR_VERSION: | ||||
* | ||||
* Raptor library version number | ||||
* | ||||
* Format: major * 10000 + minor * 100 + release | ||||
*/ | ||||
#define RAPTOR_VERSION 20002 | ||||
/** | ||||
* RAPTOR_VERSION_STRING: | ||||
* | ||||
* Raptor library version string | ||||
*/ | ||||
#define RAPTOR_VERSION_STRING "2.0.2" | ||||
/** | ||||
* RAPTOR_VERSION_MAJOR: | ||||
* | ||||
* Raptor library major version | ||||
*/ | ||||
#define RAPTOR_VERSION_MAJOR 2 | ||||
/** | ||||
* RAPTOR_VERSION_MINOR: | ||||
* | ||||
* Raptor library minor version | ||||
*/ | ||||
#define RAPTOR_VERSION_MINOR 0 | ||||
/** | ||||
* RAPTOR_VERSION_RELEASE: | ||||
* | ||||
* Raptor library release | ||||
*/ | ||||
#define RAPTOR_VERSION_RELEASE 2 | ||||
/** | ||||
* RAPTOR_API: | ||||
* | ||||
* Macro for wrapping API function call declarations. | ||||
* | ||||
*/ | ||||
#ifndef RAPTOR_API | ||||
# ifdef WIN32 | ||||
# ifdef __GNUC__ | ||||
# undef _declspec | ||||
# define _declspec(x) __declspec(x) | ||||
# endif | ||||
# ifdef RAPTOR_STATIC | ||||
# define RAPTOR_API | ||||
# else | ||||
# ifdef RAPTOR_INTERNAL | ||||
# define RAPTOR_API _declspec(dllexport) | ||||
# else | ||||
# define RAPTOR_API _declspec(dllimport) | ||||
# endif | ||||
# endif | ||||
# else | ||||
# define RAPTOR_API | ||||
# endif | ||||
#endif | ||||
/* Use gcc 3.1+ feature to allow marking of deprecated API calls. | ||||
* This gives a warning during compiling. | ||||
*/ | ||||
#if( __GNUC__ == 3 && __GNUC_MINOR__ > 0 ) || __GNUC__ > 3 | ||||
#define RAPTOR_DEPRECATED __attribute__((deprecated)) | ||||
#else | ||||
#define RAPTOR_DEPRECATED | ||||
#endif | ||||
/** | ||||
* RAPTOR_PRINTF_FORMAT: | ||||
* @string_index: ignore me | ||||
* @first_to_check_index: ignore me | ||||
* | ||||
* Internal macro | ||||
*/ | ||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) | ||||
#define RAPTOR_PRINTF_FORMAT(string_index, first_to_check_index) \ | ||||
__attribute__((__format__(__printf__, string_index, first_to_check_index) | ||||
)) | ||||
#else | ||||
#define RAPTOR_PRINTF_FORMAT(string_index, first_to_check_index) | ||||
#endif | ||||
/** | ||||
* raptor_uri: | ||||
* | ||||
* Raptor URI Class. | ||||
*/ | ||||
typedef struct raptor_uri_s raptor_uri; | ||||
/* Public statics */ | ||||
RAPTOR_API | ||||
extern const char * const raptor_short_copyright_string; | ||||
RAPTOR_API | ||||
extern const char * const raptor_copyright_string; | ||||
RAPTOR_API | ||||
extern const char * const raptor_version_string; | ||||
RAPTOR_API | ||||
extern const unsigned int raptor_version_major; | ||||
RAPTOR_API | ||||
extern const unsigned int raptor_version_minor; | ||||
RAPTOR_API | ||||
extern const unsigned int raptor_version_release; | ||||
RAPTOR_API | ||||
extern const unsigned int raptor_version_decimal; | ||||
RAPTOR_API | ||||
extern const char * const raptor_license_string; | ||||
RAPTOR_API | ||||
extern const char * const raptor_home_url_string; | ||||
RAPTOR_API | ||||
extern const unsigned char * const raptor_xml_namespace_uri; | ||||
RAPTOR_API | ||||
extern const unsigned char * const raptor_rdf_namespace_uri; | ||||
RAPTOR_API | ||||
extern const unsigned char * const raptor_rdf_schema_namespace_uri; | ||||
RAPTOR_API | ||||
extern const unsigned char * const raptor_xmlschema_datatypes_namespace_uri | ||||
; | ||||
RAPTOR_API | ||||
extern const unsigned char * const raptor_owl_namespace_uri; | ||||
/** | ||||
* raptor_rdf_namespace_uri_len: | ||||
* | ||||
* Length of #raptor_rdf_namespace_uri string | ||||
*/ | ||||
RAPTOR_API | ||||
extern const unsigned int raptor_rdf_namespace_uri_len; | ||||
RAPTOR_API | ||||
extern const unsigned char * const raptor_xml_literal_datatype_uri_string; | ||||
/** | ||||
* raptor_xml_literal_datatype_uri_string_len: | ||||
* | ||||
* Length of #raptor_xml_literal_datatype_uri_string | ||||
*/ | ||||
RAPTOR_API | ||||
extern const unsigned int raptor_xml_literal_datatype_uri_string_len; | ||||
/* Public structure */ | ||||
/** | ||||
* raptor_world: | ||||
* | ||||
* Raptor world class. | ||||
*/ | ||||
typedef struct raptor_world_s raptor_world; | ||||
/** | ||||
* raptor_parser: | ||||
* | ||||
* Raptor Parser class | ||||
*/ | ||||
typedef struct raptor_parser_s raptor_parser; | ||||
/** | ||||
* raptor_serializer: | ||||
* | ||||
* Raptor Serializer class | ||||
*/ | ||||
typedef struct raptor_serializer_s raptor_serializer; | ||||
/** | ||||
* raptor_www: | ||||
* | ||||
* Raptor WWW class | ||||
*/ | ||||
typedef struct raptor_www_s raptor_www; | ||||
/** | ||||
* raptor_iostream: | ||||
* | ||||
* Raptor I/O Stream class | ||||
*/ | ||||
typedef struct raptor_iostream_s raptor_iostream; | ||||
/** | ||||
* raptor_xml_element: | ||||
* | ||||
* Raptor XML Element class | ||||
*/ | ||||
typedef struct raptor_xml_element_s raptor_xml_element; | ||||
/** | ||||
* raptor_xml_writer: | ||||
* | ||||
* Raptor XML Writer class | ||||
*/ | ||||
typedef struct raptor_xml_writer_s raptor_xml_writer; | ||||
/** | ||||
* raptor_qname: | ||||
* | ||||
* Raptor XML qname class | ||||
*/ | ||||
typedef struct raptor_qname_s raptor_qname; | ||||
/** | ||||
* raptor_namespace: | ||||
* | ||||
* Raptor XML Namespace class | ||||
*/ | ||||
typedef struct raptor_namespace_s raptor_namespace; | ||||
/** | ||||
* raptor_namespace_stack: | ||||
* | ||||
* Raptor XML Namespace Stack class | ||||
*/ | ||||
typedef struct raptor_namespace_stack_s raptor_namespace_stack; | ||||
/** | ||||
* raptor_sax2: | ||||
* | ||||
* Raptor SAX2 class | ||||
*/ | ||||
typedef struct raptor_sax2_s raptor_sax2; | ||||
/** | ||||
* raptor_type_q: | ||||
* @mime_type: MIME type string | ||||
* @mime_type_len: length of @mime_type | ||||
* @q: Q value 0-10 standing for decimal 0.0-1.0 | ||||
* | ||||
* (MIME Type, Q) pair | ||||
*/ | ||||
typedef struct { | ||||
const char* mime_type; | ||||
size_t mime_type_len; | ||||
unsigned char q; | ||||
} raptor_type_q; | ||||
/** | ||||
* raptor_syntax_bitflags: | ||||
* @RAPTOR_SYNTAX_NEED_BASE_URI: the syntax requires a base URI | ||||
* | ||||
* Bit flags for #raptor_syntax_description flags field | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_SYNTAX_NEED_BASE_URI = 1 | ||||
} raptor_syntax_bitflags; | ||||
/** | ||||
* raptor_syntax_description: | ||||
* @names: array of syntax names - the first one (required) is the public n | ||||
ame, the rest are aliases. The array is NULL terminated. | ||||
* @names_count: size of @names array | ||||
* @label: long descriptive label for syntax | ||||
* @mime_types: Array of (MIME type, Q) values associated with the syntax ( | ||||
or NULL). If present the array is NULL terminated. | ||||
* @mime_types_count: size of @mime_types array | ||||
* @uri_strings: array of URIs identifying the syntax (or NULL). The first | ||||
one if present is the main URI, the rest are aliases. The array is NULL te | ||||
rminated. | ||||
* @uri_strings_count: size of @uri_strings array | ||||
* @flags: See #raptor_syntax_bitflags for the bits | ||||
* | ||||
* Description of a syntax or file format. | ||||
* | ||||
*/ | ||||
typedef struct { | ||||
const char* const* names; | ||||
unsigned int names_count; | ||||
const char* label; | ||||
const raptor_type_q* mime_types; | ||||
unsigned int mime_types_count; | ||||
const char* const* uri_strings; | ||||
unsigned int uri_strings_count; | ||||
unsigned int flags; | ||||
} raptor_syntax_description; | ||||
/** | ||||
* raptor_term_type: | ||||
* @RAPTOR_TERM_TYPE_URI: RDF URI | ||||
* @RAPTOR_TERM_TYPE_LITERAL: RDF literal | ||||
* @RAPTOR_TERM_TYPE_BLANK: RDF blank node | ||||
* @RAPTOR_TERM_TYPE_UNKNOWN: Internal | ||||
* | ||||
* Type of term in a #raptor_statement | ||||
* | ||||
* Node type 3 is unused but exists to preserve numeric compatibility | ||||
* with librdf_node_type values. | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_TERM_TYPE_UNKNOWN = 0, | ||||
RAPTOR_TERM_TYPE_URI = 1, | ||||
RAPTOR_TERM_TYPE_LITERAL = 2, | ||||
/* unused type 3 */ | ||||
RAPTOR_TERM_TYPE_BLANK = 4 | ||||
} raptor_term_type; | ||||
/** | ||||
* raptor_locator: | ||||
* @uri: URI of location (or NULL) | ||||
* @file: Filename of location (or NULL) | ||||
* @line: Line number of location (or <0 for no line) | ||||
* @column: Column number of location (or <0 for no column) | ||||
* @byte: Byte number of location (or <0 for no byte) | ||||
* | ||||
* Location information for an error, warning or information message. | ||||
*/ | ||||
typedef struct { | ||||
raptor_uri *uri; | ||||
const char *file; | ||||
int line; | ||||
int column; | ||||
int byte; | ||||
} raptor_locator; | ||||
/** | ||||
* raptor_option: | ||||
* @RAPTOR_OPTION_SCANNING: If true (default false), the RDF/XML | ||||
* parser will look for embedded rdf:RDF elements inside the XML | ||||
* content, and not require that the XML start with an rdf:RDF root | ||||
* element. | ||||
* @RAPTOR_OPTION_ALLOW_NON_NS_ATTRIBUTES: If true (default true) | ||||
* then the RDF/XML parser will allow non-XML namespaced attributes | ||||
* to be accepted as well as rdf: namespaced ones. For example, | ||||
* 'about' and 'ID' will be interpreted as if they were rdf:about | ||||
* and rdf:ID respectively. | ||||
* @RAPTOR_OPTION_ALLOW_OTHER_PARSETYPES: If true (default true) | ||||
* then the RDF/XML parser will allow unknown parsetypes to be | ||||
* present and will pass them on to the user. Unimplemented at | ||||
* present. | ||||
* @RAPTOR_OPTION_ALLOW_BAGID: If true (default true) then the | ||||
* RDF/XML parser will support the rdf:bagID attribute that was | ||||
* removed from the RDF/XML language when it was revised. This | ||||
* support may be removed in future. | ||||
* @RAPTOR_OPTION_ALLOW_RDF_TYPE_RDF_LIST: If true (default false) | ||||
* then the RDF/XML parser will generate the idList rdf:type | ||||
* rdf:List triple in the handling of rdf:parseType="Collection". | ||||
* This triple was removed during the revising of RDF/XML after | ||||
* collections were initially added. | ||||
* @RAPTOR_OPTION_NORMALIZE_LANGUAGE: If true (default true) then | ||||
* XML language values such as from xml:lang will be normalized to | ||||
* lowercase. | ||||
* @RAPTOR_OPTION_NON_NFC_FATAL: If true (default false) then | ||||
* illegal Unicode Normal Form C in literals will give a fatal | ||||
* error, otherwise just a warning. | ||||
* @RAPTOR_OPTION_WARN_OTHER_PARSETYPES: If true (default true) then | ||||
* the RDF/XML parser will warn about unknown rdf:parseType values. | ||||
* @RAPTOR_OPTION_CHECK_RDF_ID: If true (default true) then the | ||||
* RDF/XML will check rdf:ID attribute values for duplicates and | ||||
* cause an error if any are found. | ||||
* @RAPTOR_OPTION_RELATIVE_URIS: If true (default true) then | ||||
* relative URIs will be used wherever possible when serializing. | ||||
* @RAPTOR_OPTION_WRITER_AUTO_INDENT: Automatically indent elements when | ||||
* seriailizing. | ||||
* @RAPTOR_OPTION_WRITER_AUTO_EMPTY: Automatically detect and | ||||
* abbreviate empty elements when serializing. | ||||
* @RAPTOR_OPTION_WRITER_INDENT_WIDTH: Integer number of spaces to use | ||||
* for each indent level when serializing with auto indent. | ||||
* @RAPTOR_OPTION_WRITER_XML_VERSION: Integer XML version XML 1.0 (10) or X | ||||
ML 1.1 (11) | ||||
* @RAPTOR_OPTION_WRITER_XML_DECLARATION: Write XML 1.0 or 1.1 declaration. | ||||
* @RAPTOR_OPTION_NO_NET: Deny network requests. | ||||
* @RAPTOR_OPTION_RESOURCE_BORDER: Border color of resource | ||||
* nodes for GraphViz DOT serializer. | ||||
* @RAPTOR_OPTION_LITERAL_BORDER: Border color of literal nodes | ||||
* for GraphViz DOT serializer. | ||||
* @RAPTOR_OPTION_BNODE_BORDER: Border color of blank nodes for | ||||
* GraphViz DOT serializer. | ||||
* @RAPTOR_OPTION_RESOURCE_FILL: Fill color of resource nodes | ||||
* for GraphViz DOT serializer. | ||||
* @RAPTOR_OPTION_LITERAL_FILL: Fill color of literal nodes for | ||||
* GraphViz DOT serializer. | ||||
* @RAPTOR_OPTION_BNODE_FILL: Fill color of blank nodes for | ||||
* GraphViz DOT serializer. | ||||
* @RAPTOR_OPTION_HTML_TAG_SOUP: Use a lax HTML parser if an XML parser | ||||
* fails when read HTML for GRDDL parser. | ||||
* @RAPTOR_OPTION_MICROFORMATS: Look for microformats for GRDDL parser. | ||||
* @RAPTOR_OPTION_HTML_LINK: Look for head <link> to type rdf/xml | ||||
* for GRDDL parser. | ||||
* @RAPTOR_OPTION_WWW_TIMEOUT: Set timeout for internal WWW URI requests | ||||
* for GRDDL parser. | ||||
* @RAPTOR_OPTION_WRITE_BASE_URI: Write @base directive for Turtle/N3. | ||||
* @RAPTOR_OPTION_WWW_HTTP_CACHE_CONTROL: HTTP Cache-Control: header | ||||
* @RAPTOR_OPTION_WWW_HTTP_USER_AGENT: HTTP User-Agent: header | ||||
* @RAPTOR_OPTION_JSON_CALLBACK: JSON serializer callback function. | ||||
* @RAPTOR_OPTION_JSON_EXTRA_DATA: JSON serializer extra top-level data | ||||
* @RAPTOR_OPTION_RSS_TRIPLES: Atom/RSS serializer writes extra RDF triples | ||||
it finds (none, rdf-xml, atom-triples) | ||||
* @RAPTOR_OPTION_ATOM_ENTRY_URI: Atom entry URI. If given, generate an At | ||||
om Entry Document with the item having the given URI, otherwise generate an | ||||
Atom Feed Document with any items found. | ||||
* @RAPTOR_OPTION_PREFIX_ELEMENTS: Integer. If set, generate Atom/RSS1.0 do | ||||
cuments with prefixed elements, otherwise unprefixed. | ||||
* @RAPTOR_OPTION_STRICT: Boolean. If set, operate in strict conformance mo | ||||
de. | ||||
* @RAPTOR_OPTION_LAST: Internal | ||||
* | ||||
* Raptor parser, serializer or XML writer options. | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_OPTION_SCANNING, | ||||
RAPTOR_OPTION_ALLOW_NON_NS_ATTRIBUTES, | ||||
RAPTOR_OPTION_ALLOW_OTHER_PARSETYPES, | ||||
RAPTOR_OPTION_ALLOW_BAGID, | ||||
RAPTOR_OPTION_ALLOW_RDF_TYPE_RDF_LIST, | ||||
RAPTOR_OPTION_NORMALIZE_LANGUAGE, | ||||
RAPTOR_OPTION_NON_NFC_FATAL, | ||||
RAPTOR_OPTION_WARN_OTHER_PARSETYPES, | ||||
RAPTOR_OPTION_CHECK_RDF_ID, | ||||
RAPTOR_OPTION_RELATIVE_URIS, | ||||
RAPTOR_OPTION_WRITER_AUTO_INDENT, | ||||
RAPTOR_OPTION_WRITER_AUTO_EMPTY, | ||||
RAPTOR_OPTION_WRITER_INDENT_WIDTH, | ||||
RAPTOR_OPTION_WRITER_XML_VERSION, | ||||
RAPTOR_OPTION_WRITER_XML_DECLARATION, | ||||
RAPTOR_OPTION_NO_NET, | ||||
RAPTOR_OPTION_RESOURCE_BORDER, | ||||
RAPTOR_OPTION_LITERAL_BORDER, | ||||
RAPTOR_OPTION_BNODE_BORDER, | ||||
RAPTOR_OPTION_RESOURCE_FILL, | ||||
RAPTOR_OPTION_LITERAL_FILL, | ||||
RAPTOR_OPTION_BNODE_FILL, | ||||
RAPTOR_OPTION_HTML_TAG_SOUP, | ||||
RAPTOR_OPTION_MICROFORMATS, | ||||
RAPTOR_OPTION_HTML_LINK, | ||||
RAPTOR_OPTION_WWW_TIMEOUT, | ||||
RAPTOR_OPTION_WRITE_BASE_URI, | ||||
RAPTOR_OPTION_WWW_HTTP_CACHE_CONTROL, | ||||
RAPTOR_OPTION_WWW_HTTP_USER_AGENT, | ||||
RAPTOR_OPTION_JSON_CALLBACK, | ||||
RAPTOR_OPTION_JSON_EXTRA_DATA, | ||||
RAPTOR_OPTION_RSS_TRIPLES, | ||||
RAPTOR_OPTION_ATOM_ENTRY_URI, | ||||
RAPTOR_OPTION_PREFIX_ELEMENTS, | ||||
RAPTOR_OPTION_STRICT, | ||||
RAPTOR_OPTION_LAST = RAPTOR_OPTION_STRICT | ||||
} raptor_option; | ||||
/** | ||||
* raptor_term_literal_value: | ||||
* @string: literal string | ||||
* @string_len: length of string | ||||
* @datatype: datatype URI (or NULL) | ||||
* @language: literal language (or NULL) | ||||
* @language_len: length of language | ||||
* | ||||
* Literal term value - this typedef exists solely for use in #raptor_term | ||||
* | ||||
* Either @datatype or @language may be non-NULL but not both. | ||||
*/ | ||||
typedef struct { | ||||
unsigned char *string; | ||||
unsigned int string_len; | ||||
raptor_uri *datatype; | ||||
unsigned char *language; | ||||
unsigned char language_len; | ||||
} raptor_term_literal_value; | ||||
/** | ||||
* raptor_term_blank_value: | ||||
* @string: literal string | ||||
* @string_len: length of string | ||||
* | ||||
* Blank term value - this typedef exists solely for use in #raptor_term | ||||
* | ||||
*/ | ||||
typedef struct { | ||||
unsigned char *string; | ||||
unsigned int string_len; | ||||
} raptor_term_blank_value; | ||||
/** | ||||
* raptor_term_value: | ||||
* @uri: uri value when term type is #RAPTOR_TERM_TYPE_URI | ||||
* @literal: literal value when term type is #RAPTOR_TERM_TYPE_LITERAL | ||||
* @blank: blank value when term type is #RAPTOR_TERM_TYPE_BLANK | ||||
* | ||||
* Term value - this typedef exists solely for use in #raptor_term | ||||
* | ||||
**/ | ||||
typedef union { | ||||
raptor_uri *uri; | ||||
raptor_term_literal_value literal; | ||||
raptor_term_blank_value blank; | ||||
} raptor_term_value; | ||||
/** | ||||
* raptor_term: | ||||
* @world: world | ||||
* @usage: usage reference count (if >0) | ||||
* @type: term type | ||||
* @value: term values per type | ||||
* | ||||
* An RDF statement term | ||||
* | ||||
*/ | ||||
typedef struct { | ||||
raptor_world* world; | ||||
int usage; | ||||
raptor_term_type type; | ||||
raptor_term_value value; | ||||
} raptor_term; | ||||
/** | ||||
* raptor_statement: | ||||
* @world: world pointer | ||||
* @usage: usage count | ||||
* @subject: statement subject | ||||
* @predicate: statement predicate | ||||
* @object: statement object | ||||
* @graph: statement graph name (or NULL if not present) | ||||
* | ||||
* An RDF triple with optional graph name (quad) | ||||
* | ||||
* See #raptor_term for a description of how the fields may be used. | ||||
* As returned by a parser statement_handler. | ||||
*/ | ||||
typedef struct { | ||||
raptor_world* world; | ||||
int usage; | ||||
raptor_term* subject; | ||||
raptor_term* predicate; | ||||
raptor_term* object; | ||||
raptor_term* graph; | ||||
} raptor_statement; | ||||
/** | ||||
* raptor_log_level: | ||||
* @RAPTOR_LOG_LEVEL_NONE: Internal | ||||
* @RAPTOR_LOG_LEVEL_TRACE: very fine-grained tracing messages information | ||||
* @RAPTOR_LOG_LEVEL_DEBUG: fine-grained tracing messages suitable for debu | ||||
gging | ||||
* @RAPTOR_LOG_LEVEL_INFO: coarse-grained information messages | ||||
* @RAPTOR_LOG_LEVEL_WARN: warning messages of potentially harmful problems | ||||
* @RAPTOR_LOG_LEVEL_ERROR: error messages where the application can contin | ||||
ue | ||||
* @RAPTOR_LOG_LEVEL_FATAL: fatal error message where the application will | ||||
likely abort | ||||
* @RAPTOR_LOG_LEVEL_LAST: Internal | ||||
* | ||||
* Log levels | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_LOG_LEVEL_NONE, | ||||
RAPTOR_LOG_LEVEL_TRACE, | ||||
RAPTOR_LOG_LEVEL_DEBUG, | ||||
RAPTOR_LOG_LEVEL_INFO, | ||||
RAPTOR_LOG_LEVEL_WARN, | ||||
RAPTOR_LOG_LEVEL_ERROR, | ||||
RAPTOR_LOG_LEVEL_FATAL, | ||||
RAPTOR_LOG_LEVEL_LAST = RAPTOR_LOG_LEVEL_FATAL | ||||
} raptor_log_level; | ||||
/** | ||||
* raptor_domain: | ||||
* @RAPTOR_DOMAIN_IOSTREAM: I/O stream | ||||
* @RAPTOR_DOMAIN_NAMESPACE: XML Namespace / namespace stack | ||||
* @RAPTOR_DOMAIN_PARSER: RDF Parser | ||||
* @RAPTOR_DOMAIN_QNAME: XML QName | ||||
* @RAPTOR_DOMAIN_SAX2: XML SAX2 | ||||
* @RAPTOR_DOMAIN_SERIALIZER: RDF Serializer | ||||
* @RAPTOR_DOMAIN_TERM: RDF Term | ||||
* @RAPTOR_DOMAIN_TURTLE_WRITER: Turtle Writer | ||||
* @RAPTOR_DOMAIN_URI: RDF Uri | ||||
* @RAPTOR_DOMAIN_WORLD: RDF world | ||||
* @RAPTOR_DOMAIN_WWW: WWW | ||||
* @RAPTOR_DOMAIN_XML_WRITER: XML Writer | ||||
* @RAPTOR_DOMAIN_NONE: Internal | ||||
* @RAPTOR_DOMAIN_LAST: Internal | ||||
* | ||||
* Log domain | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_DOMAIN_NONE, | ||||
RAPTOR_DOMAIN_IOSTREAM, | ||||
RAPTOR_DOMAIN_NAMESPACE, | ||||
RAPTOR_DOMAIN_PARSER, | ||||
RAPTOR_DOMAIN_QNAME, | ||||
RAPTOR_DOMAIN_SAX2, | ||||
RAPTOR_DOMAIN_SERIALIZER, | ||||
RAPTOR_DOMAIN_TERM, | ||||
RAPTOR_DOMAIN_TURTLE_WRITER, | ||||
RAPTOR_DOMAIN_URI, | ||||
RAPTOR_DOMAIN_WORLD, | ||||
RAPTOR_DOMAIN_WWW, | ||||
RAPTOR_DOMAIN_XML_WRITER, | ||||
RAPTOR_DOMAIN_LAST = RAPTOR_DOMAIN_XML_WRITER | ||||
} raptor_domain; | ||||
/** | ||||
* raptor_log_message: | ||||
* @code: error code or < 0 if not used or known | ||||
* @domain: message domain or #RAPTOR_DOMAIN_NONE if not used or known | ||||
* @level: log message level | ||||
* @locator: location associated with message or NULL if not known | ||||
* @text: message string | ||||
* | ||||
* Log message. | ||||
*/ | ||||
typedef struct { | ||||
int code; | ||||
raptor_domain domain; | ||||
raptor_log_level level; | ||||
raptor_locator *locator; | ||||
const char *text; | ||||
} raptor_log_message; | ||||
/** | ||||
* raptor_log_handler: | ||||
* @user_data: user data | ||||
* @message: log message | ||||
* | ||||
* Handler function for log messages with location | ||||
* | ||||
* Used during parsing and serializing for errors and warnings that | ||||
* may include location information. Handlers may be set | ||||
* by raptor_world_set_log_handler(). | ||||
* | ||||
*/ | ||||
typedef void (*raptor_log_handler)(void *user_data, raptor_log_message *mes | ||||
sage); | ||||
/** | ||||
* raptor_statement_handler: | ||||
* @user_data: user data | ||||
* @statement: statement to report | ||||
* | ||||
* Statement (triple) reporting handler function. | ||||
* | ||||
* This handler function set with | ||||
* raptor_parser_set_statement_handler() on a parser receives | ||||
* statements as the parsing proceeds. The @statement argument to the | ||||
* handler is shared and must be copied by the caller with | ||||
* raptor_statement_copy(). | ||||
*/ | ||||
typedef void (*raptor_statement_handler)(void *user_data, raptor_statement | ||||
*statement); | ||||
/** | ||||
* raptor_graph_mark_flags: | ||||
* @RAPTOR_GRAPH_MARK_START: mark is start of graph (otherwise is end) | ||||
* @RAPTOR_GRAPH_MARK_DECLARED: mark was declared in syntax rather than imp | ||||
lict | ||||
* | ||||
* Graph mark handler bitmask flags | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_GRAPH_MARK_START = 1, | ||||
RAPTOR_GRAPH_MARK_DECLARED = 2 | ||||
} raptor_graph_mark_flags; | ||||
/** | ||||
* raptor_graph_mark_handler: | ||||
* @user_data: user data | ||||
* @graph: graph to report, NULL for the default graph | ||||
* @flags: bitmask of #raptor_graph_mark_flags flags | ||||
* | ||||
* Graph start/end mark handler function. | ||||
* | ||||
* Records start and end of graphs happening in a stream of generated | ||||
* #raptor_statement via the statement handler. The callback starts a | ||||
* graph when @flags has #RAPTOR_GRAPH_MARK_START bit set. | ||||
* | ||||
* The start and ends may be either declared in the syntax via some | ||||
* keyword or mechanism such as TRiG {} syntax when @flags has bit | ||||
* #RAPTOR_GRAPH_MARK_DECLARED set, or be implied by the start/end of | ||||
* the data in other syntaxes, and the bit will be unset. | ||||
*/ | ||||
typedef void (*raptor_graph_mark_handler)(void *user_data, raptor_uri *grap | ||||
h, int flags); | ||||
/** | ||||
* raptor_generate_bnodeid_handler: | ||||
* @user_data: user data | ||||
* @user_bnodeid: a user-specified ID or NULL if none available. | ||||
* | ||||
* Generate a blank node identifier handler function. | ||||
* | ||||
* Return value: new blank node ID to use | ||||
*/ | ||||
typedef unsigned char* (*raptor_generate_bnodeid_handler)(void *user_data, | ||||
unsigned char* user_bnodeid); | ||||
/** | ||||
* raptor_namespace_handler: | ||||
* @user_data: user data | ||||
* @nspace: #raptor_namespace declared | ||||
* | ||||
* XML Namespace declaration reporting handler set by | ||||
* raptor_parser_set_namespace_handler(). | ||||
*/ | ||||
typedef void (*raptor_namespace_handler)(void* user_data, raptor_namespace | ||||
*nspace); | ||||
/** | ||||
* raptor_www_write_bytes_handler: | ||||
* @www: WWW object | ||||
* @userdata: user data | ||||
* @ptr: data pointer | ||||
* @size: size of individual item | ||||
* @nmemb: number of items | ||||
* | ||||
* Receiving bytes of data from WWW retrieval handler. | ||||
* | ||||
* Set by raptor_www_set_write_bytes_handler(). | ||||
*/ | ||||
typedef void (*raptor_www_write_bytes_handler)(raptor_www* www, void *userd | ||||
ata, const void *ptr, size_t size, size_t nmemb); | ||||
/** | ||||
* raptor_www_content_type_handler: | ||||
* @www: WWW object | ||||
* @userdata: user data | ||||
* @content_type: content type seen | ||||
* | ||||
* Receiving Content-Type: header from WWW retrieval handler. | ||||
* | ||||
* Set by raptor_www_set_content_type_handler(). | ||||
*/ | ||||
typedef void (*raptor_www_content_type_handler)(raptor_www* www, void *user | ||||
data, const char *content_type); | ||||
/** | ||||
* raptor_www_final_uri_handler: | ||||
* @www: WWW object | ||||
* @userdata: user data | ||||
* @final_uri: final URI seen | ||||
* | ||||
* Receiving the final resolved URI from a WWW retrieval | ||||
* | ||||
* Set by raptor_www_set_final_uri_handler(). | ||||
*/ | ||||
typedef void (*raptor_www_final_uri_handler)(raptor_www* www, void *userdat | ||||
a, raptor_uri *final_uri); | ||||
/** | ||||
* raptor_uri_filter_func: | ||||
* @user_data: user data | ||||
* @uri: #raptor_uri URI to check | ||||
* | ||||
* Callback function for #raptor_www_set_uri_filter | ||||
* | ||||
* Return value: non-0 to filter the URI | ||||
*/ | ||||
typedef int (*raptor_uri_filter_func)(void *user_data, raptor_uri* uri); | ||||
/** | ||||
* raptor_world_flag: | ||||
* @RAPTOR_WORLD_FLAG_LIBXML_GENERIC_ERROR_SAVE: if set (non-0 value) - sav | ||||
e/restore the libxml generic error handler when raptor library initializes | ||||
(default set) | ||||
* @RAPTOR_WORLD_FLAG_LIBXML_STRUCTURED_ERROR_SAVE: if set (non-0 value) - | ||||
save/restore the libxml structured error handler when raptor library termin | ||||
ates (default set) | ||||
* @RAPTOR_WORLD_FLAG_URI_INTERNING: if set (non-0 value) - each URI is sav | ||||
ed interned in-memory and reused (default set) | ||||
* @RAPTOR_WORLD_FLAG_WWW_SKIP_INIT_FINISH: if set (non-0 value) the raptor | ||||
will neither initialise or terminate the lower level WWW library. Usually | ||||
in raptor initialising either curl_global_init (for libcurl) are called an | ||||
d in raptor cleanup, curl_global_cleanup is called. This flag allows the | ||||
application finer control over these libraries such as setting other global | ||||
options or potentially calling and terminating raptor several times. It d | ||||
oes mean that applications which use this call must do their own extra work | ||||
in order to allocate and free all resources to the system. | ||||
* | ||||
* Raptor world flags | ||||
* | ||||
* These are used by raptor_world_set_flags() to control raptor-wide | ||||
* options across classes. These must be set before | ||||
* raptor_world_open() is called explicitly or implicitly (by | ||||
* creating a raptor object). There is no enumeration function for | ||||
* these flags because they are not user options and must be set | ||||
* before the library is initialised. For similar reasons, there is | ||||
* no get function. | ||||
* | ||||
* If any libxml handler saving/restoring is enabled, any existing | ||||
* handler and context is saved before parsing and restored | ||||
* afterwards. Otherwise, no saving/restoring is performed. | ||||
* | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_WORLD_FLAG_LIBXML_GENERIC_ERROR_SAVE = 1, | ||||
RAPTOR_WORLD_FLAG_LIBXML_STRUCTURED_ERROR_SAVE = 2, | ||||
RAPTOR_WORLD_FLAG_URI_INTERNING = 3, | ||||
RAPTOR_WORLD_FLAG_WWW_SKIP_INIT_FINISH = 4 | ||||
} raptor_world_flag; | ||||
/** | ||||
* raptor_data_compare_handler: | ||||
* @data1: first data object | ||||
* @data2: second data object | ||||
* | ||||
* Function to compare two data objects - signature like strcmp() and funct | ||||
ion pssed to qsort() | ||||
* | ||||
* Designed to be passed into generic data structure constructors | ||||
* like raptor_new_avltree(). | ||||
* | ||||
* Return value: compare value <0 if @data1 is before @data2, =0 if equal, | ||||
>0 if @data1 is after @data2 | ||||
*/ | ||||
typedef int (*raptor_data_compare_handler)(const void* data1, const void* d | ||||
ata2); | ||||
/** | ||||
* raptor_data_malloc_handler: | ||||
* @size: data size | ||||
* | ||||
* Typedef for a function to allocate memory - signature like malloc() | ||||
* | ||||
* Designed to be passed into constructors | ||||
* like raptor_www_fetch_to_string | ||||
* | ||||
* Return value: pointer to newly allocated memory or NULL on failure | ||||
*/ | ||||
typedef void* (*raptor_data_malloc_handler)(size_t size); | ||||
/** | ||||
* raptor_data_free_handler: | ||||
* @data: data object or NULL | ||||
* | ||||
* Typedef for function to free a data object - signature like free() | ||||
* | ||||
* Designed to be passed into generic data structure constructors | ||||
* like raptor_new_avltree(). If @data is NULL, nothing should be done. | ||||
*/ | ||||
typedef void (*raptor_data_free_handler)(void* data); | ||||
/** | ||||
* raptor_data_context_free_handler: | ||||
* @context: context data for the free function | ||||
* @object: object to free | ||||
* | ||||
* Handler function for freeing a sequence item with a contextual pointer. | ||||
* | ||||
* Set by raptor_new_sequence_with_context(). | ||||
*/ | ||||
typedef void (*raptor_data_context_free_handler)(void* context, void* objec | ||||
t); | ||||
/** | ||||
* raptor_data_print_handler: | ||||
* @object: object to print | ||||
* @fh: FILE* to print to | ||||
* | ||||
* Handler function for printing an object to a stream. | ||||
* | ||||
* Set by raptor_new_sequence() | ||||
* | ||||
* Return value: non-0 on failure | ||||
*/ | ||||
typedef int (*raptor_data_print_handler)(void *object, FILE *fh); | ||||
/** | ||||
* raptor_data_context_print_handler: | ||||
* @context: context data for the print function | ||||
* @object: object to print | ||||
* @fh: FILE* to print to | ||||
* | ||||
* Function function for printing an object with data context to a stream. | ||||
* | ||||
* Set by raptor_new_sequence_with_context() | ||||
* | ||||
* Return value: non-0 on failure | ||||
*/ | ||||
typedef int (*raptor_data_context_print_handler)(void *context, void *objec | ||||
t, FILE *fh); | ||||
/** | ||||
* raptor_stringbuffer: | ||||
* | ||||
* Raptor string buffer class | ||||
*/ | ||||
typedef struct raptor_stringbuffer_s raptor_stringbuffer; | ||||
/* Public functions */ | ||||
#define raptor_new_world() raptor_new_world_internal(RAPTOR_VERSION) | ||||
/* The real target of the raptor_new_world() macro */ | ||||
RAPTOR_API | ||||
raptor_world *raptor_new_world_internal(unsigned int version_decimal); | ||||
RAPTOR_API | ||||
int raptor_world_open(raptor_world* world); | ||||
RAPTOR_API | ||||
void raptor_free_world(raptor_world* world); | ||||
RAPTOR_API | ||||
int raptor_world_set_libxslt_security_preferences(raptor_world *world, void | ||||
*security_preferences); | ||||
RAPTOR_API | ||||
int raptor_world_set_flag(raptor_world *world, raptor_world_flag flag, int | ||||
value); | ||||
RAPTOR_API | ||||
int raptor_world_set_log_handler(raptor_world *world, void *user_data, rapt | ||||
or_log_handler handler); | ||||
RAPTOR_API | ||||
void raptor_world_set_generate_bnodeid_handler(raptor_world* world, void *u | ||||
ser_data, raptor_generate_bnodeid_handler handler); | ||||
RAPTOR_API | ||||
unsigned char* raptor_world_generate_bnodeid(raptor_world *world); | ||||
RAPTOR_API | ||||
void raptor_world_set_generate_bnodeid_parameters(raptor_world* world, char | ||||
*prefix, int base); | ||||
RAPTOR_API | ||||
const char* raptor_log_level_get_label(raptor_log_level level); | ||||
RAPTOR_API | ||||
const char* raptor_domain_get_label(raptor_domain domain); | ||||
/* Names */ | ||||
RAPTOR_API | ||||
int raptor_world_is_parser_name(raptor_world* world, const char *name); | ||||
RAPTOR_API | ||||
const char* raptor_world_guess_parser_name(raptor_world* world, raptor_uri | ||||
*uri, const char *mime_type, const unsigned char *buffer, size_t len, const | ||||
unsigned char *identifier); | ||||
RAPTOR_API | ||||
int raptor_world_is_serializer_name(raptor_world* world, const char *name); | ||||
/* Syntax descriptions */ | ||||
RAPTOR_API | ||||
const raptor_syntax_description* raptor_world_get_parser_description(raptor | ||||
_world* world, unsigned int counter); | ||||
RAPTOR_API | ||||
const raptor_syntax_description* raptor_world_get_serializer_description(ra | ||||
ptor_world* world, unsigned int counter); | ||||
RAPTOR_API | ||||
int raptor_syntax_description_validate(raptor_syntax_description* desc); | ||||
RAPTOR_API | ||||
raptor_option raptor_world_get_option_from_uri(raptor_world* world, raptor_ | ||||
uri *uri); | ||||
/* Term Class */ | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_uri(raptor_world* world, raptor_uri* uri) | ||||
; | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_counted_uri_string(raptor_world* world, | ||||
const unsigned char *uri_string, size_t length); | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_uri_string(raptor_world* world, const uns | ||||
igned char *uri_string); | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_literal(raptor_world* world, const unsign | ||||
ed char* literal, raptor_uri* datatype, const unsigned char* language); | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_counted_literal(raptor_world* world, cons | ||||
t unsigned char* literal, size_t literal_len, raptor_uri* datatype, const u | ||||
nsigned char* language, unsigned char language_len); | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_blank(raptor_world* world, const unsigned | ||||
char* blank); | ||||
RAPTOR_API | ||||
raptor_term* raptor_new_term_from_counted_blank(raptor_world* world, const | ||||
unsigned char* blank, size_t length); | ||||
RAPTOR_API | ||||
raptor_term* raptor_term_copy(raptor_term* term); | ||||
RAPTOR_API | ||||
int raptor_term_compare(const raptor_term *t1, const raptor_term *t2); | ||||
RAPTOR_API | ||||
int raptor_term_equals(raptor_term* t1, raptor_term* t2); | ||||
RAPTOR_API | ||||
void raptor_free_term(raptor_term *term); | ||||
RAPTOR_API | ||||
unsigned char* raptor_term_to_counted_string(raptor_term *term, size_t* len | ||||
_p); | ||||
RAPTOR_API | ||||
unsigned char* raptor_term_to_string(raptor_term *term); | ||||
RAPTOR_API | ||||
int raptor_term_ntriples_write(const raptor_term *term, raptor_iostream* io | ||||
str); | ||||
/* Statement Class */ | ||||
RAPTOR_API | ||||
void raptor_statement_init(raptor_statement *statement, raptor_world *world | ||||
); | ||||
RAPTOR_API | ||||
void raptor_statement_clear(raptor_statement *statement); | ||||
RAPTOR_API | ||||
raptor_statement* raptor_new_statement(raptor_world *world); | ||||
RAPTOR_API | ||||
raptor_statement* raptor_new_statement_from_nodes(raptor_world* world, rapt | ||||
or_term *subject, raptor_term *predicate, raptor_term *object, raptor_term | ||||
*graph); | ||||
RAPTOR_API | ||||
raptor_statement* raptor_statement_copy(raptor_statement *statement); | ||||
RAPTOR_API | ||||
void raptor_free_statement(raptor_statement *statement); | ||||
RAPTOR_API | ||||
int raptor_statement_print(const raptor_statement * statement, FILE *stream | ||||
); | ||||
RAPTOR_API | ||||
int raptor_statement_print_as_ntriples(const raptor_statement * statement, | ||||
FILE *stream); | ||||
RAPTOR_API | ||||
int raptor_statement_compare(const raptor_statement *s1, const raptor_state | ||||
ment *s2); | ||||
RAPTOR_API | ||||
int raptor_statement_equals(const raptor_statement* s1, const raptor_statem | ||||
ent* s2); | ||||
/* Parser Class */ | ||||
RAPTOR_API | ||||
raptor_parser* raptor_new_parser(raptor_world* world, const char *name); | ||||
RAPTOR_API | ||||
raptor_parser* raptor_new_parser_for_content(raptor_world* world, raptor_ur | ||||
i *uri, const char *mime_type, const unsigned char *buffer, size_t len, con | ||||
st unsigned char *identifier); | ||||
RAPTOR_API | ||||
void raptor_free_parser(raptor_parser* parser); | ||||
/* methods */ | ||||
/* Handlers */ | ||||
RAPTOR_API | ||||
void raptor_parser_set_statement_handler(raptor_parser* parser, void *user_ | ||||
data, raptor_statement_handler handler); | ||||
RAPTOR_API | ||||
void raptor_parser_set_graph_mark_handler(raptor_parser* parser, void *user | ||||
_data, raptor_graph_mark_handler handler); | ||||
RAPTOR_API | ||||
void raptor_parser_set_namespace_handler(raptor_parser* parser, void *user_ | ||||
data, raptor_namespace_handler handler); | ||||
RAPTOR_API | ||||
void raptor_parser_set_uri_filter(raptor_parser* parser, raptor_uri_filter_ | ||||
func filter, void* user_data); | ||||
RAPTOR_API | ||||
raptor_locator* raptor_parser_get_locator(raptor_parser* rdf_parser); | ||||
/* Parsing functions */ | ||||
RAPTOR_API | ||||
int raptor_parser_parse_start(raptor_parser *rdf_parser, raptor_uri *uri); | ||||
RAPTOR_API | ||||
int raptor_parser_parse_chunk(raptor_parser* rdf_parser, const unsigned cha | ||||
r *buffer, size_t len, int is_end); | ||||
RAPTOR_API | ||||
int raptor_parser_parse_file_stream(raptor_parser* rdf_parser, FILE *stream | ||||
, const char *filename, raptor_uri *base_uri); | ||||
RAPTOR_API | ||||
int raptor_parser_parse_file(raptor_parser* rdf_parser, raptor_uri *uri, ra | ||||
ptor_uri *base_uri); | ||||
RAPTOR_API | ||||
int raptor_parser_parse_uri(raptor_parser* rdf_parser, raptor_uri *uri, rap | ||||
tor_uri *base_uri); | ||||
RAPTOR_API | ||||
int raptor_parser_parse_uri_with_connection(raptor_parser* rdf_parser, rapt | ||||
or_uri *uri, raptor_uri *base_uri, void *connection); | ||||
RAPTOR_API | ||||
int raptor_parser_parse_iostream(raptor_parser* rdf_parser, raptor_iostream | ||||
*iostr, raptor_uri *base_uri); | ||||
RAPTOR_API | ||||
void raptor_parser_parse_abort(raptor_parser* rdf_parser); | ||||
RAPTOR_API | ||||
const char* raptor_parser_get_name(raptor_parser *rdf_parser); | ||||
RAPTOR_API | ||||
const raptor_syntax_description* raptor_parser_get_description(raptor_parse | ||||
r *rdf_parser); | ||||
/* parser option methods */ | ||||
RAPTOR_API | ||||
int raptor_parser_set_option(raptor_parser *parser, raptor_option option, c | ||||
onst char* string, int integer); | ||||
RAPTOR_API | ||||
int raptor_parser_get_option(raptor_parser *parser, raptor_option option, c | ||||
har** string_p, int* integer_p); | ||||
/* parser utility methods */ | ||||
RAPTOR_API | ||||
const char* raptor_parser_get_accept_header(raptor_parser* rdf_parser); | ||||
RAPTOR_API | ||||
raptor_world* raptor_parser_get_world(raptor_parser* rdf_parser); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_parser_get_graph(raptor_parser* rdf_parser); | ||||
/* Locator Class */ | ||||
/* methods */ | ||||
RAPTOR_API | ||||
int raptor_locator_print(raptor_locator* locator, FILE *stream); | ||||
RAPTOR_API | ||||
int raptor_locator_format(char *buffer, size_t length, raptor_locator* loca | ||||
tor); | ||||
RAPTOR_API | ||||
int raptor_locator_line(raptor_locator *locator); | ||||
RAPTOR_API | ||||
int raptor_locator_column(raptor_locator *locator); | ||||
RAPTOR_API | ||||
int raptor_locator_byte(raptor_locator *locator); | ||||
RAPTOR_API | ||||
const char* raptor_locator_file(raptor_locator *locator); | ||||
RAPTOR_API | ||||
const char* raptor_locator_uri(raptor_locator *locator); | ||||
/* Serializer Class */ | ||||
RAPTOR_API | ||||
raptor_serializer* raptor_new_serializer(raptor_world* world, const char *n | ||||
ame); | ||||
RAPTOR_API | ||||
void raptor_free_serializer(raptor_serializer* rdf_serializer); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
int raptor_serializer_start_to_iostream(raptor_serializer *rdf_serializer, | ||||
raptor_uri *uri, raptor_iostream *iostream); | ||||
RAPTOR_API | ||||
int raptor_serializer_start_to_filename(raptor_serializer *rdf_serializer, | ||||
const char *filename); | ||||
RAPTOR_API | ||||
int raptor_serializer_start_to_string(raptor_serializer *rdf_serializer, ra | ||||
ptor_uri *uri, void **string_p, size_t *length_p); | ||||
RAPTOR_API | ||||
int raptor_serializer_start_to_file_handle(raptor_serializer *rdf_serialize | ||||
r, raptor_uri *uri, FILE *fh); | ||||
RAPTOR_API | ||||
int raptor_serializer_set_namespace(raptor_serializer* rdf_serializer, rapt | ||||
or_uri *uri, const unsigned char *prefix); | ||||
RAPTOR_API | ||||
int raptor_serializer_set_namespace_from_namespace(raptor_serializer* rdf_s | ||||
erializer, raptor_namespace *nspace); | ||||
RAPTOR_API | ||||
int raptor_serializer_serialize_statement(raptor_serializer* rdf_serializer | ||||
, raptor_statement *statement); | ||||
RAPTOR_API | ||||
int raptor_serializer_serialize_end(raptor_serializer *rdf_serializer); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_serializer_get_iostream(raptor_serializer *serializ | ||||
er); | ||||
RAPTOR_API | ||||
raptor_locator* raptor_serializer_get_locator(raptor_serializer *rdf_serial | ||||
izer); | ||||
RAPTOR_API | ||||
int raptor_serializer_flush(raptor_serializer *rdf_serializer); | ||||
RAPTOR_API | ||||
const raptor_syntax_description* raptor_serializer_get_description(raptor_s | ||||
erializer *rdf_serializer); | ||||
/* serializer option methods */ | ||||
RAPTOR_API | ||||
int raptor_serializer_set_option(raptor_serializer *serializer, raptor_opti | ||||
on option, const char* string, int integer); | ||||
RAPTOR_API | ||||
int raptor_serializer_get_option(raptor_serializer *serializer, raptor_opti | ||||
on option, char** string_p, int* integer_p); | ||||
/* utility methods */ | ||||
RAPTOR_API | ||||
raptor_world* raptor_serializer_get_world(raptor_serializer* rdf_serializer | ||||
); | ||||
/* memory functions */ | ||||
RAPTOR_API | ||||
void raptor_free_memory(void *ptr); | ||||
RAPTOR_API | ||||
void* raptor_alloc_memory(size_t size); | ||||
RAPTOR_API | ||||
void* raptor_calloc_memory(size_t nmemb, size_t size); | ||||
/* URI Class */ | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_from_counted_string(raptor_world* world, const u | ||||
nsigned char *uri_string, size_t length); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri(raptor_world* world, const unsigned char *uri_st | ||||
ring); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_from_uri_local_name(raptor_world* world, raptor_ | ||||
uri *uri, const unsigned char *local_name); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_relative_to_base(raptor_world* world, raptor_uri | ||||
*base_uri, const unsigned char *uri_string); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_from_id(raptor_world* world, raptor_uri *base_ur | ||||
i, const unsigned char *id); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_for_rdf_concept(raptor_world* world, const unsig | ||||
ned char *name); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_for_xmlbase(raptor_uri* old_uri); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_new_uri_for_retrieval(raptor_uri* old_uri); | ||||
RAPTOR_API | ||||
void raptor_free_uri(raptor_uri *uri); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
int raptor_uri_equals(raptor_uri* uri1, raptor_uri* uri2); | ||||
RAPTOR_API | ||||
int raptor_uri_compare(raptor_uri* uri1, raptor_uri* uri2); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_uri_copy(raptor_uri *uri); | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_as_string(raptor_uri *uri); | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_as_counted_string(raptor_uri *uri, size_t* len_p) | ||||
; | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_to_relative_counted_uri_string(raptor_uri *base_u | ||||
ri, raptor_uri *reference_uri, size_t *length_p); | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_to_relative_uri_string(raptor_uri *base_uri, rap | ||||
tor_uri *reference_uri); | ||||
RAPTOR_API | ||||
int raptor_uri_print(const raptor_uri* uri, FILE *stream); | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_to_counted_string(raptor_uri *uri, size_t *len_p) | ||||
; | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_to_string(raptor_uri *uri); | ||||
RAPTOR_API | ||||
raptor_world* raptor_uri_get_world(raptor_uri *uri); | ||||
/* XML utility functions */ | ||||
RAPTOR_API | ||||
int raptor_xml_escape_string_any(raptor_world* world, const unsigned char * | ||||
string, size_t len, unsigned char *buffer, size_t length, char quote, int x | ||||
ml_version); | ||||
RAPTOR_API | ||||
int raptor_xml_escape_string_any_write(const unsigned char *string, size_t | ||||
len, char quote, int xml_version, raptor_iostream* iostr); | ||||
RAPTOR_API | ||||
int raptor_xml_escape_string(raptor_world *world, const unsigned char *stri | ||||
ng, size_t len, unsigned char *buffer, size_t length, char quote); | ||||
RAPTOR_API | ||||
int raptor_xml_escape_string_write(const unsigned char *string, size_t len, | ||||
char quote, raptor_iostream* iostr); | ||||
RAPTOR_API | ||||
int raptor_xml_name_check(const unsigned char *string, size_t length, int x | ||||
ml_version); | ||||
/* portable vsnprintf utility function */ | ||||
RAPTOR_API | ||||
char* raptor_vsnprintf(const char *message, va_list arguments) RAPTOR_PRINT | ||||
F_FORMAT(1, 0); | ||||
/* RFC2396 URI resolving functions */ | ||||
RAPTOR_API | ||||
size_t raptor_uri_resolve_uri_reference(const unsigned char *base_uri, cons | ||||
t unsigned char *reference_uri, unsigned char* buffer, size_t length); | ||||
/* URI String utility functions */ | ||||
RAPTOR_API | ||||
unsigned char* raptor_uri_filename_to_uri_string(const char *filename); | ||||
RAPTOR_API | ||||
char* raptor_uri_uri_string_to_filename(const unsigned char *uri_string); | ||||
RAPTOR_API | ||||
char* raptor_uri_uri_string_to_filename_fragment(const unsigned char *uri_s | ||||
tring, unsigned char **fragment_p); | ||||
RAPTOR_API | ||||
int raptor_uri_uri_string_is_file_uri(const unsigned char* uri_string); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_append_uri_escaped_counted_string(raptor_stringbuff | ||||
er* sb, const char* string, size_t length, int space_is_plus); | ||||
/** | ||||
* RAPTOR_RDF_MS_URI: | ||||
* | ||||
* RDF Namespace URI (rdf:). | ||||
* | ||||
* Copy with raptor_uri_copy() to use. | ||||
*/ | ||||
#define RAPTOR_RDF_MS_URI raptor_rdf_namespace_uri | ||||
/** | ||||
* RAPTOR_RDF_SCHEMA_URI: | ||||
* | ||||
* RDF Schema Namespace URI (rdfs:). | ||||
* | ||||
* Copy with raptor_uri_copy() to use. | ||||
*/ | ||||
#define RAPTOR_RDF_SCHEMA_URI raptor_rdf_schema_namespace_uri | ||||
/** | ||||
* RAPTOR_XMLSCHEMA_DATATYPES_URI: | ||||
* | ||||
* XML Schema Datatypes URI (xsd:). | ||||
* | ||||
* Copy with raptor_uri_copy() to use. | ||||
*/ | ||||
#define RAPTOR_XMLSCHEMA_DATATYPES_URI raptor_xmlschema_datatypes_namespace | ||||
_uri | ||||
/** | ||||
* RAPTOR_OWL_URI: | ||||
* | ||||
* OWL Namespace URI (owl:). | ||||
* | ||||
* Copy with raptor_uri_copy() to use. | ||||
*/ | ||||
#define RAPTOR_OWL_URI raptor_owl_namespace_uri | ||||
/* raptor_www */ | ||||
RAPTOR_API | ||||
raptor_www* raptor_new_www(raptor_world* world); | ||||
RAPTOR_API | ||||
raptor_www* raptor_new_www_with_connection(raptor_world* world, void* conne | ||||
ction); | ||||
RAPTOR_API | ||||
void raptor_free_www(raptor_www *www); | ||||
RAPTOR_API | ||||
void raptor_www_set_user_agent(raptor_www *www, const char *user_agent); | ||||
RAPTOR_API | ||||
void raptor_www_set_proxy(raptor_www *www, const char *proxy); | ||||
RAPTOR_API | ||||
void raptor_www_set_http_accept(raptor_www *www, const char *value); | ||||
RAPTOR_API | ||||
void raptor_www_set_write_bytes_handler(raptor_www *www, raptor_www_write_b | ||||
ytes_handler handler, void *user_data); | ||||
RAPTOR_API | ||||
void raptor_www_set_content_type_handler(raptor_www *www, raptor_www_conten | ||||
t_type_handler handler, void *user_data); | ||||
RAPTOR_API | ||||
void raptor_www_set_final_uri_handler(raptor_www* www, raptor_www_final_uri | ||||
_handler handler, void *user_data); | ||||
RAPTOR_API | ||||
void raptor_www_set_uri_filter(raptor_www* www, raptor_uri_filter_func filt | ||||
er, void* user_data); | ||||
RAPTOR_API | ||||
void raptor_www_set_connection_timeout(raptor_www* www, int timeout); | ||||
RAPTOR_API | ||||
int raptor_www_set_http_cache_control(raptor_www* www, const char* cache_co | ||||
ntrol); | ||||
RAPTOR_API | ||||
int raptor_www_fetch(raptor_www *www, raptor_uri *uri); | ||||
RAPTOR_API | ||||
int raptor_www_fetch_to_string(raptor_www *www, raptor_uri *uri, void **str | ||||
ing_p, size_t *length_p, raptor_data_malloc_handler const malloc_handler); | ||||
RAPTOR_API | ||||
void* raptor_www_get_connection(raptor_www *www); | ||||
RAPTOR_API | ||||
void raptor_www_abort(raptor_www *www, const char *reason); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_www_get_final_uri(raptor_www* www); | ||||
/* XML QNames Class */ | ||||
RAPTOR_API | ||||
raptor_qname* raptor_new_qname(raptor_namespace_stack *nstack, const unsign | ||||
ed char *name, const unsigned char *value); | ||||
RAPTOR_API | ||||
raptor_qname* raptor_new_qname_from_namespace_local_name(raptor_world* worl | ||||
d, raptor_namespace *ns, const unsigned char *local_name, const unsigned ch | ||||
ar *value); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
raptor_qname* raptor_qname_copy(raptor_qname *qname); | ||||
RAPTOR_API | ||||
void raptor_free_qname(raptor_qname* name); | ||||
RAPTOR_API | ||||
int raptor_qname_equal(raptor_qname *name1, raptor_qname *name2); | ||||
RAPTOR_API | ||||
unsigned char* raptor_qname_to_counted_name(raptor_qname *qname, size_t* le | ||||
ngth_p); | ||||
RAPTOR_API | ||||
const raptor_namespace* raptor_qname_get_namespace(raptor_qname* name); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_qname_get_local_name(raptor_qname* name); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_qname_get_value(raptor_qname* name); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_qname_get_counted_value(raptor_qname* name, siz | ||||
e_t* length_p); | ||||
RAPTOR_API | ||||
int raptor_qname_write(raptor_qname *qname, raptor_iostream* iostr); | ||||
/* QName String utility functions */ | ||||
RAPTOR_API | ||||
raptor_uri* raptor_qname_string_to_uri(raptor_namespace_stack *nstack, con | ||||
st unsigned char *name, size_t name_len); | ||||
/* XML Namespaces Stack class */ | ||||
RAPTOR_API | ||||
raptor_namespace* raptor_new_namespace_from_uri(raptor_namespace_stack *nst | ||||
ack, const unsigned char *prefix, raptor_uri* ns_uri, int depth); | ||||
RAPTOR_API | ||||
raptor_namespace_stack* raptor_new_namespaces(raptor_world* world, int defa | ||||
ults); | ||||
RAPTOR_API | ||||
int raptor_namespaces_init(raptor_world* world, raptor_namespace_stack *nst | ||||
ack, int defaults); | ||||
RAPTOR_API | ||||
void raptor_namespaces_clear(raptor_namespace_stack *nstack); | ||||
RAPTOR_API | ||||
void raptor_free_namespaces(raptor_namespace_stack *nstack); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
void raptor_namespaces_start_namespace(raptor_namespace_stack *nstack, rapt | ||||
or_namespace *nspace); | ||||
RAPTOR_API | ||||
int raptor_namespaces_start_namespace_full(raptor_namespace_stack *nstack, | ||||
const unsigned char *prefix, const unsigned char *ns_uri_string, int depth) | ||||
; | ||||
RAPTOR_API | ||||
void raptor_namespaces_end_for_depth(raptor_namespace_stack *nstack, int de | ||||
pth); | ||||
RAPTOR_API | ||||
raptor_namespace* raptor_namespaces_get_default_namespace(raptor_namespace_ | ||||
stack *nstack); | ||||
RAPTOR_API | ||||
raptor_namespace* raptor_namespaces_find_namespace(raptor_namespace_stack * | ||||
nstack, const unsigned char *prefix, int prefix_length); | ||||
RAPTOR_API | ||||
raptor_namespace* raptor_namespaces_find_namespace_by_uri(raptor_namespace_ | ||||
stack *nstack, raptor_uri *ns_uri); | ||||
RAPTOR_API | ||||
int raptor_namespaces_namespace_in_scope(raptor_namespace_stack *nstack, co | ||||
nst raptor_namespace *nspace); | ||||
RAPTOR_API | ||||
raptor_qname* raptor_new_qname_from_namespace_uri(raptor_namespace_stack *n | ||||
stack, raptor_uri *uri, int xml_version); | ||||
/* XML Namespace Class */ | ||||
RAPTOR_API | ||||
raptor_namespace* raptor_new_namespace(raptor_namespace_stack *nstack, cons | ||||
t unsigned char *prefix, const unsigned char *ns_uri_string, int depth); | ||||
RAPTOR_API | ||||
void raptor_free_namespace(raptor_namespace *ns); | ||||
RAPTOR_API | ||||
int raptor_namespace_stack_start_namespace(raptor_namespace_stack *nstack, | ||||
raptor_namespace *ns, int new_depth); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_namespace_get_uri(const raptor_namespace *ns); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_namespace_get_prefix(const raptor_namespace *ns | ||||
); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_namespace_get_counted_prefix(const raptor_names | ||||
pace *ns, size_t *length_p); | ||||
RAPTOR_API | ||||
unsigned char* raptor_namespace_format_as_xml(const raptor_namespace *ns, s | ||||
ize_t *length_p); | ||||
RAPTOR_API | ||||
int raptor_namespace_write(raptor_namespace *ns, raptor_iostream* iostr); | ||||
/* namespace string utility function */ | ||||
RAPTOR_API | ||||
int raptor_xml_namespace_string_parse(const unsigned char *string, unsigned | ||||
char **prefix, unsigned char **uri_string); | ||||
/* Sequence class */ | ||||
/** | ||||
* raptor_sequence: | ||||
* | ||||
* Raptor sequence class | ||||
*/ | ||||
typedef struct raptor_sequence_s raptor_sequence; | ||||
/* Sequence Class */ | ||||
RAPTOR_API | ||||
raptor_sequence* raptor_new_sequence(raptor_data_free_handler free_handler, | ||||
raptor_data_print_handler print_handler); | ||||
RAPTOR_API | ||||
raptor_sequence* raptor_new_sequence_with_context(raptor_data_context_free_ | ||||
handler free_handler, raptor_data_context_print_handler print_handler, void | ||||
* handler_context); | ||||
RAPTOR_API | ||||
void raptor_free_sequence(raptor_sequence* seq); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
int raptor_sequence_size(raptor_sequence* seq); | ||||
RAPTOR_API | ||||
int raptor_sequence_set_at(raptor_sequence* seq, int idx, void *data); | ||||
RAPTOR_API | ||||
int raptor_sequence_push(raptor_sequence* seq, void *data); | ||||
RAPTOR_API | ||||
int raptor_sequence_shift(raptor_sequence* seq, void *data); | ||||
RAPTOR_API | ||||
void* raptor_sequence_get_at(raptor_sequence* seq, int idx); | ||||
RAPTOR_API | ||||
void* raptor_sequence_pop(raptor_sequence* seq); | ||||
RAPTOR_API | ||||
void* raptor_sequence_unshift(raptor_sequence* seq); | ||||
RAPTOR_API | ||||
void* raptor_sequence_delete_at(raptor_sequence* seq, int idx); | ||||
RAPTOR_API | ||||
void raptor_sequence_sort(raptor_sequence* seq, raptor_data_compare_handler | ||||
compare); | ||||
/* helper for printing sequences of strings */ | ||||
RAPTOR_API | ||||
int raptor_sequence_print(raptor_sequence* seq, FILE* fh); | ||||
RAPTOR_API | ||||
int raptor_sequence_join(raptor_sequence* dest, raptor_sequence *src); | ||||
/* Unicode and UTF8 */ | ||||
/** | ||||
* raptor_unichar: | ||||
* | ||||
* raptor Unicode codepoint | ||||
*/ | ||||
typedef unsigned long raptor_unichar; | ||||
RAPTOR_API | ||||
int raptor_unicode_utf8_string_put_char(raptor_unichar c, unsigned char *ou | ||||
tput, size_t length); | ||||
RAPTOR_API | ||||
int raptor_unicode_utf8_string_get_char(const unsigned char *input, size_t | ||||
length, raptor_unichar *output); | ||||
RAPTOR_API | ||||
int raptor_unicode_is_xml11_namestartchar(raptor_unichar c); | ||||
RAPTOR_API | ||||
int raptor_unicode_is_xml10_namestartchar(raptor_unichar c); | ||||
RAPTOR_API | ||||
int raptor_unicode_is_xml11_namechar(raptor_unichar c); | ||||
RAPTOR_API | ||||
int raptor_unicode_is_xml10_namechar(raptor_unichar c); | ||||
RAPTOR_API | ||||
int raptor_unicode_check_utf8_string(const unsigned char *string, size_t le | ||||
ngth); | ||||
/* Stringbuffer Class */ | ||||
RAPTOR_API | ||||
raptor_stringbuffer* raptor_new_stringbuffer(void); | ||||
RAPTOR_API | ||||
void raptor_free_stringbuffer(raptor_stringbuffer *stringbuffer); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_append_counted_string(raptor_stringbuffer* stringbu | ||||
ffer, const unsigned char *string, size_t length, int do_copy); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_append_string(raptor_stringbuffer* stringbuffer, co | ||||
nst unsigned char *string, int do_copy); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_append_decimal(raptor_stringbuffer* stringbuffer, i | ||||
nt integer); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_append_hexadecimal(raptor_stringbuffer* stringbuffe | ||||
r, int hex); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_append_stringbuffer(raptor_stringbuffer* stringbuff | ||||
er, raptor_stringbuffer* append); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_prepend_counted_string(raptor_stringbuffer* stringb | ||||
uffer, const unsigned char *string, size_t length, int do_copy); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_prepend_string(raptor_stringbuffer* stringbuffer, c | ||||
onst unsigned char *string, int do_copy); | ||||
RAPTOR_API | ||||
unsigned char* raptor_stringbuffer_as_string(raptor_stringbuffer* stringbuf | ||||
fer); | ||||
RAPTOR_API | ||||
size_t raptor_stringbuffer_length(raptor_stringbuffer* stringbuffer); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_copy_to_string(raptor_stringbuffer* stringbuffer, u | ||||
nsigned char *string, size_t length); | ||||
/** | ||||
* raptor_iostream_init_func: | ||||
* @context: stream context data | ||||
* | ||||
* Handler function for #raptor_iostream initialising. | ||||
* | ||||
* Return value: non-0 on failure. | ||||
*/ | ||||
typedef int (*raptor_iostream_init_func) (void *context); | ||||
/** | ||||
* raptor_iostream_finish_func: | ||||
* @context: stream context data | ||||
* | ||||
* Handler function for #raptor_iostream terminating. | ||||
* | ||||
*/ | ||||
typedef void (*raptor_iostream_finish_func) (void *context); | ||||
/** | ||||
* raptor_iostream_write_byte_func | ||||
* @context: stream context data | ||||
* @byte: byte to write | ||||
* | ||||
* Handler function for implementing raptor_iostream_write_byte(). | ||||
* | ||||
* Return value: non-0 on failure. | ||||
*/ | ||||
typedef int (*raptor_iostream_write_byte_func) (void *context, const int by | ||||
te); | ||||
/** | ||||
* raptor_iostream_write_bytes_func: | ||||
* @context: stream context data | ||||
* @ptr: pointer to bytes to write | ||||
* @size: size of item | ||||
* @nmemb: number of items | ||||
* | ||||
* Handler function for implementing raptor_iostream_write_bytes(). | ||||
* | ||||
* Return value: non-0 on failure. | ||||
*/ | ||||
typedef int (*raptor_iostream_write_bytes_func) (void *context, const void | ||||
*ptr, size_t size, size_t nmemb); | ||||
/** | ||||
* raptor_iostream_write_end_func: | ||||
* @context: stream context data | ||||
* | ||||
* Handler function for implementing raptor_iostream_write_end(). | ||||
* | ||||
* Return value: non-0 on failure. | ||||
*/ | ||||
typedef int (*raptor_iostream_write_end_func) (void *context); | ||||
/** | ||||
* raptor_iostream_read_bytes_func: | ||||
* @context: stream context data | ||||
* @ptr: pointer to buffer to read into | ||||
* @size: size of buffer | ||||
* @nmemb: number of items | ||||
* | ||||
* Handler function for implementing raptor_iostream_read_bytes(). | ||||
* | ||||
* Return value: number of items read, 0 or < @size on EOF, <0 on failure | ||||
*/ | ||||
typedef int (*raptor_iostream_read_bytes_func) (void *context, void *ptr, s | ||||
ize_t size, size_t nmemb); | ||||
/** | ||||
* raptor_iostream_read_eof_func: | ||||
* @context: stream context data | ||||
* | ||||
* Handler function for implementing raptor_iostream_read_eof(). | ||||
* | ||||
* Return value: non-0 if EOF | ||||
*/ | ||||
typedef int (*raptor_iostream_read_eof_func) (void *context); | ||||
/** | ||||
* raptor_iostream_handler: | ||||
* @version: interface version. Presently 1 or 2. | ||||
* @init: initialisation handler - optional, called at most once (V1) | ||||
* @finish: finishing handler - optional, called at most once (V1) | ||||
* @write_byte: write byte handler - required (for writing) (V1) | ||||
* @write_bytes: write bytes handler - required (for writing) (V1) | ||||
* @write_end: write end handler - optional (for writing), called at most o | ||||
nce (V1) | ||||
* @read_bytes: read bytes handler - required (for reading) (V2) | ||||
* @read_eof: read EOF handler - required (for reading) (V2) | ||||
* | ||||
* I/O stream implementation handler structure. | ||||
* | ||||
*/ | ||||
typedef struct { | ||||
int version; | ||||
/* V1 functions */ | ||||
raptor_iostream_init_func init; | ||||
raptor_iostream_finish_func finish; | ||||
raptor_iostream_write_byte_func write_byte; | ||||
raptor_iostream_write_bytes_func write_bytes; | ||||
raptor_iostream_write_end_func write_end; | ||||
/* V2 functions */ | ||||
raptor_iostream_read_bytes_func read_bytes; | ||||
raptor_iostream_read_eof_func read_eof; | ||||
} raptor_iostream_handler; | ||||
/* I/O Stream Class */ | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_from_handler(raptor_world* world, void | ||||
*user_data, const raptor_iostream_handler* const handler); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_to_sink(raptor_world* world); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_to_filename(raptor_world* world, const | ||||
char *filename); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_to_file_handle(raptor_world* world, FI | ||||
LE *handle); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_to_string(raptor_world* world, void ** | ||||
string_p, size_t *length_p, raptor_data_malloc_handler const malloc_handler | ||||
); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_from_sink(raptor_world* world); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_from_filename(raptor_world* world, con | ||||
st char *filename); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_from_file_handle(raptor_world* world, | ||||
FILE *handle); | ||||
RAPTOR_API | ||||
raptor_iostream* raptor_new_iostream_from_string(raptor_world* world, void | ||||
*string, size_t length); | ||||
RAPTOR_API | ||||
void raptor_free_iostream(raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_write_bytes(const void *ptr, size_t size, size_t nmemb, | ||||
raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_write_byte(const int byte, raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_write_end(raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_string_write(const void *string, raptor_iostream *iostr | ||||
); | ||||
RAPTOR_API | ||||
int raptor_iostream_counted_string_write(const void *string, size_t len, ra | ||||
ptor_iostream *iostr); | ||||
RAPTOR_API | ||||
unsigned long raptor_iostream_tell(raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_decimal_write(int integer, raptor_iostream* iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_hexadecimal_write(unsigned int integer, int width, rapt | ||||
or_iostream* iostr); | ||||
RAPTOR_API | ||||
int raptor_stringbuffer_write(raptor_stringbuffer *sb, raptor_iostream* ios | ||||
tr); | ||||
RAPTOR_API | ||||
int raptor_uri_write(raptor_uri *uri, raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_read_bytes(void *ptr, size_t size, size_t nmemb, raptor | ||||
_iostream* iostr); | ||||
RAPTOR_API | ||||
int raptor_iostream_read_eof(raptor_iostream *iostr); | ||||
/* I/O Stream utility functions */ | ||||
RAPTOR_API | ||||
int raptor_string_ntriples_write(const unsigned char *string, size_t len, c | ||||
onst char delim, raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_string_python_write(const unsigned char *string, size_t len, con | ||||
st char delim, int flags, raptor_iostream *iostr); | ||||
RAPTOR_API | ||||
int raptor_statement_ntriples_write(const raptor_statement *statement, rapt | ||||
or_iostream* iostr, int write_graph_term); | ||||
/* Parser and Serializer options */ | ||||
/** | ||||
* raptor_option_value_type: | ||||
* @RAPTOR_OPTION_VALUE_TYPE_BOOL: Boolean integer value. Non-0 is true | ||||
* @RAPTOR_OPTION_VALUE_TYPE_INT: Decimal integer value | ||||
* @RAPTOR_OPTION_VALUE_TYPE_STRING: String value | ||||
* @RAPTOR_OPTION_VALUE_TYPE_URI: URI String value. | ||||
* @RAPTOR_OPTION_VALUE_TYPE_LAST: internal | ||||
* | ||||
* Option value types. | ||||
*/ | ||||
typedef enum { | ||||
RAPTOR_OPTION_VALUE_TYPE_BOOL, | ||||
RAPTOR_OPTION_VALUE_TYPE_INT, | ||||
RAPTOR_OPTION_VALUE_TYPE_STRING, | ||||
RAPTOR_OPTION_VALUE_TYPE_URI, | ||||
RAPTOR_OPTION_VALUE_TYPE_LAST = RAPTOR_OPTION_VALUE_TYPE_URI | ||||
} raptor_option_value_type; | ||||
/** | ||||
* raptor_option_description: | ||||
* @domain: domain ID | ||||
* @option: option ID | ||||
* @value_type: data type of option value | ||||
* @name: short name for option | ||||
* @name_len: length of @name | ||||
* @label: description of option | ||||
* @uri: URI identifying option | ||||
* | ||||
* Description of an option for a domain. | ||||
*/ | ||||
typedef struct { | ||||
raptor_domain domain; | ||||
raptor_option option; | ||||
raptor_option_value_type value_type; | ||||
const char* name; | ||||
size_t name_len; | ||||
const char* label; | ||||
raptor_uri* uri; | ||||
} raptor_option_description; | ||||
RAPTOR_API | ||||
unsigned int raptor_option_get_count(void); | ||||
RAPTOR_API | ||||
const char* raptor_option_get_value_type_label(const raptor_option_value_ty | ||||
pe type); | ||||
RAPTOR_API | ||||
void raptor_free_option_description(raptor_option_description* option_descr | ||||
iption); | ||||
RAPTOR_API | ||||
raptor_option_description* raptor_world_get_option_description(raptor_world | ||||
* world, const raptor_domain domain, const raptor_option option); | ||||
/* SAX2 element Class (raptor_xml_element) */ | ||||
RAPTOR_API | ||||
raptor_xml_element* raptor_new_xml_element(raptor_qname* name, const unsign | ||||
ed char* xml_language, raptor_uri* xml_base); | ||||
RAPTOR_API | ||||
raptor_xml_element* raptor_new_xml_element_from_namespace_local_name(raptor | ||||
_namespace *ns, const unsigned char *name, const unsigned char *xml_languag | ||||
e, raptor_uri *xml_base); | ||||
RAPTOR_API | ||||
void raptor_free_xml_element(raptor_xml_element *element); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
raptor_qname* raptor_xml_element_get_name(raptor_xml_element *xml_element); | ||||
RAPTOR_API | ||||
void raptor_xml_element_set_attributes(raptor_xml_element* xml_element, rap | ||||
tor_qname **attributes, int count); | ||||
RAPTOR_API | ||||
raptor_qname** raptor_xml_element_get_attributes(raptor_xml_element* xml_el | ||||
ement); | ||||
RAPTOR_API | ||||
int raptor_xml_element_get_attributes_count(raptor_xml_element* xml_element | ||||
); | ||||
RAPTOR_API | ||||
int raptor_xml_element_declare_namespace(raptor_xml_element* xml_element, r | ||||
aptor_namespace *nspace); | ||||
RAPTOR_API | ||||
int raptor_xml_element_write(raptor_xml_element *element, raptor_namespace_ | ||||
stack *nstack, int is_empty, int is_end, int depth, raptor_iostream *iostr) | ||||
; | ||||
RAPTOR_API | ||||
int raptor_xml_element_is_empty(raptor_xml_element* xml_element); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_xml_element_get_language(raptor_xml_element* xm | ||||
l_element); | ||||
/* XML Writer Class (raptor_xml_writer) */ | ||||
RAPTOR_API | ||||
raptor_xml_writer* raptor_new_xml_writer(raptor_world* world, raptor_namesp | ||||
ace_stack *nstack, raptor_iostream* iostr); | ||||
RAPTOR_API | ||||
void raptor_free_xml_writer(raptor_xml_writer* xml_writer); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
void raptor_xml_writer_empty_element(raptor_xml_writer* xml_writer, raptor_ | ||||
xml_element *element); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_start_element(raptor_xml_writer* xml_writer, raptor_ | ||||
xml_element *element); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_end_element(raptor_xml_writer* xml_writer, raptor_xm | ||||
l_element *element); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_newline(raptor_xml_writer* xml_writer); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_cdata(raptor_xml_writer* xml_writer, const unsigned | ||||
char *s); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_cdata_counted(raptor_xml_writer* xml_writer, const u | ||||
nsigned char *s, unsigned int len); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_raw(raptor_xml_writer* xml_writer, const unsigned ch | ||||
ar *s); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_raw_counted(raptor_xml_writer* xml_writer, const uns | ||||
igned char *s, unsigned int len); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_comment(raptor_xml_writer* xml_writer, const unsigne | ||||
d char *s); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_comment_counted(raptor_xml_writer* xml_writer, const | ||||
unsigned char *s, unsigned int len); | ||||
RAPTOR_API | ||||
void raptor_xml_writer_flush(raptor_xml_writer* xml_writer); | ||||
RAPTOR_API | ||||
int raptor_xml_writer_set_option(raptor_xml_writer *xml_writer, raptor_opti | ||||
on option, char* string, int integer); | ||||
RAPTOR_API | ||||
int raptor_xml_writer_get_option(raptor_xml_writer *xml_writer, raptor_opti | ||||
on option, char** string_p, int* integer_p); | ||||
RAPTOR_API | ||||
int raptor_xml_writer_get_depth(raptor_xml_writer *xml_writer); | ||||
/** | ||||
* raptor_sax2_start_element_handler: | ||||
* @user_data: user data | ||||
* @xml_element: XML element | ||||
* | ||||
* SAX2 start element handler | ||||
*/ | ||||
typedef void (*raptor_sax2_start_element_handler)(void *user_data, raptor_x | ||||
ml_element *xml_element); | ||||
/** | ||||
* raptor_sax2_end_element_handler: | ||||
* @user_data: user data | ||||
* @xml_element: XML element | ||||
* | ||||
* SAX2 end element handler | ||||
*/ | ||||
typedef void (*raptor_sax2_end_element_handler)(void *user_data, raptor_xml | ||||
_element* xml_element); | ||||
/** | ||||
* raptor_sax2_characters_handler: | ||||
* @user_data: user data | ||||
* @xml_element: XML element | ||||
* @s: string | ||||
* @len: string len | ||||
* | ||||
* SAX2 characters handler | ||||
*/ | ||||
typedef void (*raptor_sax2_characters_handler)(void *user_data, raptor_xml_ | ||||
element* xml_element, const unsigned char *s, int len); | ||||
/** | ||||
* raptor_sax2_cdata_handler: | ||||
* @user_data: user data | ||||
* @xml_element: XML element | ||||
* @s: string | ||||
* @len: string len | ||||
* SAX2 CDATA section handler | ||||
*/ | ||||
typedef void (*raptor_sax2_cdata_handler)(void *user_data, raptor_xml_eleme | ||||
nt* xml_element, const unsigned char *s, int len); | ||||
/** | ||||
* raptor_sax2_comment_handler: | ||||
* @user_data: user data | ||||
* @xml_element: XML element | ||||
* @s: string | ||||
* | ||||
* SAX2 XML comment handler | ||||
*/ | ||||
typedef void (*raptor_sax2_comment_handler)(void *user_data, raptor_xml_ele | ||||
ment* xml_element, const unsigned char *s); | ||||
/** | ||||
* raptor_sax2_unparsed_entity_decl_handler: | ||||
* @user_data: user data | ||||
* @entityName: entity name | ||||
* @base: base URI | ||||
* @systemId: system ID | ||||
* @publicId: public ID | ||||
* @notationName: notation name | ||||
* | ||||
* SAX2 unparsed entity (NDATA) handler | ||||
*/ | ||||
typedef void (*raptor_sax2_unparsed_entity_decl_handler)(void *user_data, c | ||||
onst unsigned char* entityName, const unsigned char* base, const unsigned c | ||||
har* systemId, const unsigned char* publicId, const unsigned char* notation | ||||
Name); | ||||
/** | ||||
* raptor_sax2_external_entity_ref_handler: | ||||
* @user_data: user data | ||||
* @context: context | ||||
* @base: base URI | ||||
* @systemId: system ID | ||||
* @publicId: public ID | ||||
* | ||||
* SAX2 external entity reference handler | ||||
* | ||||
* Return value: 0 if processing should not continue because of a | ||||
* fatal error in the handling of the external entity. | ||||
*/ | ||||
typedef int (*raptor_sax2_external_entity_ref_handler)(void *user_data, con | ||||
st unsigned char* context, const unsigned char* base, const unsigned char* | ||||
systemId, const unsigned char* publicId); | ||||
/* SAX2 API */ | ||||
RAPTOR_API | ||||
raptor_sax2* raptor_new_sax2(raptor_world *world, raptor_locator *locator, | ||||
void* user_data); | ||||
RAPTOR_API | ||||
void raptor_free_sax2(raptor_sax2 *sax2); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
void raptor_sax2_set_start_element_handler(raptor_sax2* sax2, raptor_sax2_s | ||||
tart_element_handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_end_element_handler(raptor_sax2* sax2, raptor_sax2_end | ||||
_element_handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_characters_handler(raptor_sax2* sax2, raptor_sax2_char | ||||
acters_handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_cdata_handler(raptor_sax2* sax2, raptor_sax2_cdata_han | ||||
dler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_comment_handler(raptor_sax2* sax2, raptor_sax2_comment | ||||
_handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_unparsed_entity_decl_handler(raptor_sax2* sax2, raptor | ||||
_sax2_unparsed_entity_decl_handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_external_entity_ref_handler(raptor_sax2* sax2, raptor_ | ||||
sax2_external_entity_ref_handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_set_namespace_handler(raptor_sax2* sax2, raptor_namespace_ | ||||
handler handler); | ||||
RAPTOR_API | ||||
void raptor_sax2_parse_start(raptor_sax2 *sax2, raptor_uri *base_uri); | ||||
RAPTOR_API | ||||
int raptor_sax2_parse_chunk(raptor_sax2* sax2, const unsigned char *buffer, | ||||
size_t len, int is_end); | ||||
RAPTOR_API | ||||
const unsigned char* raptor_sax2_inscope_xml_language(raptor_sax2* sax2); | ||||
RAPTOR_API | ||||
raptor_uri* raptor_sax2_inscope_base_uri(raptor_sax2* sax2); | ||||
/* AVL Trees */ | ||||
/** | ||||
* raptor_avltree: | ||||
* | ||||
* AVL Tree | ||||
*/ | ||||
typedef struct raptor_avltree_s raptor_avltree; | ||||
/** | ||||
* raptor_avltree_iterator: | ||||
* | ||||
* AVL Tree Iterator as created by raptor_new_avltree_iterator() | ||||
*/ | ||||
typedef struct raptor_avltree_iterator_s raptor_avltree_iterator; | ||||
/** | ||||
* raptor_avltree_visit_handler: | ||||
* @depth: depth of object in tree | ||||
* @data: data object being visited | ||||
* @user_data: user data arg to raptor_avltree_visit() | ||||
* | ||||
* AVL Tree visitor function as given to raptor_avltree_visit() | ||||
* | ||||
* Return value: non-0 to terminate visit early. | ||||
*/ | ||||
typedef int (*raptor_avltree_visit_handler)(int depth, void* data, void *us | ||||
er_data); | ||||
/** | ||||
* raptor_avltree_bitflags: | ||||
* @RAPTOR_AVLTREE_FLAG_REPLACE_DUPLICATES: If set raptor_avltree_add() wil | ||||
l replace any duplicate items. If not set, raptor_avltree_add() will not re | ||||
place them and will return status >0 when adding a duplicate. (Default is n | ||||
ot set) | ||||
* | ||||
* Bit flags for AVL Tree class constructor raptor_new_avltree() | ||||
**/ | ||||
typedef enum { | ||||
RAPTOR_AVLTREE_FLAG_REPLACE_DUPLICATES = 1 | ||||
} raptor_avltree_bitflags; | ||||
RAPTOR_API | ||||
raptor_avltree* raptor_new_avltree(raptor_data_compare_handler compare_hand | ||||
ler, raptor_data_free_handler free_handler, unsigned int flags); | ||||
RAPTOR_API | ||||
void raptor_free_avltree(raptor_avltree* tree); | ||||
/* methods */ | ||||
RAPTOR_API | ||||
int raptor_avltree_add(raptor_avltree* tree, void* p_data); | ||||
RAPTOR_API | ||||
void* raptor_avltree_remove(raptor_avltree* tree, void* p_data); | ||||
RAPTOR_API | ||||
int raptor_avltree_delete(raptor_avltree* tree, void* p_data); | ||||
RAPTOR_API | ||||
void* raptor_avltree_search(raptor_avltree* tree, const void* p_data); | ||||
RAPTOR_API | ||||
int raptor_avltree_visit(raptor_avltree* tree, raptor_avltree_visit_handler | ||||
visit_handler, void* user_data); | ||||
RAPTOR_API | ||||
int raptor_avltree_size(raptor_avltree* tree); | ||||
RAPTOR_API | ||||
void raptor_avltree_set_print_handler(raptor_avltree* tree, raptor_data_pri | ||||
nt_handler print_handler); | ||||
RAPTOR_API | ||||
int raptor_avltree_print(raptor_avltree* tree, FILE* stream); | ||||
RAPTOR_API | ||||
raptor_avltree_iterator* raptor_new_avltree_iterator(raptor_avltree* tree, | ||||
void* range, raptor_data_free_handler range_free_handler, int direction); | ||||
RAPTOR_API | ||||
void raptor_free_avltree_iterator(raptor_avltree_iterator* iterator); | ||||
RAPTOR_API | ||||
int raptor_avltree_iterator_is_end(raptor_avltree_iterator* iterator); | ||||
RAPTOR_API | ||||
int raptor_avltree_iterator_next(raptor_avltree_iterator* iterator); | ||||
RAPTOR_API | ||||
void* raptor_avltree_iterator_get(raptor_avltree_iterator* iterator); | ||||
#ifdef __cplusplus | ||||
} | ||||
#endif | ||||
#endif | ||||
End of changes. 1 change blocks. | ||||
lines changed or deleted | lines changed or added | |||