| | |
| | | extern "C"{
|
| | | #endif
|
| | |
|
| | | /*
|
| | | 配合 message.h[cpp] 使用
|
| | | */
|
| | | /*
|
| | | 初始化 bus client,srvid 表明当前机器的 srvid 用于远程通信,目前没用
|
| | | rinfo 是注册进程的消息,单进程多次调用,需要使用不同的rinfo
|
| | | */
|
| | | void* bus_client_init(const char* srvid, const size_t sidsize, const creg* rinfo);
|
| | | /*
|
| | | 释放 bus client
|
| | | */
|
| | | void bus_client_free(void* handle);
|
| | |
|
| | | /*
|
| | | 获取订阅的消息,订阅消息通过线程不停读取,此处从缓存中读取
|
| | | 可通过 message.h 对应的 get_submsg_db get_submsg_proclist 获取对应的消息
|
| | | */
|
| | | struct csubmsg* bus_client_get_submsg(void* handle);
|
| | | /*
|
| | | 发布消息,data 是 MsgPublish protobuffer序列化后的数据
|
| | | */
|
| | | int bus_client_pubmsg(void* handle, const char* data, const size_t size);
|
| | | /*
|
| | | 发布消息,topic 是发布主题, data 是发布的消息体
|
| | | */
|
| | | int bus_client_publish(void* handle, const char* topic, const size_t topicl, const char* data, const size_t size);
|
| | |
|
| | | /*
|
| | | 获取 request 消息,通过线程读取,此处从缓存中读取
|
| | | 可通过 message.h 的 get_reqmsg_stackerr get_reqmsg_stack 获取对应的消息
|
| | | src 是哪一个进程请求的标识符
|
| | | 可以响应多个request发送的消息,同时需要满足异步响应,使用 src 进行区分
|
| | | 类似与tcp/ip的socket,标识一个连接
|
| | | */
|
| | | struct creqmsg* bus_client_get_reqmsg(void* handle, void** src);
|
| | | int bus_client_request(void* handle, struct creqmsg* msg, struct crepmsg** repmsg);
|
| | | /*
|
| | | 响应消息回复,src是连接标识符,msg是需要回复的消息
|
| | | 通过 message.h 的 make_reply_msg 创建
|
| | | */
|
| | | int bus_client_reply_msg(void* handle, void* src, const struct crepmsg* msg);
|
| | |
|
| | | // test
|
| | | int bus_client_pubmsg(void* handle, void* data, const size_t size);
|
| | | /*
|
| | | 同步的request请求,发送 creqmsg 获取 crepmsg 回复
|
| | | 通过 message.h 的 make_req_msg 创建 request 消息
|
| | | 获取的 crepmsg 回复消息,需要使用 free_reply_msg 释放
|
| | | */
|
| | | int bus_client_request(void* handle, struct creqmsg* msg, struct crepmsg** repmsg);
|
| | |
|
| | | #ifdef __cplusplus
|
| | | }
|