☆ 参考 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版权协议,转载请附上原文出处链接和本声明。