代码拉取完成,页面将自动刷新
#ifndef _UVM_IPC_H_
#define _UVM_IPC_H_
#include "uvm_public.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct s_uvm_ipc_server {
uvm_t *uvm;
void *data;
char *name; //服务端名称
} uvm_ipc_server_t;
typedef struct s_uvm_ipc_client {
uvm_t *uvm;
void *data;
char *name; //客户端名称
char *pipe_name;
} uvm_ipc_client_t;
/** 服务端接口 */
/**
* 注册服务端
* @param h 输出句柄
* @param ipc ipc名字,一个合法的字符串
* @param uv uv_loop_t指针,外部指定或NULL表示内部创建
* @note 外部指定uv_loop_t时,需要外部处理线程间的关系
*/
_UVM_API int uvm_ipc_server(uvm_t *uvm, char* ipc, uvm_ipc_server_t** h, void* user);
/** 客户端接口 */
/**
* 客户端接收到消息回调
* @param h 输出句柄
* @param user 用户自定义数据
* @param name 消息发送者名称,NULL表示是服务端发送的信息
* @param msg 消息名称
* @param data 消息内容
* @param len 消息内容长度
*/
typedef void (*uvm_ipc_recv_cb)(uvm_ipc_client_t* h, char* name, char* msg, char* data, int len);
/**
* 注册客户端
* @param h 输出句柄
* @param ipc ipc名字,一个合法的字符串
* @param uv uv_loop_t指针,外部指定或NULL表示内部创建
* @param name 客户端名字,不包含','的字符串
* @param cb 接收到消息的回调方法
* @param user 用户自定义数据
* @note 外部指定uv_loop_t时,需要外部处理线程间的关系
*/
_UVM_API int uvm_ipc_client(uvm_t *uvm, char* ipc, char* name, uvm_ipc_client_t** h, uvm_ipc_recv_cb cb, void* user);
/**
* 发送消息到其他客户端
* @param h 环境句柄
* @param names 其他客户端的名字,多个接受者用','隔开
* @param msg 消息名称
* @param data 消息内容,可以为NULL
* @param len 消息内容长度
*/
_UVM_API int uvm_ipc_send(uvm_ipc_client_t* ipc_clt, char* names, char* msg, char* data, int len);
/**
* 关闭ipc服务端,并释放资源
*/
_UVM_API void uvm_ipc_server_close(uvm_ipc_server_t* h);
/**
* 关闭ipc客户端,并释放资源
*/
_UVM_API void uvm_ipc_client_close(uvm_ipc_client_t* h);
_UVM_API const char* uv_ipc_strerr(int status);
#ifdef __cplusplus
}
#endif
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。