ESDM
Middleware for Earth System Data
h5_sqlite_plugin.h
1 #ifndef h5_sqlite_plugin_h
2 #define h5_sqlite_plugin_h
3 
4 #include <hdf5.h>
5 #include <sys/types.h>
6 #include <unistd.h>
7 
8 #define FILE_DEFAULT_PATH "/root"
9 
10 typedef struct h5sqlite_fapl_t {
11  int mpi_size;
12  int mpi_rank;
13  char *fn;
14  char *db_fn;
15  char *data_fn;
17 
18 struct SQF_t;
19 
20 typedef struct SQO_t {
21  char *location;
22  char *name;
23  H5O_info_t info;
24  struct SQF_t *root;
25  h5sqlite_fapl_t *fapl;
26 } SQO_t; /* structure for object*/
27 
28 typedef struct SQF_t {
29  SQO_t object;
30  int fd;
31  off64_t offset; // global offset
32 #ifdef SMARTFILE
33  int fd_shm;
34  off64_t offset_shm;
35  int fd_ssh;
36  off64_t offset_ssd;
37 #endif
38  void *db;
39 } SQF_t; /* structure for file*/
40 
41 typedef struct SQD_t {
42  SQO_t object;
43  off64_t offset; // position in file
44  size_t data_size;
45 } SQD_t; /* structure for dataset*/
46 
47 typedef struct SQG_t {
48  SQO_t object;
49 } SQG_t; /* structure for group*/
50 
51 typedef struct SQA_t {
52  SQO_t object;
53  size_t data_size;
54  size_t corder; // creation order
55 } SQA_t; /*structure for attribute*/
56 
57 typedef enum H5VL_object_optional_t {
58  H5VL_OBJECT_GET_COMMENT, /* get object comment */
59  H5VL_OBJECT_GET_INFO, /* get object info */
60  H5VL_OBJECT_SET_COMMENT /* set object comment */
61 } H5VL_object_optional_t;
62 
63 #endif
Definition: h5_sqlite_plugin.h:51
Definition: h5_sqlite_plugin.h:41
Definition: h5_sqlite_plugin.h:28
Definition: h5_sqlite_plugin.h:47
Definition: h5_sqlite_plugin.h:20
Definition: h5_sqlite_plugin.h:10