Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6dbc.h
Go to the documentation of this file.
1 
10 #ifndef P6DBC_H__
11 #define P6DBC_H__ 1
12 
13 #include "p6com.h"
14 #include "p6dbcstmt.h"
15 #include "p6crypto.h"
16 #include "p6sign.h"
17 #include "p6cryptokey.h"
18 
19 
20 #ifdef __cplusplus
21 namespace P6R {
22 extern "C" {
23 #endif
24 
30 typedef enum
31 {
32  P6DBC_CONNECT = 0x00,
33  P6DBC_COMMIT = 0x01,
35 } P6DBCREQUEST;
36 
48 typedef P6VOID (*P6DBCRESULT)( P6DBCREQUEST requestCode, P6ERR resultCode, P6VOID* pCtx );
49 
67 static const P6DBCFLAGS P6DBC_NOFLAGS = 0x00000000;
68 static const P6DBCFLAGS P6DBC_RECOVERBADSIG = 0x00000002;
69 static const P6DBCFLAGS P6DBC_DISABLECOMPAT = 0x00000004;
70 
71 
77 #undef INTERFACE
78 #define INTERFACE p6IDBC
80 {
95  P6DECLCOMMETHOD(initialize)(P6THIS_ P6DBCFLAGS flags, P6UINT32 numThreads, const P6WCHAR* pPath ) P6PURE;
96 
123  P6DECLCOMMETHOD(connect)(P6THIS_ const P6WCHAR* pURI, P6DBCRESULT pfn, P6VOID* pCtx ) P6PURE;
124 
167  P6DECLCOMMETHOD(connectSigned)(P6THIS_ const P6WCHAR* pURI,
168  P6SIGNHMAC signAlg,
169  p6ICryptoKey* pSignKey,
170  P6DBCRESULT pfn,
171  P6VOID* pCtx ) P6PURE;
172 
182  P6DECLCOMMETHOD(close)(P6THIS) P6PURE;
183 
213  P6DECLCOMMETHOD(prepare)(P6THIS_ const P6WCHAR* pSql, p6IDBCStmt** pStatement ) P6PURE;
214 };
215 
216 // {68B5FA6C-7FEE-41e6-A142-4F3BE720BC59}
217 #define IF_p6IDBC {0x68b5fa6c,0x7fee,0x41e6,{0xa1,0x42,0x4f,0x3b,0xe7,0x20,0xbc,0x59}}
218 
219 // {2D112140-B216-4891-AC38-FB2CA08E584E}
220 #define COMP_p6DBC {0x2d112140,0xb216,0x4891,{0xac,0x38,0xfb,0x2c,0xa0,0x8e,0x58,0x4e}}
221 
222 #ifdef __cplusplus
223 }
224 } // namespace
225 #endif
226 
227 
228 #endif
229 
230 
231 
232 
233 
234 
P6SIGNHMAC
Supported HMAC algorthms for signing:
Definition: p6sign.h:45
Cryptography component definitions.
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1198
uint32_t P6UINT32
Definition: p6types.h:77
#define P6PURE
Definition: p6defs.h:192
P6UINT32 P6DBCFLAGS
P6DBCFLAGS.
Definition: p6dbc.h:66
This interface supports the creation of a prepared statement which allows binding of values to variab...
Definition: p6dbcstmt.h:47
This interface allows the caller to connect to any of several different backend database servers (bot...
Definition: p6dbc.h:79
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
P6R's database Query Statement Interface.
P6DBCREQUEST
Result of a asynchronous call to connect, commit, or rollback.
Definition: p6dbc.h:30
P6UINT32 P6ERR
COM err return type see P6ERR.h.
Definition: p6types.h:141
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
#define P6THIS_
Definition: p6defs.h:193
P6COM definitions and interfaces.
Interface definition for the cryptographic signature generation and verification. ...
void P6VOID
Definition: p6types.h:109
#define P6THIS
Definition: p6defs.h:194
P6VOID(* P6DBCRESULT)(P6DBCREQUEST requestCode, P6ERR resultCode, P6VOID *pCtx)
P6DBCRESULT.
Definition: p6dbc.h:48
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188
P6R Cryptographic key interface definitions.