⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rc_ctl_table.h

📁 epoll机制的收发程序 只能在2.6内核上使用
💻 H
字号:
/*
 * 文 件 名:rc_ctl_table.h
 * 功    能:链表相关的函数接口
 * 作    者:马云龙
 * E_mail : mayunlong21@163.com
 * 开始时间:2007-4-23 16:05
 * 结束时间:2007-4-27 13:12
 * 修改时间:
 */
#ifndef		RC_CTL_TABLE_H//2007-4-23 16:05
#define		RC_CTL_TABLE_H
#include	"rc_ctl_define.h"








/*
 * 功  能:创建一个新的发送任务数据
 * 参  数:ctlinfo:链接相关信息
 *         type:链接类型,摄像机或者控件
 *         fifo:从管道中读出的内容
 *         buf:要发送的内容
 *         len:要发送的内容的长度
 * 返回值:成功返回发送任务的指针,否则返回一个空指针
 */
struct_task_net_w *rc_create_task_new_w(struct_msg_con *ctlinfo, unsigned char type, struct_buf_fifo *fifo, char *buf, int len);

/*
 * 功  能:向读任务的队列中添加新的任务
 * 参  数:head:任务队列的头指针
 *         newtask:新的任务的指针
 * 返回值:成功返回0,否则返回-1
 * 说  明:是将newtask的地址添加到任务队列尾,不对task做任何操作,
 *         newtask必须是一个临时分配的内存区
 */
int rc_add_task_r(struct_task_net_r **head, struct_task_net_r *newtask);

/*
 * 功  能:删除读任务的队列
 * 参  数:head:任务队列的头指针
 * 返回值:直接返回0
 */
int rc_del_task_r_all(struct_task_net_r **head);




/*
 * 功  能:向链接链表中添加一个新的链接
 * 参  数:head:链表队列的头指针
 *         newcon:新的链接的指针
 * 返回值:成功返回0,否则返回-1
 * 说  明:是将newcon的地址添加到任务队列尾,不对task做任何操作,
 *         newcon必须是一个临时分配好的内存区
 */
int rc_add_connection(struct_msg_con **head, struct_msg_con *newcon);


/*
 * 功  能:从链接链表中删除一个链接
 * 参  数:head:链表队列的头指针
 *         sockfd:要删除的链接的sockfd值
 * 返回值:成功返回1,找不到相匹配的链接返回0,失败返回-1
 * 说  明:删除的时候已经将sockfd关闭
 */
int rc_del_connection_one(struct_msg_con **head, int sockfd);

/*
 * 功  能:根据sockfd从链接信息的链表中获取摄像机的相关链接信息
 * 参  数:sockfd:socket的id
 *         head:链接信息链表的头指针
 * 返回值:成功返回链接信息的指针,否则返回空指针
 */
struct_msg_con *rc_get_lnk_cam(struct_msg_con *head, int sockfd);

/*
 * 功  能:根据sockfd从链接信息的链表中获取控件的相关链接信息
 * 参  数:sockfd:socket的id
 *         head:链接信息链表的头指针
 * 返回值:成功返回链接信息的指针,否则返回空指针
 */
struct_msg_atx *rc_get_lnk_atx(struct_msg_atx *head, int sockfd);


/*
 * 功  能:根据摄像机的序列号获取摄像机的在线信息
 * 参  数:serial:摄像机序列号
 *         head:链接信息链表的头指针
 *         cam:摄像机的相关链接信息
 * 返回值:如果摄像机在线返回0,否则返回-1
 * 说  明:是否要加互斥锁要视具体情况而定
 *         以最后链接上来的那个链接为准
 */
int rc_get_info_cam(const unsigned char *serial, struct_msg_con *head, struct_info_link *cam);

/*
 * 功  能:根据摄像机的序列号获取所有信息
 * 参  数:serial:摄像机序列号
 *         head:链接信息链表的头指针
 *         type:链接类型
 *         cam:摄像机的所有相关信息
 * 返回值:如果摄像机在线返回0,否则返回-1
 * 说  明:是否要加互斥锁要视具体情况而定
 *         以最后链接上来的那个链接为准
 */
int rc_get_msg_all(const unsigned char *serial, struct_msg_con *head, unsigned char type, struct_msg_con *cam);

/*
 * 功  能:向写任务的队列中添加新的任务
 * 参  数:head:任务队列的头指针
 *         newtask:新的任务的指针
 * 返回值:成功返回0,否则返回-1
 * 说  明:是将newtask的地址添加到任务队列尾,不对task做任何操作,
 *         newtask必须是一个临时分配的内存区
 */
int rc_add_task_w(struct_task_net_w **head, struct_task_net_w *newtask);

/*
 * 功  能:根据sockfd从写任务的队列中删除一个写任务
 * 参  数:head:任务队列的头指针
 *         sockfd:要删除的文件描述符
 * 返回值:直接返回0
 */
int rc_del_task_w_one(struct_task_net_w **head, int sockfd);

/*
 * 功  能:根据进程的pid来保存任务
 * 参  数:task:已经发送成功的任务队列的头指针
 *         pid:进程id
 *         serial:摄像机序列号
 *         mysql:链接好的数据库
 * 返回值:成功返回0,否则返回-1
 * 说  明:是保存信息至数据库
 */
int rc_task_save_sended(struct_task_sended *task, pid_t pid, const unsigned char *serial, struct_lab_mysql *lab_mysql);

/*
 * 功  能:根据进程的pid来删除已经发送过的任务
 * 参  数:pid:进程id
 * 返回值:成功返回0,没有这个pid返回-1
 */
int rc_task_del_sended(struct_task_sended **head, pid_t pid);


/*
 * 功  能:向控件的链接链表中添加一个新的控件链接
 * 参  数:head:链表队列的头指针
 *         newcon:新的链接的指针
 * 返回值:成功返回0,否则返回-1
 * 说  明:是将newcon的地址添加到任务队列尾,不对task做任何操作,
 *         newcon必须是一个临时分配好的内存区
 */
int rc_add_atx(struct_msg_atx **head, struct_msg_atx *newcon);

/*
 * 功  能:从控件链接链表中删除一个控件
 * 参  数:head:链表队列的头指针
 *         sockfd:控件的socket的id
 * 返回值:成功返回1,找不到相匹配的链接返回0,失败返回-1
 * 说  明:删除的时候已经将sockfd关闭
 */
int rc_del_atx_one(struct_msg_atx **head, int sockfd);

/*
 * 功  能:根据sockfd从控件链接链表中找到这个控件的其它相关信息
 * 参  数:head:链表队列的头指针
 *         sockfd:控件的socket的id
 *         atx:要查找的控件的信息
 * 返回值:成功返回1,找不到相匹配的链接返回0,失败返回-1
 * 说  明:删除的时候已经将sockfd关闭
 */
int rc_info_atx(struct_msg_atx *head, int sockfd, struct_msg_atx *atx);


/*
 * 功  能:根据摄像机的序列号获取摄像机的内网信息
 * 参  数:serial:摄像机序列号
 *         head:链接信息链表的头指针
 *         cam:摄像机的相关内网信息
 * 返回值:如果摄像机在线返回0,否则返回-1
 * 说  明:是否要加互斥锁要视具体情况而定
 *         以最后链接上来的那个链接为准
 */
int rc_get_cam_local(const unsigned char *serial, struct_msg_con *head, struct_cam_local *cam);


#endif//2007-4-23 16:05



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -