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>2019-04-13 19:15:32 +0200
commit63edb5d1665e7b7a9a4750c063d27a8ae7d75a77 (patch)
tree77867d26bffa81fa64f8c6b97798134b0327b4e9 /src/sink.c
parent6938e50cc21b5acdfbf526e221ac4823f17dba3a (diff)
downloadserd-63edb5d1665e7b7a9a4750c063d27a8ae7d75a77.tar.gz
serd-63edb5d1665e7b7a9a4750c063d27a8ae7d75a77.tar.bz2
serd-63edb5d1665e7b7a9a4750c063d27a8ae7d75a77.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 eb31bbf6..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_get_graph(statement),
- serd_statement_get_subject(statement),
- serd_statement_get_predicate(statement),
- serd_statement_get_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