#pragma once #include #include "khash.h" #include typedef struct sharedir_file_s{ char* file; char* path; size_t size; uint64_t bytes_left; time_t mod_time; } sharedir_file_t; KHASH_MAP_INIT_STR(SHAREDIR_LOOKUP, sharedir_file_t*) typedef struct sharedir_s{ char* dir; khash_t(SHAREDIR_LOOKUP) *lookup; FILE* last_file_f; sharedir_file_t* last_file_obj_ptr; } sharedir_t; sharedir_t* sharedir_new(void); void sharedir_set_dir(sharedir_t* self, const char* dir); uint64_t sharedir_request_file(sharedir_t* self, const char* file, uint8_t* page_buffer);