41 if (n_read < source->page_size) {
59 memset(source,
'\0',
sizeof(*source));
71 memset(source->
file_buf,
'\0', page_size);
97 memset(source,
'\0',
sizeof(*source));
110 memset(source,
'\0',
sizeof(*source));
SerdStatus serd_byte_source_open_source(SerdByteSource *source, SerdSource read_func, SerdStreamErrorFunc error_func, void *stream, const uint8_t *name, size_t page_size)
Definition byte_source.c:50
SerdStatus serd_byte_source_close(SerdByteSource *source)
Definition byte_source.c:104
SerdStatus serd_byte_source_open_string(SerdByteSource *source, const uint8_t *utf8)
Definition byte_source.c:93
SerdStatus serd_byte_source_prepare(SerdByteSource *source)
Definition byte_source.c:80
SerdStatus serd_byte_source_page(SerdByteSource *source)
Definition byte_source.c:28
static SerdStatus serd_byte_source_advance(SerdByteSource *source)
Definition byte_source.h:81
static const char * name
Definition pugl.h:1582
int(* SerdStreamErrorFunc)(void *SERD_NONNULL stream)
Definition serd.h:331
size_t(* SerdSource)(void *SERD_NONNULL buf, size_t size, size_t nmemb, void *SERD_NONNULL stream)
Definition serd.h:345
SerdStatus
Return status code.
Definition serd.h:100
@ SERD_FAILURE
Non-fatal failure.
Definition serd.h:102
@ SERD_ERR_UNKNOWN
Unknown error.
Definition serd.h:103
@ SERD_SUCCESS
No error.
Definition serd.h:101
unsigned char uint8_t
Definition mid.cpp:98
Definition byte_source.h:28
Definition byte_source.h:34
uint8_t * file_buf
Buffer iff reading pages from a file.
Definition byte_source.h:41
size_t read_head
Offset into read_buf.
Definition byte_source.h:43
size_t page_size
Number of bytes to read at a time.
Definition byte_source.h:38
bool prepared
True iff prepared for reading.
Definition byte_source.h:46
const uint8_t * read_buf
Pointer to file_buf or read_byte.
Definition byte_source.h:42
Cursor cur
Cursor for error reporting.
Definition byte_source.h:40
SerdStreamErrorFunc error_func
Error function (e.g. ferror).
Definition byte_source.h:36
void * stream
Stream (e.g. FILE).
Definition byte_source.h:37
bool from_stream
True iff reading from stream.
Definition byte_source.h:45
bool eof
True iff end of file reached.
Definition byte_source.h:47
SerdSource read_func
Read function (e.g. fread).
Definition byte_source.h:35
uint8_t read_byte
1-byte 'buffer' used when not paging
Definition byte_source.h:44
size_t buf_size
Number of bytes in file_buf.
Definition byte_source.h:39
void * serd_allocate_buffer(const size_t size)
Allocate an aligned buffer for I/O.
Definition system.c:69
void serd_free_aligned(void *const ptr)
Free a buffer allocated with an aligned allocation function.
Definition system.c:75