HASH 双向链表前叉节点
来源:互联网 发布:smtp端口 ssl qq 编辑:程序博客网 时间:2024/04/28 10:29
typedef struct st_HASH_TAB { UINT4 hsize; void **tab; tMemPoolId *memid; tMutex *mutex;}HASH_TAB;INT1 flw_sav_add_upload_uc_msgno_bind(INT1 *p_username, UINT1 user_type, UINT4 msg_no, UINT1 msg_type, UINT4 uc_msg_no){ UPLOAD_UC_MSGNO_MAP *p_app_uc_map = NULL; UPLOAD_UC_MSGNO_MAP *p_app_location = NULL; HASH_TAB *p_relation_tab = &g_uplaod_policy_hashtab; INT4 hash_index = 0; hash_index = FLW_SAV_username_type_hash(p_username,user_type,p_relation_tab->hsize); //如果策略类型为上报,则加入上报哈希表 p_app_uc_map = ((UPLOAD_UC_MSGNO_MAP**)p_relation_tab->tab)[hash_index]; while(p_app_uc_map) { if((strncmp(p_app_uc_map->username, p_username,L_USERID) == 0)&& (p_app_uc_map->msg_no == msg_no) && (p_app_uc_map->msg_type == msg_type)&& (p_app_uc_map->uc_msg_no == uc_msg_no)&& (p_app_uc_map->user_type == user_type)) { DebugOut(FLW_MOD_SAVE, LEVEL_INFO, "exist! msg_type:%d,msg_no:%d,uc_msg_no:%d\n", msg_type, msg_no, uc_msg_no); return SUCCESS; } p_app_uc_map = p_app_uc_map->pnext; } p_app_uc_map = (UPLOAD_UC_MSGNO_MAP*)GetMemFromPool(p_relation_tab->memid); if(NULL == p_app_uc_map) { DebugOut(FLW_MOD_SAVE, LEVEL_ERR, " get mem from pool failure!\n"); return FAILURE; } memset(p_app_uc_map, 0x0, sizeof(UPLOAD_UC_MSGNO_MAP)); strncpy(p_app_uc_map->username, p_username, L_USERID); p_app_uc_map->uc_msg_no = uc_msg_no; p_app_uc_map->msg_no = msg_no; p_app_uc_map->msg_type = msg_type; p_app_uc_map->user_type = user_type; p_app_location = ((UPLOAD_UC_MSGNO_MAP **)p_relation_tab->tab)[hash_index]; if(p_app_location) { p_app_uc_map->pnext = p_app_location; p_app_location->prev = p_app_uc_map; } ((UPLOAD_UC_MSGNO_MAP **)p_relation_tab->tab)[hash_index] = p_app_uc_map; DebugOut(FLW_MOD_SAVE, LEVEL_INFO, "add new node! msg_type:%d,msg_no:%d,uc_msg_no:%d\n", msg_type, msg_no, uc_msg_no); return SUCCESS;}
0 0
- HASH 双向链表前叉节点
- 双向链表 删除节点 插入节点
- 双向链表删除节点
- 双向链表的查找节点。
- 双向链表的节点删除
- 双向链表(2) - 删除节点
- 双向有头节点链表
- 双向链表中的交换节点
- 有头节点双向循环链表
- 双向链表 删除某个节点
- 双向循环带头节点链表
- 双向链表创建、删除某节点
- hdu6171-(双向bfs-hash表)
- C语言实现双向链表删除节点、插入节点、双向输出等操作
- 双向循环链表实现hash表操作
- 实现双向链表删除一个节点P,在节点P后插入一个节点
- 删除两个双向循环链表的相同节点
- 删除两个双向循环链表的相同节点
- java Date和String相互转换
- PHP判断是否为手持设备的函数
- CSS Secret——Coding Tips
- C#操作SQL Server数据库
- Ubuntu 下搭建 Node.js环境
- HASH 双向链表前叉节点
- HTML5 Server-Sent Events with Java Servlets example
- 安卓App热补丁动态修复技术介绍
- InSAR相关博客网址
- 2.6、Android Studio创建可伸缩的图片(9-patch文件)
- mysql基础
- A bear and three boats
- 【11】二进制中1的个数
- 源码debian打包