rdbapi 5.1.1.9
实时数据库C接口 for windows/Linux
 
载入中...
搜索中...
未找到
连接相关接口

函数

int rdb_create ()
 创建接口
 
int rdb_setslavedb (int h, const char *sip, unsigned short wport, const char *sUser, const char *sPass)
 设置从库
 
int rdb_setmessagenotify (int h, rdbcd_onmessage fun, void *param)
 设置消息通知回调函数
 
int rdb_destory (int h)
 删除句柄
 
int rdb_connectex (int h, const char *surl, const char *sUser, const char *sPass, int nTimeOutSec)
 高级模式连接实时库
 
int rdb_connect (int h, const char *sServerIP, unsigned short wPort, const char *lpszUser, const char *lpszPass)
 连接实时库
 
int rdb_connectasyn (int h, const char *sServerIP, unsigned short wPort, const char *lpszUser, const char *lpszPass)
 异步连接实时库
 
int rdb_disconnect (int h)
 断开实时库
 
bool rdb_isconnected (int h)
 判断连接状态
 
int rdb_curdb (int h)
 获取当前连接的实时库
 
int rdb_curdb_inver (int h)
 获取当前实时库的内部版本
 
int rdb_getruninfo (int h, const char *stationid, void(*fun)(const char *jsresp, int sizeresp, void *app_param), void *app_param)
 从中心站查询子站运行信息
 
int rdb_getworkmode (int h, int *pworkmode)
 读取工作模式
 
int rdb_setworkmode (int h, int workmode, int *pworkmode)
 设置工作模式
 
int rdb_apiver ()
 rdbapi的文件版本
 

详细描述

接口句柄的创建/销毁,设置回调函数,设置从库,连接,断开,包含同步和异步连接模式。

函数说明

◆ rdb_apiver()

int rdb_apiver ( )

rdbapi的文件版本

自从
rdb2024.9 inver 5119
返回
返回本api动态库自身的文件版本,整数,例如: 5101
备注
适合rdb2024.9 inver=5119及以后版本。

◆ rdb_connect()

int rdb_connect ( int h,
const char * sServerIP,
unsigned short wPort,
const char * lpszUser,
const char * lpszPass )

连接实时库

同步方式连接实时库,非加密通道模式,兼容性接口,新应用推荐使用 rdb_connectex 接口

参数
h[in] rdb_create创建的句柄.
sServerIP[in] 实时库服务器IP地址,点分字符串格式,比如"192.168.1.61".
wPort[in] 实时库TCP服务端口.
lpszUser[in] 用户账号名.
lpszPass[in] 用户账号密码.
返回
返回 0 表示成功,其余值为失败错误码

◆ rdb_connectasyn()

int rdb_connectasyn ( int h,
const char * sServerIP,
unsigned short wPort,
const char * lpszUser,
const char * lpszPass )

异步连接实时库

非加密通道,异步模式连接实时库,需要先调用 rdb_setmessagenotify 设置通知回调函数,兼容性接口,新应用推荐使用 rdb_connectex 接口

参数
h[in] rdb_create创建的句柄.
sServerIP[in] 实时库服务器IP地址,点分字符串格式,比如"192.168.1.61".
wPort[in] 实时库TCP服务端口.
lpszUser[in] 用户账号名.
lpszPass[in] 用户账号密码.
返回
返回 0 表示成功,其余值为失败错误码。返回0并不表示已经连接成功,结果由rdb_setmessagenotify 设置通知回调函数通知。

◆ rdb_connectex()

int rdb_connectex ( int h,
const char * surl,
const char * sUser,
const char * sPass,
int nTimeOutSec )

高级模式连接实时库

采用url作为连接参数,支持同步异步模式的高级连接接口。使用异步模式需要先调用 rdb_setmessagenotify 设置通知回调函数。

自从
version 5104 开始有效
参数
h[in] rdb_create创建的句柄.
surl连接URL字符串, "wss://192.168.161:921" 或者 "ws://192.168.161:921",或者"wss://kipwa.net"
sUser账号
sPass密码
nTimeOutSec0表示异步连接,立即返回,大于0表示同步方式,等待超时秒数
返回
返回0成功;非0为错误码;异步模式会立即返回0,连接成功后会使用回调通知。

◆ rdb_create()

int rdb_create ( )

创建接口

句柄为大于等于0的整数,一个句柄代表一个API对象,如果要建立多个到实时库的连接,可以创建多个句柄,每个进程最多可以创建64个句柄。

返回
返回句柄,-1表示失败,>=0为成功创建的句柄号
int h = rdb_create();
if(h == SE_ERRHANDLE)
printf("error\n");
int rdb_create()
创建接口
#define SE_ERRHANDLE
错误的句柄
Definition rdbapi.h:21

◆ rdb_curdb()

int rdb_curdb ( int h)

获取当前连接的实时库

当使用主从库双连接时,通过本函数返回当前使用的实时库连接。

