Sratom 0.6.0
Typedefs | Enumerations | Functions
Sratom

Detailed Description

An LV2 Atom RDF serialisation library.

Typedefs

typedef struct SratomImplSratom

Enumerations

enum SratomObjectMode {
SRATOM_OBJECT_MODE_BLANK,
SRATOM_OBJECT_MODE_BLANK_SUBJECT
}

Functions

Sratom *sratom_new (LV2_URID_Map *map)
voidsratom_free (Sratom *sratom)
voidsratom_set_env (Sratom *sratom, SerdEnv *env)
voidsratom_set_sink (Sratom *sratom, const char *base_uri, SerdStatementSink sink, SerdEndSink end_sink, void *handle)
voidsratom_set_pretty_numbers (Sratom *sratom, bool pretty_numbers)
voidsratom_set_object_mode (Sratom *sratom, SratomObjectMode object_mode)
intsratom_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)
voidsratom_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_Refsratom_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 Documentation

§ Sratom

typedef struct SratomImpl Sratom

Atom serialiser.

Enumeration Type Documentation

§ 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.

Function Documentation

§ sratom_new()

Sratom* sratom_new ( LV2_URID_Map * map)

Create a new Atom serialiser.

§ sratom_free()

void sratom_free ( Sratom * sratom)

Free an Atom serialisation.

§ sratom_set_env()

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().

§ sratom_set_sink()

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().

§ sratom_set_pretty_numbers()

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.

§ sratom_set_object_mode()

void sratom_set_object_mode ( Sratom * sratom,
SratomObjectMode object_mode
)

Configure how resources will be read to form LV2 Objects.

§ sratom_write()

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().

Returns
0 on success, or a non-zero error code otherwise.

§ sratom_read()

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.

§ sratom_to_turtle()

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.

§ sratom_from_turtle()

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.

§ sratom_forge_sink()

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.

§ sratom_forge_deref()

LV2_Atom* sratom_forge_deref ( LV2_Atom_Forge_Sink_Handle handle,
LV2_Atom_Forge_Ref ref
)

The corresponding deref function for sratom_forge_sink.