#include <vector> #include <map> // REVIEW: utility_1 (std::Array does not give accurate results) //#include <utility_2.h> // works fine #include <utility_3.h> #include <string> #include <sys/stat.h> using std::vector; using std::map; using std::string; class DataManager { private: vector<int> file_ptr; vector<uint64_t> file_size; map<size_t, int> file_index; uint32_t buf_ptr = 0; int output_fd; uint64_t output_count = 0; char *mmapped_buffer = NULL; record_t *output_buf = NULL; public: DataManager(vector<string> &file_list); size_t load(size_t block_num, size_t len, record_t *buffer); void set_output_fd(int fd); void buffer_write(record_t *buffer, in_record_t *keys, int num_block, char *mmapped_buffer); void init_output_buffer(size_t size); uint64_t get_overall_size(); ~DataManager(); };