]> jfr.im git - irc/quakenet/newserv.git/blobdiff - dbapi2/dbapi2.h
CHANSERV: add missing error statements.
[irc/quakenet/newserv.git] / dbapi2 / dbapi2.h
index 4ca50e9bab37efeaed2407bf1030b72df8a969c8..d47b3a67e139974a0b42d4e9cb86c4ccfed30d2a 100644 (file)
@@ -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 <stdlib.h>
+#include <stdarg.h>
 
 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, affected;
+
+  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