aboutsummaryrefslogtreecommitdiffstats
path: root/src/sink.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-06-03 19:47:07 +0200
committerDavid Robillard <d@drobilla.net>2020-10-27 13:13:58 +0100
commit897590f6408b9b2b1aae2a060465da6d0faf42be (patch)
tree488932c54be7e580b243780d78e126afc89bd8ec /src/sink.c
parent995766383b56addc1144d885dd8ca5abc8587afa (diff)
downloadserd-897590f6408b9b2b1aae2a060465da6d0faf42be.tar.gz
serd-897590f6408b9b2b1aae2a060465da6d0faf42be.tar.bz2
serd-897590f6408b9b2b1aae2a060465da6d0faf42be.zip
Make statement sink take a statement rather than nodes
This makes the interface more extensible, towards associating more information with statements. The serd_sink_write_nodes wrapper remains so that user code does not need to allocate in order to write statement.
Diffstat (limited to 'src/sink.c')
-rw-r--r--src/sink.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/sink.c b/src/sink.c
index d025520b..1c5c500f 100644
--- a/src/sink.c
+++ b/src/sink.c
@@ -16,6 +16,8 @@
#include "serd/serd.h"
+#include "statement.h"
+
SerdStatus
serd_sink_write_base(const SerdSink* sink, const SerdNode* uri)
{
@@ -35,12 +37,7 @@ serd_sink_write_statement(const SerdSink* sink,
const SerdStatementFlags flags,
const SerdStatement* statement)
{
- return sink->statement(sink->handle,
- flags,
- serd_statement_graph(statement),
- serd_statement_subject(statement),
- serd_statement_predicate(statement),
- serd_statement_object(statement));
+ return sink->statement(sink->handle, flags, statement);
}
SerdStatus
@@ -51,8 +48,8 @@ serd_sink_write(const SerdSink* sink,
const SerdNode* object,
const SerdNode* graph)
{
- return sink->statement(
- sink->handle, flags, graph, subject, predicate, object);
+ const SerdStatement statement = { { subject, predicate, object, graph } };
+ return sink->statement(sink->handle, flags, &statement);
}
SerdStatus