ESDM
Middleware for Earth System Data
db_iface.h
1 /*
2  * =====================================================================================
3  *
4  * Filename: db_iface.h
5  *
6  * Description:
7  *
8  * Version: 1.0
9  * Created: 07/19/2017 08:51:13 PM
10  * Revision: none
11  * Compiler: gcc
12  *
13  * Author: YOUR NAME (),
14  * Organization:
15  *
16  * =====================================================================================
17  */
18 
19 #ifndef db_iface_INC
20 #define db_iface_INC
21 
22 #include <hdf5.h>
23 #ifdef PGSQL
24 # include <libpq-fe.h>
25 #else
26 # include <sqlite3.h>
27 
28 //#define REPEAT(...) \
29 //{ \
30 // while (0 != __VA_ARGS__) { \
31 // DEBUGMSG("Waiting"); \
32 // sleep(1); \
33 // } \
34 //}
35 
36 //#define REPEAT_UNTIL_OK(...) \
37 //__VA_ARGS__;
38 //{ \
39 // int _rc; \
40 // if (SQLITE_OK != (_rc = __VA_ARGS__)) { \
41 // DEBUGMSG("Waiting: %s; error code %d\n", sqlite3_errmsg(db), _rc); \
42 // sleep(1); \
43 // } \
44 //}
45 
46 #endif
47 
48 #include "debug.h"
49 #include "h5_sqlite_plugin.h"
50 
51 /* Database */
52 
53 void DB_connect(const char *db_fn, void **db);
54 
55 void DB_disconnect(void *db);
56 
57 int DB_entry_exists(SQO_t *obj, const char *table, const char *name, int *exists);
58 
59 /* FILE */
60 
61 int DBF_create(SQF_t *file, unsigned flags, void *conn, hid_t fcpl_id, hid_t fapl_id);
62 
63 int DBF_get_fapl(SQF_t *file, hid_t *obj);
64 
65 int DBF_get_fcpl(SQF_t *file, hid_t *obj);
66 
67 /* ATTRIBUTE */
68 
69 int DBA_create(SQA_t *attr, H5VL_loc_params_t loc_params, hid_t acpl_id, hid_t aapl_id, hid_t dxpl_id);
70 
71 int DBA_open(SQO_t *obj, H5VL_loc_params_t loc_params, const char *attr_name, SQA_t *ret_obj);
72 
73 int DBA_open_by_idx(SQO_t *obj, H5VL_loc_params_t loc_params, const unsigned int idx, SQA_t *ret_obj);
74 
75 int DBA_get_acpl(SQA_t *attr, hid_t *ret_id);
76 
77 int DBA_get_type(SQA_t *attr, hid_t *ret_id);
78 
79 int DBA_get_space(SQA_t *attr, hid_t *ret_id);
80 
81 int DBA_write(SQA_t *attr, const void *buf);
82 
83 int DBA_read(SQA_t *attr, void *buf);
84 
85 int DBA_get_info(SQO_t *obj, const char *attr_name, H5A_info_t *ainfo);
86 
87 int DB_create_name_list(SQO_t *obj, H5VL_loc_params_t loc_params, const char *tab_name, char ***attr_list, size_t *attr_list_size);
88 
89 int DB_destroy_name_list(char **list, size_t size);
90 
91 /* GROUP */
92 
93 int DBG_create(SQG_t *group, H5VL_loc_params_t loc_params, hid_t gcpl_id, hid_t gapl_id, hid_t gxpl_id);
94 
95 int DBG_open(SQO_t *parent, H5VL_loc_params_t loc_params, const char *group_name, SQG_t *ret_obj);
96 
97 int DBG_get_gcpl(SQG_t *group, hid_t *plist);
98 
99 /* DATASET */
100 
101 int DBD_create(SQD_t *dset, H5VL_loc_params_t loc_params, hid_t gcpl_id, hid_t gapl_id, hid_t gxpl_id);
102 
103 int DBD_open(SQO_t *parent, H5VL_loc_params_t loc_params, const char *name, SQD_t *ret_obj);
104 
105 //void DBD_get(const char* path, hid_t* type_id, hid_t* space_id, void* conn);
106 
107 int DBD_get_type(SQD_t *dset, hid_t *type_id);
108 
109 int DBD_get_space(SQD_t *dset, hid_t *space_id);
110 
111 int DBD_get_dcpl(SQD_t *dset, hid_t *plist);
112 
113 int DBD_get_dapl(SQD_t *dset, hid_t *plist);
114 
115 /* OBJECT */
116 
117 hid_t DBO_open(SQO_t *obj, H5VL_loc_params_t loc_params);
118 
119 /* LINK */
120 
121 #endif /* ----- #ifndef db_iface_INC ----- */
Definition: H5VL.c:18
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