db.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef DB_H
  2. #define DB_H
  3. #include "db_access.h"
  4. #include "cache.h"
  5. typedef struct
  6. {
  7. db_index_t index;
  8. } db_t;
  9. typedef db_data_interval_t db_data_set_t;
  10. typedef struct
  11. {
  12. db_time_t start;
  13. db_time_t end;
  14. } db_time_interval_t;
  15. typedef struct
  16. {
  17. int n;
  18. db_time_interval_t data[256];
  19. } db_time_interval_set_t;
  20. db_interval_t db_inter_get(db_t* db, db_date_t d);
  21. /**
  22. * Init (load) database (only metadata)
  23. * \param db An allocate db_t object (output)
  24. * \return Errno if errors occur else 0
  25. */
  26. int db_init(db_t* db);
  27. /**
  28. * Free the content of a db_t object
  29. * \param db The database
  30. */
  31. void db_free(db_t* db);
  32. db_data_set_t* db_get(db_t* db, db_time_t* start, db_time_t* end);
  33. /**
  34. * Load an entire data interval from databse
  35. * \param db The input database
  36. * \param ds The start date
  37. * \param dsm The start time (in microseconds)
  38. * \param de The end date
  39. * \param dem The end time (in microseconds)
  40. */
  41. db_data_interval_t* db_load_fault(db_t* db, db_date_t ds, uint32_t dsm,
  42. db_date_t de, uint32_t dem);
  43. #endif