1a68acb983e03bc565685918d0928c98c15d8cee
[asterisk/asterisk.git] / include / asterisk / res_odbc.h
1 /*
2  * Asterisk -- A telephony toolkit for Linux.
3  *
4  * Copyright (C) 1999, Mark Spencer
5  *
6  * Mark Spencer <markster@linux-support.net>
7  *
8  * res_odbc.h <ODBC resource manager>
9  * Copyright (C) 2004 Anthony Minessale II <anthmct@yahoo.com>
10  */
11
12 #ifndef _RES_ODBC_H
13 #define _RES_ODBC_H
14
15 #include <sql.h>
16 #include <sqlext.h>
17 #include <sqltypes.h>
18
19
20
21
22 typedef struct odbc_obj odbc_obj;
23
24 typedef enum { ODBC_SUCCESS=0,ODBC_FAIL=-1} odbc_status;
25
26 struct odbc_obj {
27         char *name;
28         char *dsn;
29         char *username;
30         char *password;
31         SQLHENV  env;                   /* ODBC Environment */
32         SQLHDBC  con;                   /* ODBC Connection Handle */
33         SQLHSTMT stmt;                  /* ODBC Statement Handle */
34         ast_mutex_t lock;
35         int up;
36
37 };
38
39
40
41
42 /* functions */
43 odbc_obj *new_odbc_obj(char *name,char *dsn,char *username, char *password);
44 odbc_status odbc_obj_connect(odbc_obj *obj);
45 odbc_status odbc_obj_disconnect(odbc_obj *obj);
46 void destroy_obdc_obj(odbc_obj **obj);
47 int register_odbc_obj(char *name,odbc_obj *obj);
48 odbc_obj *fetch_odbc_obj(char *name);
49 int odbc_dump_fd(int fd,odbc_obj *obj);
50
51 #endif