#ifndef _CHUNKARRAY_H #define _CHUNKARRAY_H #include #include #include #include #include typedef struct buffer { double* data; size_t init_pos; bool dirty; }buffer_t; typedef struct chunk_array { char* filename; size_t chunk_size; size_t total_size; FILE* fp; double* mmap_array; buffer_t* buffer1; buffer_t* buffer2; buffer_t** buffers; size_t n_buffers; size_t last_updated; }chunk_array_t; chunk_array_t* chunk_array_create(char* filename, size_t total_size); void chunk_array_free(chunk_array_t* chunk_array); bool chunk_array_get(chunk_array_t* chunk_array, size_t pos, double *value_ptr); bool chunk_array_save(chunk_array_t* chunk_array, size_t pos, double valor); size_t chunk_array_size(chunk_array_t* chunk_array); #endif