Sratom
0.6.0
|
An LV2 Atom RDF serialisation library.
Typedefs | |
typedef struct SratomImpl | Sratom |
Enumerations | |
enum | SratomObjectMode { SRATOM_OBJECT_MODE_BLANK, SRATOM_OBJECT_MODE_BLANK_SUBJECT } |
Functions | |
Sratom * | sratom_new (LV2_URID_Map *map) |
void | sratom_free (Sratom *sratom) |
void | sratom_set_env (Sratom *sratom, SerdEnv *env) |
void | sratom_set_sink (Sratom *sratom, const char *base_uri, SerdStatementSink sink, SerdEndSink end_sink, void *handle) |
void | sratom_set_pretty_numbers (Sratom *sratom, bool pretty_numbers) |
void | sratom_set_object_mode (Sratom *sratom, SratomObjectMode object_mode) |
int | sratom_write (Sratom *sratom, LV2_URID_Unmap *unmap, uint32_t flags, const SerdNode *subject, const SerdNode *predicate, uint32_t type, uint32_t size, const void *body) |
void | sratom_read (Sratom *sratom, LV2_Atom_Forge *forge, SordWorld *world, SordModel *model, const SordNode *subject) |
char * | sratom_to_turtle (Sratom *sratom, LV2_URID_Unmap *unmap, const char *base_uri, const SerdNode *subject, const SerdNode *predicate, uint32_t type, uint32_t size, const void *body) |
LV2_Atom * | sratom_from_turtle (Sratom *sratom, const char *base_uri, const SerdNode *subject, const SerdNode *predicate, const char *str) |
LV2_Atom_Forge_Ref | sratom_forge_sink (LV2_Atom_Forge_Sink_Handle handle, const void *buf, uint32_t size) |
LV2_Atom * | sratom_forge_deref (LV2_Atom_Forge_Sink_Handle handle, LV2_Atom_Forge_Ref ref) |
typedef struct SratomImpl Sratom |
Atom serialiser.
enum SratomObjectMode |
Mode for reading resources to LV2 Objects.
This affects how resources (which are either blank nodes or have URIs) are read by sratom_read(), since they may be read as simple references (a URI or blank node ID) or a complete description (an atom "Object").
Currently, blank nodes are always read as Objects, but support for reading blank node IDs may be added in the future.
Enumerator | |
---|---|
SRATOM_OBJECT_MODE_BLANK | Read blank nodes as Objects, and named resources as URIs. |
SRATOM_OBJECT_MODE_BLANK_SUBJECT | Read blank nodes and the main subject as Objects, and any other named resources as URIs. The "main subject" is the subject parameter passed to sratom_read(); if this is a resource it will be read as an Object, but all other named resources encountered will be read as URIs. |
Sratom* sratom_new | ( | LV2_URID_Map * | map | ) |
Create a new Atom serialiser.
void sratom_free | ( | Sratom * | sratom | ) |
Free an Atom serialisation.
void sratom_set_env | ( | Sratom * | sratom, |
SerdEnv * | env | ||
) |
Set the environment for reading or writing Turtle.
This can be used to set namespace prefixes and a base URI for sratom_to_turtle() and sratom_from_turtle().
void sratom_set_sink | ( | Sratom * | sratom, |
const char * | base_uri, | ||
SerdStatementSink | sink, | ||
SerdEndSink | end_sink, | ||
void * | handle | ||
) |
Set the sink(s) where sratom will write its output.
This must be called before calling sratom_write().
void sratom_set_pretty_numbers | ( | Sratom * | sratom, |
bool | pretty_numbers | ||
) |
Write pretty numeric literals.
If pretty_numbers
is true, numbers will be written as pretty Turtle literals, rather than string literals with precise types. The cost of this is that the types might get fudged on a round-trip to RDF and back.
void sratom_set_object_mode | ( | Sratom * | sratom, |
SratomObjectMode | object_mode | ||
) |
Configure how resources will be read to form LV2 Objects.
int sratom_write | ( | Sratom * | sratom, |
LV2_URID_Unmap * | unmap, | ||
uint32_t | flags, | ||
const SerdNode * | subject, | ||
const SerdNode * | predicate, | ||
uint32_t | type, | ||
uint32_t | size, | ||
const void * | body | ||
) |
Write an Atom to RDF.
The serialised atom is written to the sink set by sratom_set_sink().
void sratom_read | ( | Sratom * | sratom, |
LV2_Atom_Forge * | forge, | ||
SordWorld * | world, | ||
SordModel * | model, | ||
const SordNode * | subject | ||
) |
Read an Atom from RDF.
The resulting atom will be written to forge
.
char* sratom_to_turtle | ( | Sratom * | sratom, |
LV2_URID_Unmap * | unmap, | ||
const char * | base_uri, | ||
const SerdNode * | subject, | ||
const SerdNode * | predicate, | ||
uint32_t | type, | ||
uint32_t | size, | ||
const void * | body | ||
) |
Serialise an Atom to a Turtle string.
The returned string must be free()'d by the caller.
LV2_Atom* sratom_from_turtle | ( | Sratom * | sratom, |
const char * | base_uri, | ||
const SerdNode * | subject, | ||
const SerdNode * | predicate, | ||
const char * | str | ||
) |
Read an Atom from a Turtle string.
The returned atom must be free()'d by the caller.
LV2_Atom_Forge_Ref sratom_forge_sink | ( | LV2_Atom_Forge_Sink_Handle | handle, |
const void * | buf, | ||
uint32_t | size | ||
) |
A convenient resizing sink for LV2_Atom_Forge.
The handle must point to an initialized SerdChunk.
LV2_Atom* sratom_forge_deref | ( | LV2_Atom_Forge_Sink_Handle | handle, |
LV2_Atom_Forge_Ref | ref | ||
) |
The corresponding deref function for sratom_forge_sink.