mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-19 01:15:21 +00:00
27 lines
1.1 KiB
C
27 lines
1.1 KiB
C
#ifndef LREC_READER_H
|
|
#define LREC_READER_H
|
|
|
|
#include <stdio.h>
|
|
#include "lib/context.h"
|
|
#include "containers/lrec.h"
|
|
#include "input/file_reader_mmap.h"
|
|
|
|
struct _lrec_reader_t; // forward reference for method declarations
|
|
|
|
// The void* pvhandle is either FILE* for stdio readers or file_reader_mmap_state_t* for mmap readers.
|
|
typedef void* lrec_reader_open_func_t(void* pvstate, char* prepipe, char* filename);
|
|
typedef void lrec_reader_close_func_t(void* pvstate, void* pvhandle, char* prepipe);
|
|
typedef lrec_t* lrec_reader_process_func_t(void* pvstate, void* pvhandle, context_t* pctx);
|
|
typedef void lrec_reader_sof_func_t(void* pvstate, void* pvhandle);
|
|
typedef void lrec_reader_free_func_t(struct _lrec_reader_t* preader);
|
|
|
|
typedef struct _lrec_reader_t {
|
|
void* pvstate;
|
|
lrec_reader_open_func_t* popen_func;
|
|
lrec_reader_close_func_t* pclose_func;
|
|
lrec_reader_process_func_t* pprocess_func;
|
|
lrec_reader_sof_func_t* psof_func;
|
|
lrec_reader_free_func_t* pfree_func; // virtual destructor
|
|
} lrec_reader_t;
|
|
|
|
#endif // LREC_READER_H
|