mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-23 16:08:43 +00:00
[read performance iterate] peek-file-reader v2
This commit is contained in:
parent
721cd0264e
commit
54ea039b03
2 changed files with 13 additions and 5 deletions
|
|
@ -23,15 +23,23 @@ peek_file_reader_t* pfr_alloc(byte_reader_t* pbr, int maxnpeek) {
|
|||
}
|
||||
|
||||
void pfr_free(peek_file_reader_t* pfr) {
|
||||
// xxx stub
|
||||
if (pfr == NULL)
|
||||
return;
|
||||
free(pfr->peekbuf);
|
||||
free(pfr);
|
||||
}
|
||||
|
||||
char* pfr_peek_char(peek_file_reader_t* pfr) {
|
||||
return NULL; // xxx stub
|
||||
char pfr_peek_char(peek_file_reader_t* pfr) {
|
||||
if (pfr->npeeked < 1) {
|
||||
pfr->peekbuf[pfr->npeeked++] = pfr->pbr->pread_func(pfr->pbr);
|
||||
}
|
||||
return pfr->peekbuf[0];
|
||||
}
|
||||
|
||||
void pfr_buffer_by(peek_file_reader_t* pfr, int len) {
|
||||
// xxx stub
|
||||
while (pfr->npeeked < len) {
|
||||
pfr->peekbuf[pfr->npeeked++] = pfr->pbr->pread_func(pfr->pbr);
|
||||
}
|
||||
}
|
||||
|
||||
void pfr_advance_by(peek_file_reader_t* pfr, int len) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ typedef struct _peek_file_reader_t {
|
|||
peek_file_reader_t* pfr_alloc(byte_reader_t* pbr, int maxnpeek);
|
||||
void pfr_free(peek_file_reader_t* pfr);
|
||||
|
||||
char* pfr_peek_char(peek_file_reader_t* pfr);
|
||||
char pfr_peek_char(peek_file_reader_t* pfr);
|
||||
void pfr_buffer_by(peek_file_reader_t* pfr, int len);
|
||||
void pfr_advance_by(peek_file_reader_t* pfr, int len);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue