db_access.h 959 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef DB_ACCESS_H
  2. #define DB_ACCESS_H
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdint.h>
  6. #include <unistd.h>
  7. #include <string.h>
  8. #include <errno.h>
  9. #include <sys/types.h>
  10. #include <fcntl.h>
  11. typedef struct
  12. {
  13. uint16_t year;
  14. uint8_t month;
  15. uint8_t day;
  16. } db_date_t;
  17. typedef struct
  18. {
  19. db_date_t date;
  20. uint32_t millis;
  21. }db_time_t;
  22. typedef struct
  23. {
  24. db_date_t date;
  25. uint32_t micros;
  26. } db_data_t;
  27. typedef struct
  28. {
  29. off_t start;
  30. off_t len;
  31. } db_interval_t;
  32. typedef struct
  33. {
  34. db_date_t date;
  35. off_t index;
  36. } db_metadata_t;
  37. typedef struct
  38. {
  39. off_t ndays;
  40. db_metadata_t* days;
  41. off_t nmonthes;
  42. db_metadata_t* monthes;
  43. off_t nyears;
  44. db_metadata_t* years;
  45. off_t data_count;
  46. } db_index_t;
  47. typedef struct
  48. {
  49. off_t start;
  50. off_t len;
  51. db_data_t* data;
  52. } db_data_interval_t;
  53. void db_index_release(db_index_t* in);
  54. int db_index_load(db_index_t* out);
  55. void db_data_interval_free(db_data_interval_t* dbdi);
  56. #endif