#ifndef DB_H #define DB_H #include "db_access.h" #include "cache.h" typedef struct { db_index_t index; cache_t* cache; } db_t; typedef db_data_interval_t db_data_set_t; typedef struct { db_time_t start; db_time_t end; } db_time_interval_t; typedef struct { int n; db_time_interval_t data[256]; } db_time_interval_set_t; db_interval_t db_inter_get(db_t* db, db_date_t d); /** * Init (load) database (only metadata) * \param db An allocate db_t object (output) * \return Errno if errors occur else 0 */ int db_init(db_t* db); /** * Free the content of a db_t object * \param db The database */ void db_free(db_t* db); db_data_set_t* db_get(db_t* db, db_time_t* start, db_time_t* end); /** * Load an entire data interval from databse * \param db The input database * \param ds The start date * \param dsm The start time (in microseconds) * \param de The end date * \param dem The end time (in microseconds) */ db_data_interval_t* db_load_fault(db_t* db, db_date_t ds, uint32_t dsm, db_date_t de, uint32_t dem); int db_load_page(db_t* db, uint64_t page, db_data_t* buffer); #endif