昇腾社区首页
中文
注册

OpenHiva::Node::CreateServer

函数功能

创建Service的服务端。

函数原型

template <typename ReqType, typename ResType> std::shared_ptr<OpenHiva::ServiceServer> CreateServer(const std::string &serviceName, const OpenHiva::ServiceOptions &serviceOptions, const std::function<bool(ReqType, ResType)> &serviceCallback)

参数说明

参数名

输入/输出

说明

serviceName

输入

服务名。

serviceOptions

输入

Service属性配置,详见OpenHiva::ServiceOptions类型定义

serviceCallback

输入

Server收到消息后调用的回调函数,用于处理Client端发布的消息。

返回值

返回OpenHiva::ServiceServer对象,可通过该对象完成服务端的初始化及资源释放。

使用说明

注意事项

  • 服务必须全局唯一,不可重复不可同名。
  • 对于同一个服务,客户端和服务端的参数serviceName、serviceOptions必须完全一致。
  • 调用时必须确保入参正确,按约束使用,回调函数必须判断长度,不可越界。
  • 按serviceName拼接其他字符串来创建共享内存文件,需符合文件命名规则。
  • 一个服务端只起一个线程,回调处理是串行的,不同服务的回调处理是并行的。
  • 服务端处理太慢可能会导致客服端超时。
  • 由于涉及共享内存文件读写,服务端进程和客户端进程的用户权限必须相同,否则可能通信失败。
  • ReqType描述请求的消息类型,必须是HivaMessage的子类。
  • ResType描述响应的消息类型,必须是HivaMessage的子类。