X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/404d307c21641a249597bbdae0713a5470bcf8b8..f6ecfee93e749a205c09ff49005a7e47d053fe8d:/dbapi2/dbapi2.h diff --git a/dbapi2/dbapi2.h b/dbapi2/dbapi2.h index 4ca50e9b..b7b71878 100644 --- a/dbapi2/dbapi2.h +++ b/dbapi2/dbapi2.h @@ -3,15 +3,12 @@ #define DBNAME_LEN 100 -#if defined(USE_DBAPI_PGSQL) -#define DBAPI2_DEFAULT "pgsql" -#elseif defined(USE_DBAPI_SQLITE) -#define DBAPI2_DEFAULT "sqlite" -#else +#include "../config.h" + #define DBAPI2_DEFAULT NULL -#endif #include +#include struct DBAPIConn; @@ -19,25 +16,37 @@ struct DBAPIConn; #define DBAPI2_HANDLE void #endif +#ifndef DBAPI2_RESULT_HANDLE +#define DBAPI2_RESULT_HANDLE void +#endif + typedef void *DBAPIUserData; struct DBAPIResult; -typedef DBAPI2_HANDLE *(*DBAPINew)(struct DBAPIConn *); +typedef DBAPI2_HANDLE *(*DBAPINew)(const struct DBAPIConn *); typedef void (*DBAPIClose)(struct DBAPIConn *); -typedef void (*DBAPIQueryCallback)(struct DBAPIResult *, void *); +typedef void (*DBAPIQueryCallback)(const struct DBAPIResult *, void *); -typedef void (*DBAPIQuery)(struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, ...); -typedef void (*DBAPICreateTable)(struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, ...); -typedef void (*DBAPILoadTable)(struct DBAPIConn *, DBAPIQueryCallback, DBAPIQueryCallback, DBAPIQueryCallback, DBAPIUserData, const char *); +typedef void (*DBAPIQuery)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, ...) __attribute__ ((format (printf, 4, 5))); +typedef void (*DBAPISimpleQuery)(const struct DBAPIConn *, const char *, ...) __attribute__ ((format (printf, 2, 3))); +typedef void (*DBAPIQueryV)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *); +typedef void (*DBAPICallV)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, const char *); +typedef void (*DBAPICreateTable)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, ...) __attribute__ ((format (printf, 4, 5))); +typedef void (*DBAPICreateTableV)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *); +typedef void (*DBAPILoadTable)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIQueryCallback, DBAPIQueryCallback, DBAPIUserData, const char *); -typedef void (*DBAPISafeQuery)(struct DBAPIConn *, const char *, const char *, ...); -typedef void (*DBAPISafeCreateTable)(struct DBAPIConn *, const char *, ...); -typedef void (*DBAPISafeLoadTable)(struct DBAPIConn *, const char *, ...); +typedef void (*DBAPISafeQuery)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, const char *, ...); +typedef void (*DBAPISafeSimpleQuery)(const struct DBAPIConn *, const char *, const char *, ...); +typedef void (*DBAPISafeCreateTable)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, const char *, ...); -typedef void (*DBAPIEscapeString)(struct DBAPIConn *, char *, const char *, size_t); -typedef int (*DBAPIQuoteString)(struct DBAPIConn *, char *, size_t, const char *, size_t); +typedef void (*DBAPIEscapeString)(const struct DBAPIConn *, char *, const char *, size_t); +typedef int (*DBAPIQuoteString)(const struct DBAPIConn *, char *, size_t, const char *, size_t); +typedef void (*DBAPICall)(const struct DBAPIConn *, DBAPIQueryCallback, DBAPIUserData, const char *, const char *, const char *, ...); +typedef void (*DBAPISimpleCall)(const struct DBAPIConn *, const char *, const char *, const char *, ...); + +typedef char *(*DBAPITableName)(const struct DBAPIConn *, const char *); struct DBAPIProviderData; @@ -45,17 +54,15 @@ typedef struct DBAPIProvider { DBAPINew new; DBAPIClose close; - DBAPIQuery query; - DBAPICreateTable createtable; + DBAPIQueryV query; + DBAPICreateTableV createtable; DBAPILoadTable loadtable; -/* - DBAPISafeQuery safequery; - DBAPISafeCreateTable safecreatetable; - DBAPISafeLoadTable safeloadtable; -*/ + + DBAPITableName tablename; DBAPIEscapeString escapestring; DBAPIQuoteString quotestring; + DBAPICallV call; /* private members */ struct DBAPIProviderData *__providerdata; @@ -64,10 +71,19 @@ typedef struct DBAPIProvider { typedef struct DBAPIConn { DBAPIClose close; - DBAPIQuery query; - DBAPICreateTable createtable; + DBAPIQuery unsafequery; + DBAPISimpleQuery unsafesquery; + DBAPICreateTable unsafecreatetable; DBAPILoadTable loadtable; DBAPIEscapeString escapestring; /* deprecated */ + DBAPITableName tablename; + + DBAPISafeQuery query; + DBAPISafeSimpleQuery squery; + DBAPISafeCreateTable createtable; + + DBAPICall call; + DBAPISimpleCall scall; char name[DBNAME_LEN+1]; @@ -76,11 +92,28 @@ typedef struct DBAPIConn { /* private members */ DBAPIClose __close; DBAPIQuoteString __quotestring; + DBAPIQueryV __query; + DBAPICreateTableV __createtable; + DBAPILoadTable __loadtable; + DBAPICallV __call; } DBAPIConn; +typedef char *(*DBAPIResultGet)(const struct DBAPIResult *, unsigned int); +typedef int (*DBAPIResultNext)(const struct DBAPIResult *); +typedef void (*DBAPIResultClear)(const struct DBAPIResult *); + +typedef struct DBAPIResult { + DBAPI2_RESULT_HANDLE *handle; + + unsigned short success, fields; + + DBAPIResultGet get; + DBAPIResultNext next; + DBAPIResultClear clear; +} DBAPIResult; + int registerdbprovider(const char *, DBAPIProvider *); void deregisterdbprovider(int); - -void dbsnprintf(DBAPIConn *, char *, size_t, const char *, const char *, ...); +DBAPIConn *dbapi2open(const char *, const char *); #endif