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 | 密码
  nTimeOutSec | 0表示异步连接，立即返回，大于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");
rdb_create
int rdb_create()
创建接口
SE_ERRHANDLE
#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 )

读取工作模式

参数

  h | rdb_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 )

设置工作模式

参数

  h | rdb_create创建的句柄
  workmode | 0：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模式就可以强制不转发，只对连接的服务器操作。