00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00031 #ifndef DBD_H
00032 #define DBD_H
00033
00034
00035
00036
00037 #if !defined(WIN32)
00038 #define DBD_DECLARE(type) type
00039 #define DBD_DECLARE_NONSTD(type) type
00040 #define DBD_DECLARE_DATA
00041 #elif defined(DBD_DECLARE_STATIC)
00042 #define DBD_DECLARE(type) type __stdcall
00043 #define DBD_DECLARE_NONSTD(type) type
00044 #define DBD_DECLARE_DATA
00045 #elif defined(DBD_DECLARE_EXPORT)
00046 #define DBD_DECLARE(type) __declspec(dllexport) type __stdcall
00047 #define DBD_DECLARE_NONSTD(type) __declspec(dllexport) type
00048 #define DBD_DECLARE_DATA __declspec(dllexport)
00049 #else
00050 #define DBD_DECLARE(type) __declspec(dllimport) type __stdcall
00051 #define DBD_DECLARE_NONSTD(type) __declspec(dllimport) type
00052 #define DBD_DECLARE_DATA __declspec(dllimport)
00053 #endif
00054
00055 #include <httpd.h>
00056 #include <apr_optional.h>
00057 #include <apr_hash.h>
00058
00059 typedef struct {
00060 apr_dbd_t *handle;
00061 const apr_dbd_driver_t *driver;
00062 apr_hash_t *prepared;
00063 apr_pool_t *pool;
00064 } ap_dbd_t;
00065
00066
00067
00068
00069
00070
00071 DBD_DECLARE_NONSTD(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);
00072
00073
00074 DBD_DECLARE_NONSTD(void) ap_dbd_close(server_rec*, ap_dbd_t*);
00075
00076
00077
00078
00079
00080 DBD_DECLARE_NONSTD(ap_dbd_t*) ap_dbd_acquire(request_rec*);
00081
00082
00083
00084
00085
00086 DBD_DECLARE_NONSTD(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);
00087
00088
00089
00090
00091
00092 DBD_DECLARE_NONSTD(void) ap_dbd_prepare(server_rec*, const char*, const char*);
00093
00094
00095 APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
00096 APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
00097 APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
00098 APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
00099 APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));
00100
00101 #endif
00102