#ifndef LREC_READER_H #define LREC_READER_H #include #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