summaryrefslogtreecommitdiffstats
path: root/sratom/sratom.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-12-21 14:13:20 +0100
committerDavid Robillard <d@drobilla.net>2020-12-21 14:36:43 +0100
commit709f5d5b4b14bfbfc19480a82828f8150ccb7225 (patch)
tree130b3f0c8637b3d9c0889f6a2f22771a85ae9398 /sratom/sratom.h
parent4514a311703fc68de041883781105b7d526c8c7b (diff)
downloadsratom-709f5d5b4b14bfbfc19480a82828f8150ccb7225.tar.gz
sratom-709f5d5b4b14bfbfc19480a82828f8150ccb7225.tar.bz2
sratom-709f5d5b4b14bfbfc19480a82828f8150ccb7225.zip
Move header to a conventional "include" directory
Diffstat (limited to 'sratom/sratom.h')
-rw-r--r--sratom/sratom.h231
1 files changed, 0 insertions, 231 deletions
diff --git a/sratom/sratom.h b/sratom/sratom.h
deleted file mode 100644
index 22cf39e..0000000
--- a/sratom/sratom.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- Copyright 2012-2016 David Robillard <http://drobilla.net>
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/**
- @file sratom.h API for Sratom, an LV2 Atom RDF serialisation library.
-*/
-
-#ifndef SRATOM_SRATOM_H
-#define SRATOM_SRATOM_H
-
-#include "lv2/atom/atom.h"
-#include "lv2/atom/forge.h"
-#include "lv2/urid/urid.h"
-#include "serd/serd.h"
-#include "sord/sord.h"
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#ifdef SRATOM_SHARED
-# ifdef _WIN32
-# define SRATOM_LIB_IMPORT __declspec(dllimport)
-# define SRATOM_LIB_EXPORT __declspec(dllexport)
-# else
-# define SRATOM_LIB_IMPORT __attribute__((visibility("default")))
-# define SRATOM_LIB_EXPORT __attribute__((visibility("default")))
-# endif
-# ifdef SRATOM_INTERNAL
-# define SRATOM_API SRATOM_LIB_EXPORT
-# else
-# define SRATOM_API SRATOM_LIB_IMPORT
-# endif
-#else
-# define SRATOM_API
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- @defgroup sratom Sratom
-
- A library for serialising LV2 Atoms.
-
- @{
-*/
-
-/**
- Atom serialiser.
-*/
-typedef struct SratomImpl Sratom;
-
-/**
- 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.
-*/
-typedef enum {
- /**
- Read blank nodes as Objects, and named resources as URIs.
- */
- SRATOM_OBJECT_MODE_BLANK,
-
- /**
- 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_OBJECT_MODE_BLANK_SUBJECT
-} SratomObjectMode;
-
-/**
- Create a new Atom serialiser.
-*/
-SRATOM_API
-Sratom*
-sratom_new(LV2_URID_Map* map);
-
-/**
- Free an Atom serialisation.
-*/
-SRATOM_API
-void
-sratom_free(Sratom* sratom);
-
-/**
- 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_API
-void
-sratom_set_env(Sratom* sratom,
- SerdEnv* env);
-
-/**
- Set the sink(s) where sratom will write its output.
-
- This must be called before calling sratom_write().
-*/
-SRATOM_API
-void
-sratom_set_sink(Sratom* sratom,
- const char* base_uri,
- SerdStatementSink sink,
- SerdEndSink end_sink,
- void* handle);
-
-/**
- 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_API
-void
-sratom_set_pretty_numbers(Sratom* sratom,
- bool pretty_numbers);
-
-/**
- Configure how resources will be read to form LV2 Objects.
-*/
-SRATOM_API
-void
-sratom_set_object_mode(Sratom* sratom,
- SratomObjectMode object_mode);
-
-/**
- Write an Atom to RDF.
- The serialised atom is written to the sink set by sratom_set_sink().
- @return 0 on success, or a non-zero error code otherwise.
-*/
-SRATOM_API
-int
-sratom_write(Sratom* sratom,
- LV2_URID_Unmap* unmap,
- uint32_t flags,
- const SerdNode* subject,
- const SerdNode* predicate,
- uint32_t type_urid,
- uint32_t size,
- const void* body);
-
-/**
- Read an Atom from RDF.
- The resulting atom will be written to `forge`.
-*/
-SRATOM_API
-void
-sratom_read(Sratom* sratom,
- LV2_Atom_Forge* forge,
- SordWorld* world,
- SordModel* model,
- const SordNode* node);
-
-/**
- Serialise an Atom to a Turtle string.
- The returned string must be free()'d by the caller.
-*/
-SRATOM_API
-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);
-
-/**
- Read an Atom from a Turtle string.
- The returned atom must be free()'d by the caller.
-*/
-SRATOM_API
-LV2_Atom*
-sratom_from_turtle(Sratom* sratom,
- const char* base_uri,
- const SerdNode* subject,
- const SerdNode* predicate,
- const char* str);
-
-/**
- A convenient resizing sink for LV2_Atom_Forge.
- The handle must point to an initialized SerdChunk.
-*/
-SRATOM_API
-LV2_Atom_Forge_Ref
-sratom_forge_sink(LV2_Atom_Forge_Sink_Handle handle,
- const void* buf,
- uint32_t size);
-
-/**
- The corresponding deref function for sratom_forge_sink.
-*/
-SRATOM_API
-LV2_Atom*
-sratom_forge_deref(LV2_Atom_Forge_Sink_Handle handle,
- LV2_Atom_Forge_Ref ref);
-
-/**
- @}
-*/
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* SRATOM_SRATOM_H */