From 1a9b3e61829f08cd93a6868e309a30b473aa4f27 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Tue, 22 Dec 2009 16:18:26 +0000 Subject: [PATCH] DB module interface header file to branch yet. --- org.glite.lbjp-common.db/interface/db-int.h | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 org.glite.lbjp-common.db/interface/db-int.h diff --git a/org.glite.lbjp-common.db/interface/db-int.h b/org.glite.lbjp-common.db/interface/db-int.h new file mode 100644 index 0000000..7a86c84 --- /dev/null +++ b/org.glite.lbjp-common.db/interface/db-int.h @@ -0,0 +1,60 @@ +#ifdef WIN32 +#define asprintf(STR, FMT...) trio_asprintf((STR), ##FMT) +#define vasprintf(STR, FMT, VARGS) trio_asprintf((STR), (FMT), (VARGS)) +#define strcasestr(H,N) strstr((H), (N)) +#endif + +#define dprintf(CTX, FMT...) if ((CTX)->caps & GLITE_LBU_DB_CAP_ERRORS) fprintf(stderr, ##FMT) + +struct glite_lbu_DBContext_s { + int backend; + struct { + int code; + char *desc; + } err; + int caps; +}; +typedef struct glite_lbu_DBContext_s glite_lbu_DBContext_t; + +struct glite_lbu_Statement_s { + glite_lbu_DBContext ctx; +}; +typedef struct glite_lbu_Statement_s glite_lbu_Statement_t; + + + +typedef struct { + int backend; + + int (*initContext)(glite_lbu_DBContext *ctx); + void (*freeContext)(glite_lbu_DBContext ctx); + int (*connect)(glite_lbu_DBContext ctx, const char *cs); + void (*close)(glite_lbu_DBContext ctx); + int (*queryCaps)(glite_lbu_DBContext ctx); + void (*setCaps)(glite_lbu_DBContext ctx, int caps); + + int (*transaction)(glite_lbu_DBContext ctx); + int (*commit)(glite_lbu_DBContext ctx); + int (*rollback)(glite_lbu_DBContext ctx); + + int (*fetchRow)(glite_lbu_Statement stmt, unsigned int n, unsigned long *lengths, char **results); + void (*freeStmt)(glite_lbu_Statement *stmt); + + int (*queryIndices)(glite_lbu_DBContext ctx, const char *table, char ***key_names, char ****column_names); + int (*execSQL)(glite_lbu_DBContext ctx, const char *cmd, glite_lbu_Statement *stmt); + int (*queryColumns)(glite_lbu_Statement stmt_gen, char **cols); + + int (*prepareStmt)(glite_lbu_DBContext ctx, const char *sql, glite_lbu_Statement *stmt); + int (*execPreparedStmt_v)(glite_lbu_Statement stmt, int n, va_list ap); + long int (*lastid)(glite_lbu_Statement stmt); + + void (*timeToDB)(time_t, char **str); + void (*timestampToDB)(double t, char **str); + time_t (*DBToTime)(const char *str); + double (*DBToTimestamp)(const char *str); +} glite_lbu_DBBackend_t; + +int glite_lbu_DBSetError(glite_lbu_DBContext ctx, int code, const char *func, int line, const char *desc, ...); + +void glite_lbu_TimeToStrGeneric(time_t t, char **str, const char *amp); +void glite_lbu_TimestampToStrGeneric(double t, char **str, const char *amp); -- 1.8.2.3