From b3892cb6e4963e1bbeb346a8124101b7c3cf379b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 14 Aug 2021 01:51:55 -0400 Subject: Simplify input stream API More or less the same rationale as the previous commit, but for reading. This makes for nice symmetry with writing, at the cost of a slightly more annoying reader interface since the source doesn't know its block size or name. --- src/node_syntax.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/node_syntax.c') diff --git a/src/node_syntax.c b/src/node_syntax.c index d2768c3e..5c579b84 100644 --- a/src/node_syntax.c +++ b/src/node_syntax.c @@ -54,8 +54,7 @@ serd_node_from_syntax_in(const char* const str, SerdWorld* const world = serd_world_new(); SerdSink* const sink = serd_sink_new(&object, on_node_string_event, NULL); - SerdByteSource* const source = serd_byte_source_new_string(doc, NULL); - SerdReader* const reader = + SerdReader* const reader = serd_reader_new(world, syntax, SERD_READ_RELATIVE | SERD_READ_GLOBAL | SERD_READ_GENERATED, @@ -63,11 +62,16 @@ serd_node_from_syntax_in(const char* const str, sink, 1024 + doc_len); - serd_reader_start(reader, source); + const SerdNode* string_name = + serd_nodes_string(serd_world_nodes(world), SERD_STRING("string")); + + const char* position = doc; + SerdInputStream in = serd_open_input_string(&position); + serd_reader_start(reader, &in, string_name, 1); serd_reader_read_document(reader); serd_reader_finish(reader); + serd_close_input(&in); serd_reader_free(reader); - serd_byte_source_free(source); serd_sink_free(sink); serd_world_free(world); free(doc); -- cgit v1.2.1