acl  3.5.3.0
acl_dbpool.h 文件参考
#include "../stdlib/acl_define.h"
#include <time.h>
#include "../stdlib/acl_stdlib.h"
+ acl_dbpool.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  ACL_DB_INFO
 
struct  ACL_DB_HANDLE
 
struct  ACL_SQL_RES
 
struct  ACL_DB_POOL
 

宏定义

#define ACL_DB_DEBUG_MEM   (1<<0)
 
#define ACL_DBH_STATUS_NULL   0
 
#define ACL_DBH_STATUS_READY   1
 
#define ACL_DBH_STATUS_INUSE   2
 
#define ACL_DB_AUTO_COMMIT(_db_pool_)   (_db_pool_ ? _db_pool_->db_info.auto_commit : 0)
 

类型定义

typedef struct ACL_DB_HANDLE ACL_DB_HANDLE
 
typedef struct ACL_SQL_RES ACL_SQL_RES
 
typedef struct ACL_DB_POOL ACL_DB_POOL
 
typedef struct ACL_DB_INFO ACL_DB_INFO
 

函数

ACL_API ACL_DB_POOLacl_dbpool_create (const char *db_type, const ACL_DB_INFO *db_info)
 
ACL_API void acl_dbpool_destroy (ACL_DB_POOL *db_pool)
 
ACL_API ACL_DB_HANDLEacl_dbpool_peek (ACL_DB_POOL *db_pool)
 
ACL_API void acl_dbpool_check (ACL_DB_POOL *db_pool)
 
ACL_API void acl_dbpool_release (ACL_DB_HANDLE *db_handle)
 
ACL_API void * acl_dbpool_export (ACL_DB_HANDLE *db_handle)
 
ACL_API void acl_dbpool_close (ACL_DB_HANDLE *db_handle)
 
ACL_API void acl_dbpool_set_ping (ACL_DB_POOL *db_pool, int(*ping_fn)(ACL_DB_HANDLE *))
 

宏定义说明

◆ ACL_DB_AUTO_COMMIT

#define ACL_DB_AUTO_COMMIT (   _db_pool_)    (_db_pool_ ? _db_pool_->db_info.auto_commit : 0)

在文件 acl_dbpool.h95 行定义.

◆ ACL_DB_DEBUG_MEM

#define ACL_DB_DEBUG_MEM   (1<<0)

在文件 acl_dbpool.h14 行定义.

◆ ACL_DBH_STATUS_INUSE

#define ACL_DBH_STATUS_INUSE   2

在文件 acl_dbpool.h48 行定义.

◆ ACL_DBH_STATUS_NULL

#define ACL_DBH_STATUS_NULL   0

在文件 acl_dbpool.h46 行定义.

◆ ACL_DBH_STATUS_READY

#define ACL_DBH_STATUS_READY   1

在文件 acl_dbpool.h47 行定义.

类型定义说明

◆ ACL_DB_HANDLE

typedef struct ACL_DB_HANDLE ACL_DB_HANDLE

在文件 acl_dbpool.h16 行定义.

◆ ACL_DB_INFO

typedef struct ACL_DB_INFO ACL_DB_INFO

◆ ACL_DB_POOL

typedef struct ACL_DB_POOL ACL_DB_POOL

在文件 acl_dbpool.h18 行定义.

◆ ACL_SQL_RES

typedef struct ACL_SQL_RES ACL_SQL_RES

在文件 acl_dbpool.h17 行定义.

函数说明

◆ acl_dbpool_check()

ACL_API void acl_dbpool_check ( ACL_DB_POOL db_pool)

手工检查连接池的每个连接?一般连接池内部会定期检查每个连接, 也可以通过此函数手工进行强制检查

参数
db_pool{ACL_DB_POOL*} 数据库连接池句柄

◆ acl_dbpool_close()

ACL_API void acl_dbpool_close ( ACL_DB_HANDLE db_handle)

当使用者自己检测到该数据库连接出错时,可以通过此接口强行关闭该连接

参数
db_handle{ACL_DB_HANDLE*} 数据库连接句柄

◆ acl_dbpool_create()

ACL_API ACL_DB_POOL* acl_dbpool_create ( const char *  db_type,
const ACL_DB_INFO db_info 
)

创建一个数据库连接池

参数
db_type{const char*} 数据库类型名, 目前仅支持 mysql
db_info{const ACL_DB_INFO*} 记录着有关连接数据所需要的信息
返回
{ACL_DB_POOL*} 一个数据库连接池

◆ acl_dbpool_destroy()

ACL_API void acl_dbpool_destroy ( ACL_DB_POOL db_pool)

销毁一个数据库连接池

参数
db_pool数据库连接池句柄

◆ acl_dbpool_export()

ACL_API void* acl_dbpool_export ( ACL_DB_HANDLE db_handle)

将数据库连接转换为实际的数据库连接句柄

参数
db_handle{ACL_DB_HANDLE*} 数据库连接句柄
返回
void * 使用者需要将其强制转换为自己所用的数据库连接引擎

◆ acl_dbpool_peek()

ACL_API ACL_DB_HANDLE* acl_dbpool_peek ( ACL_DB_POOL db_pool)

从连接池中获取一个连接句柄

参数
db_pool{ACL_DB_POOL*} 数据库连接池句柄
返回
{ACL_DB_HANDLE*} 数据库连接句柄,如果为空则表示出错或连接池已满

◆ acl_dbpool_release()

ACL_API void acl_dbpool_release ( ACL_DB_HANDLE db_handle)

将数据库连接句柄释放给数据库连接池

参数
db_handle{ACL_DB_HANDLE*} 数据库连接句柄

◆ acl_dbpool_set_ping()

ACL_API void acl_dbpool_set_ping ( ACL_DB_POOL db_pool,
int(*)(ACL_DB_HANDLE *)  ping_fn 
)

设置连接池的定时PING处理函数,如果不设置此值则内部采用缺省方式

参数
db_pool{ACL_DB_POOL*} 数据库连接池句柄
ping_fn{int (*)(ACL_DB_HANDLE*)} 探测连接状态的函数指针