RPC流程一 - proto编写

☆ 参考 https://github.com/goyas/goya-rpc/tree/master/src
☆ 对RPC中的Server端和Client端流程进行整理

- 代码目录
.
├── CMakeLists.txt
├── config.cmake
├── sample
│ └── echo
│ ├── CMakeLists.txt
│ ├── echo_client.cc
│ ├── echo_server.cc
│ └── echo_service.proto
└── src
├── CMakeLists.txt
├── rpc_channel.cc
├── rpc_channel.h
├── rpc_channel_impl.cc
├── rpc_channel_impl.h
├── rpc_controller.h
├── rpc_meta.proto
├── rpc_server.cc
├── rpc_server.h
├── rpc_server_impl.cc
└── rpc_server_impl.h

- proto编写

echo_service.proto

syntax = "proto3";

package goya.rpc.echo; // 命名空间

option cc_generic_services = true; // 是否生成C代码
 
message EchoRequest {
    string message = 1;
}

message EchoResponse {
    string message = 1;
}

service EchoServer {
  rpc Echo(EchoRequest) returns(EchoResponse);
}

- CMakeList.txt对proto文件的解析

find_package(Protobuf REQUIRED)
file(GLOB protofiles "${PROJECT_SOURCE_DIR}/sample/echo/*.proto")
PROTOBUF_GENERATE_CPP(PROTOSRCS PROTOHDRS ${protofiles})

- 参考文献

1、proto - https://colobu.com/2015/01/07/Protobuf-language-guide/
2、CMakeList.txt - https://elloop.github.io/tools/2016-04-10/learning-cmake-2-commands


版权声明:本文为wd3cwg38原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。