X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=Include%2Fplat_db.h;fp=Include%2Fplat_db.h;h=5161f1d59af393d3060b6fc00e43783eb7e13e0e;hb=e93798699eccb72af04938fc9b0d7a836e284488;hp=fe7b0c389a1aa21f8a5d9aeb093e55030ab42219;hpb=94f13ab3e8da393eb27ccc561d31b447b1367c56;p=scp%2Focu%2F5gnr.git diff --git a/Include/plat_db.h b/Include/plat_db.h index fe7b0c3..5161f1d 100644 --- a/Include/plat_db.h +++ b/Include/plat_db.h @@ -1,9 +1,21 @@ /****************************************************************************** -############################################################################### -# Copyright (c) [2017-2020] [ICT/CAS] # -# Licensed under the ORAN Software License v1.0 (License) # -############################################################################### -******************************************************************************/ +* +* Copyright (c) 2020 ICT/CAS. +* +* Licensed under the O-RAN Software License, Version 1.0 (the "Software License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.o-ran.org/software +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*******************************************************************************/ + @@ -42,24 +54,24 @@ extern "C"{ #define DB_FILTER_SUB_VAL_NUM 8 /** INTEGER类型数据长度 */ -#define DB_INTEGER_LEN 8 +#define DB_INTEGER_LEN 8 /** TIME类型数据长度 */ -#define DB_TIME_LEN 16 +#define DB_TIME_LEN 16 /** 时间字符串数据长度 */ -#define DB_TIME_STR_MAX_LEN 22 +#define DB_TIME_STR_MAX_LEN 22 /** MAC地址类型数据长度 */ -#define DB_MAC_ADDR_STR_MAX_LEN 18 +#define DB_MAC_ADDR_STR_MAX_LEN 18 /** IPV4地址类型数据长度 */ -#define DB_IPV4_ADDR_STR_MAX_LEN 16 +#define DB_IPV4_ADDR_STR_MAX_LEN 16 /** IPV6地址类型数据长度 */ -#define DB_IPV6_ADDR_STR_MAX_LEN 40 +#define DB_IPV6_ADDR_STR_MAX_LEN 40 #define DB_FILTER_OP_STR_LEN 10 @@ -69,41 +81,41 @@ extern "C"{ /** 数据库的数据类型 */ typedef enum DB_data_type_e{ - DB_DATA_TYPE_INTEGER = 1L, ///< 数值型 - DB_DATA_TYPE_STR , ///< 字符串型 - DB_DATA_TYPE_DATETIME , ///< 时间型 - DB_DATA_TYPE_MAC , ///< MAC地址型 - DB_DATA_TYPE_IPV4_ADDR , ///< IPv4地址型 - DB_DATA_TYPE_IPV6_ADDR , ///< IPv6地址型 - DB_DATA_TYPE_BUFFER , ///< buffer型 + DB_DATA_TYPE_INTEGER = 1L, ///< 数值型 + DB_DATA_TYPE_STR , ///< 字符串型 + DB_DATA_TYPE_DATETIME , ///< 时间型 + DB_DATA_TYPE_MAC , ///< MAC地址型 + DB_DATA_TYPE_IPV4_ADDR , ///< IPv4地址型 + DB_DATA_TYPE_IPV6_ADDR , ///< IPv6地址型 + DB_DATA_TYPE_BUFFER , ///< buffer型 DB_DATA_TYPE_MAX }DB_data_type_t; /** 数据库的查询的比较类型 */ typedef enum DB_filter_sub_type_e{ - DB_FILTER_SUB_TYPE_EQUAL = 1, ///< 相等 - DB_FILTER_SUB_TYPE_N_EQUAL , ///< 不相等 - DB_FILTER_SUB_TYPE_GREAT , ///< 大于 - DB_FILTER_SUB_TYPE_LESS , ///< 小于 - DB_FILTER_SUB_TYPE_GREAT_EQ , ///< 大于等于 - DB_FILTER_SUB_TYPE_LESS_EQ , ///< 小于等于 - DB_FILTER_SUB_TYPE_INCLUDE , ///< 包含 - DB_FILTER_SUB_TYPE_EXCLUDE , ///< 不包含 + DB_FILTER_SUB_TYPE_EQUAL = 1, ///< 相等 + DB_FILTER_SUB_TYPE_N_EQUAL , ///< 不相等 + DB_FILTER_SUB_TYPE_GREAT , ///< 大于 + DB_FILTER_SUB_TYPE_LESS , ///< 小于 + DB_FILTER_SUB_TYPE_GREAT_EQ , ///< 大于等于 + DB_FILTER_SUB_TYPE_LESS_EQ , ///< 小于等于 + DB_FILTER_SUB_TYPE_INCLUDE , ///< 包含 + DB_FILTER_SUB_TYPE_EXCLUDE , ///< 不包含 DB_FILTER_SUB_TYPE_MAX }DB_filter_sub_type_t; /** filter的组合方式 */ typedef enum DB_filter_option_e{ - DB_FILTER_OPTION_AND = 1, ///< 与 - DB_FILTER_OPTION_OR , ///< 或 + DB_FILTER_OPTION_AND = 1, ///< 与 + DB_FILTER_OPTION_OR , ///< 或 DB_filter_TYPE_MAX }DB_filter_option_t; /** 排序方式 */ typedef enum DB_order_type_e{ DB_ORDER_TYPE_ASCEND = 0, ///< 升序(默认) - DB_ORDER_TYPE_DESCEND = 1, ///< 降序 + DB_ORDER_TYPE_DESCEND = 1, ///< 降序 DB_ORDER_TYPE_MAX }DB_order_type_t; #define DB_ORDER_TYPE_DESCEND_STR "DESC" @@ -128,18 +140,18 @@ typedef union DB_data_val_u{ /** 列信息 */ typedef struct DB_column_info_s{ - CHAR name[DB_COLUMN_NAME_LEN]; ///< 列名 - LONG type; ///< 数据的类型 - LONG size; ///< 对于BUFFER和STR 类型,代表BUFFER 和 STR(包含字符串结尾 '\0') 占用的字节数 - LONG pkey; ///< 主键标志 - CHAR fkey[DB_FKEY_LEN]; ///< 外键,表名+.+列名的字符串,格式为 table(column),字符串长度为 0 则表示不是外键 + CHAR name[DB_COLUMN_NAME_LEN]; ///< 列名 + LONG type; ///< 数据的类型 + LONG size; ///< 对于BUFFER和STR 类型,代表BUFFER 和 STR(包含字符串结尾 '\0') 占用的字节数 + LONG pkey; ///< 主键标志 + CHAR fkey[DB_FKEY_LEN]; ///< 外键,表名+.+列名的字符串,格式为 table(column),字符串长度为 0 则表示不是外键 DB_data_val_t defaultVal; ///< 默认值 }VOS_PACKED DB_column_info_t; /** 数据库句柄 */ typedef struct DB_database_s{ - CHAR path[FILE_PATH_MAX]; ///< 文件路径 - VOID *handle; ///< 被打开的数据库 + CHAR path[FILE_PATH_MAX]; ///< 文件路径 + VOID *handle; ///< 被打开的数据库 LONG seqID; }DB_database_t; @@ -157,7 +169,7 @@ typedef struct DB_table_info_s{ CHAR name[DB_TABLE_NAME_LEN]; ///< name 表名 LONG max_row; ///< 静态表标志,1为静态表,0为动态表 DB_table_init_func_t table_init_func; ///< 表初始化函数,可以为空 - CHAR table_init_func_name[DB_TABLE_INIT_FUNC_NAME_LEN]; + CHAR table_init_func_name[DB_TABLE_INIT_FUNC_NAME_LEN]; }DB_table_info_t; /** filer子元素 */ @@ -193,39 +205,39 @@ typedef enum DB_ret_code_e{ DB_RET_CODE_table_full , ///< 表已满,无法在添加数据 DB_RET_CODE_error, ///< 其他错误 - DB_RET_CODE_max, ///< + DB_RET_CODE_max, ///< }DB_ret_code_t; -/** +/** * 打开平台数据库 * @param[out] db 成功时返回被打开的数据 * @return 成功返回 VOS_OK,失败则返回其他 - */ + */ LONG DB_open_plat_db(DB_database_t *db); -/** +/** * 关闭平台数据库 * @param[in ] db 要操作的数据库 * @return 成功返回 VOS_OK,失败则返回其他 - */ + */ LONG DB_close_plat_db(DB_database_t *db); -/** +/** * 查看表是否存在 * @param[in ] db 要操作的数据库 * @param[in ] table_name 表名 * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, - */ + */ BOOL DB_table_exist(DB_database_t *db,const CHAR *table_name, LONG *retCode,LONG timeout); -/** +/** * 在指定数据库中创建表 * @param[in ] db 要操作的数据库 * @param[in ] table 表信息 @@ -233,24 +245,24 @@ BOOL DB_table_exist(DB_database_t *db,const CHAR *table_name, * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, - */ + */ LONG DB_table_create(DB_database_t *db,DB_table_info_t *table,DB_column_info_t cols[], LONG *retCode,LONG timeout); -/** +/** * 在指定数据库中删除表 * @param[in ] db 要操作的数据库 * @param[in ] name 表名 * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, - */ + */ LONG DB_table_delete(DB_database_t *db,const CHAR name[DB_TABLE_NAME_LEN], LONG *retCode,LONG timeout); -/** +/** * 向表中插入一行数据 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -259,12 +271,12 @@ LONG DB_table_delete(DB_database_t *db,const CHAR name[DB_TABLE_NAME_LEN], * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, - */ + */ LONG DB_table_row_add(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN],VOID *data, LONG *retCode,LONG timeout); -/** +/** * 查询数据 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -276,14 +288,14 @@ LONG DB_table_row_add(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN] * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_row_query(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN],DB_row_handle_t *row_handle, DB_query_filter_t filter[],LONG filter_num,DB_order_t order[],LONG order_num, LONG *retCode,LONG timeout); -/** +/** * 获取行句柄当前行数据,并自动指向下一行,当没下一行数据时,句柄会被销毁,不可再用 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -293,12 +305,12 @@ LONG DB_table_row_query(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LE * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_row_data_pop(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN], DB_row_handle_t *row_handle,VOID *data, LONG *retCode,LONG timeout); -/** +/** * 销毁行句柄 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -306,12 +318,12 @@ LONG DB_table_row_data_pop(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_row_handle_destroy(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN],DB_row_handle_t *row_handle, LONG *retCode,LONG timeout); -/** +/** * 删除行 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -320,14 +332,14 @@ LONG DB_table_row_handle_destroy(DB_database_t *db,const CHAR table_name[DB_TABL * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_row_delete(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN], DB_query_filter_t filter[],LONG filter_num, LONG *retCode,LONG timeout); -/** +/** * 更新行 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -340,13 +352,13 @@ LONG DB_table_row_delete(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_L * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_row_update(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN],VOID *newData, DB_query_filter_t filter[],LONG filter_num,DB_column_info_t col[],LONG col_num, LONG *retCode,LONG timeout); -/** +/** * 计算行数 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -356,12 +368,12 @@ LONG DB_table_row_update(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_L * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_row_count(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN],LONG *row_count, DB_query_filter_t filter[],LONG filter_num, LONG *retCode,LONG timeout); -/** +/** * 覆盖最早插入的数据,用于表行数到达上限的覆盖操作 * @param[in ] db 要操作的数据库 * @param[in ] table_name 要操作的表名 @@ -370,16 +382,16 @@ LONG DB_table_row_count(DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LE * @param[out] retCode 数据库执行结果,如果不关心可以填 NULL,如果关心需要传入timeout,等待时间 * @param[in ] timeout 等待执行结果的时间,单位 秒 * @return 返回向数据库模块发送消息的结果,成功返回 VOS_OK,失败则返回其他, -*/ +*/ LONG DB_table_overwrite_first_row( DB_database_t *db,const CHAR table_name[DB_TABLE_NAME_LEN],VOID *newData, LONG *retCode,LONG timeout); -/** +/** * 将DB 的error code转换成字符串 * @param[in ] code 错误码 * @return 返回错误码对应的字符串 -*/ +*/ const CHAR *DB_err_msg(LONG code); @@ -388,4 +400,3 @@ const CHAR *DB_err_msg(LONG code); #endif /* end of __cplusplus */ #endif /* end of __PLAT_DB_H__ */ -