1 Star 0 Fork 55

ulong/srpc

forked from 搜狗开源/srpc 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
benchmark
docs
en
images
rpc.md
tutorial-01-idl.md
tutorial-02-service.md
tutorial-03-server.md
tutorial-04-client.md
tutorial-05-context.md
tutorial-06-workflow.md
wiki.md
src
test
third_party
tutorial
.editorconfig
.gitignore
.gitmodules
.travis.yml
CMakeLists.txt
CMakeLists_Headers.txt
CODE_OF_CONDUCT.md
GNUmakefile
LICENSE
README.md
README_cn.md
buildrpm.mk
configure
srpc-config.cmake.in
克隆/下载
tutorial-02-service.md 1.15 KB
一键复制 编辑 原始数据 按行查看 历史
liyingxin 提交于 4年前 . update docs

English version

RPC Service

  • 组成sogouRPC服务的基本单元
  • 每一个Service一定由某一种IDL生成
  • Service只与IDL有关,与网络通信具体协议无关

示例

下面我们通过一个具体例子来呈现

  • 沿用上面的example.protoIDL描述文件
  • 执行官方的protoc example.proto --cpp_out=./ --proto_path=./获得example.pb.hexample.pb.cpp两个文件
  • 执行SogouRPC的srpc_generator protobuf ./example.proto ./获得example.srpc.h文件
  • 我们派生Example::Service来实现具体的rpc业务逻辑,这就是一个RPC Service
  • 注意这个Service没有任何网络、端口、通信协议等概念,仅仅负责完成实现从EchoRequest输入到输出EchoResponse的业务逻辑
class ExampleServiceImpl : public Example::Service
{
public:
    void Echo(EchoRequest *request, EchoResponse *response, RPCContext *ctx) override
    {
        response->set_message("Hi, " + request->name());

        printf("get_req:\n%s\nset_resp:\n%s\n",
                request->DebugString().c_str(),
                response->DebugString().c_str());
    }
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/ulong9464/srpc.git
git@gitee.com:ulong9464/srpc.git
ulong9464
srpc
srpc
master

搜索帮助