aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-08-14 01:51:55 -0400
committerDavid Robillard <d@drobilla.net>2022-01-28 21:57:07 -0500
commitb3892cb6e4963e1bbeb346a8124101b7c3cf379b (patch)
tree4800918b6f4db5ce0d0f4802988c1935996d6ba3 /src/reader.c
parent0e739f34801ff6810064a8fac570f6be2b61ae70 (diff)
downloadserd-b3892cb6e4963e1bbeb346a8124101b7c3cf379b.tar.gz
serd-b3892cb6e4963e1bbeb346a8124101b7c3cf379b.tar.bz2
serd-b3892cb6e4963e1bbeb346a8124101b7c3cf379b.zip
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.
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/reader.c b/src/reader.c
index c8a66c42..d051c34a 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -310,14 +310,17 @@ skip_bom(SerdReader* const me)
}
SerdStatus
-serd_reader_start(SerdReader* const reader, SerdByteSource* const byte_source)
+serd_reader_start(SerdReader* const reader,
+ SerdInputStream* const input,
+ const SerdNode* const input_name,
+ const size_t block_size)
{
assert(reader);
- assert(byte_source);
+ assert(input);
serd_reader_finish(reader);
- reader->source = byte_source;
+ reader->source = serd_byte_source_new_input(input, input_name, block_size);
return reader->source ? SERD_SUCCESS : SERD_ERR_BAD_ARG;
}
@@ -358,6 +361,7 @@ serd_reader_finish(SerdReader* const reader)
{
assert(reader);
+ serd_byte_source_free(reader->source);
reader->source = NULL;
return SERD_SUCCESS;
}