返回
0:主库; 1:从库; -1表示失败
自从
version 5.0.6.9开始

◆ rdb_curdb_inver()

int rdb_curdb_inver ( int h)

获取当前实时库的内部版本

自从
version 5104开始支持该接口
参数
h[in] rdb_create创建的句柄.
返回
-1:失败(实时库版本过低不支持本接口); >0 内部版本号

◆ rdb_destory()

int rdb_destory ( int h)

删除句柄

不再使用实时库连接后,使用这个函数删除句柄,释放系统资源,使用前先调用 rdb_disconnect 断开连接.

参数
h[in] rdb_create创建的句柄.
返回
返回 0 表示成功,其余值为失败错误码

◆ rdb_disconnect()

int rdb_disconnect ( int h)

断开实时库

不再使用实时库连接后,先使用rdb_disconnect断开连接,然后调用rdb_destory销毁句柄释放资源.

参数
h[in] rdb_create创建的句柄.
返回
返回 0 表示成功,其余值为失败错误码

◆ rdb_getruninfo()

int rdb_getruninfo ( int h,
const char * stationid,
void(*)(const char *jsresp, int sizeresp, void *app_param) fun,
void * app_param )

从中心站查询子站运行信息

参数
h[in] rdb_create创建的句柄.
stationid[in] 子站ID,null表示从目前连接的站查询。stationid用 "子站名.master" 表示子站主站,"子站id.slave" 表示子站从站。
fun[in] 接收消息回调函数。
app_param[in] 应用层传递的参数, fun函数的最后一个参数.
返回
0: success; 其他为错误码
备注
返回消息通过回调函数返回,jsresp为JSON应答字符串,sizeresp为应答字符串的长度(字节数)。返回的JSON对象定义参见协议文档《rdb_data_exchange_protocol.pdf》8.2。

◆ rdb_getworkmode()

int rdb_getworkmode ( int h,
int * pworkmode )

读取工作模式

参数
hrdb_create创建的句柄
pworkmode成功会回填工作模式; 0:work模式; 1:管理模式
返回
成功返回0,否则返回错误码.
备注
实时库单独部署时,work模式和manage模式完全一样,没有区别; 双机热备部署时,在默认的工作模式下,以下命令对备机的请求会转发到主机处理:
rdb_getsnap
rdb_getoutlimitsnaps
rdb_valgetsection
rdb_objget
rdb_valquery
rdb_plotdata
rdb_sum
rdb_countkst
rdb_countruntime
rdb_soequery

设置为manage模式就可以强制不转发,只对连接的服务器操作。可以避免误会,比如已经使用rdb_datadelete命令删除了备机上的数据,结果在work模式还能查到数据。

◆ rdb_isconnected()

bool rdb_isconnected ( int h)

判断连接状态

参数
h[in] rdb_create创建的句柄.
返回
返回 非0 表示处于连接状态; 0表示处于断开状态

◆ rdb_setmessagenotify()

int rdb_setmessagenotify ( int h,
rdbcd_onmessage fun,
void * param )

设置消息通知回调函数

异步连接时需要使用本函数设置连接成功和失败的通知回调函数。

参数
h[in] rdb_create创建的句柄.
fun[in] 处理消息通知的回调函数 rdbcd_onmessage ,注意和调用者不在一个线程中
param[in] 回调函数自己使用的参数

◆ rdb_setslavedb()

int rdb_setslavedb ( int h,
const char * sip,
unsigned short wport,
const char * sUser,
const char * sPass )

设置从库

在rdb_create之后,connect之前设置从库的参数,从库的协议和主库相同, 即主库是ws协议则从库也是ws协议通道,主库是wss协议则从库也是wss协议通道。 主库和从库采用切换机制,同一时刻只有一个活动连接,主库失败或断开后尝试使用从库参数连接,从库失败或断开后尝试使用主库参数连接。 只有断开才会发生切换连接操作。

自从
fileversion 5.0.6.9开始有效
参数
h[in] rdb_create创建的句柄.
sip[in] ipv4地址.
wport[in] 服务端口.
sUser[in] 账号.
sPass[in] 账号密码.
返回
0:成功; -1表示失败

◆ rdb_setworkmode()

int rdb_setworkmode ( int h,
int workmode,
int * pworkmode )

设置工作模式

参数
hrdb_create创建的句柄
workmode0:work模式; 1:管理模式
pworkmode成功会回填工作模式; 0:work模式; 1:管理模式
返回
成功返回0,否则返回错误码.
备注
实时库单独部署时,work模式和manage模式完全一样,没有区别; 双机热备部署时,在默认的工作模式下,以下命令对备机的请求会转发到主机处理:
rdb_getsnap
rdb_getoutlimitsnaps
rdb_valgetsection
rdb_objget
rdb_valquery
rdb_plotdata
rdb_sum
rdb_countkst
rdb_countruntime
rdb_soequery

设置为manage模式就可以强制不转发,只对连接的服务器操作。