#include "coroutine.hpp" #include "logger.hpp" #include "net_address.hpp" #include "reactor.hpp" #include "tcp_client.hpp" #include "tcp_server.hpp" #include "tinypb.pb.h" #include "tinypb_channel.hpp" #include "tinypb_closure.hpp" #include "tinypb_controller.hpp" #include using namespace std; using namespace tinyrpc; int n = 10; void test() { NetAddress addr("127.0.0.1", 9001); TinypbChannel channel(addr); while (n--) { logger() << "============== test no:" << n << "==============="; queryNameReq req_name; req_name.set_req_no(20220315); req_name.set_id(1100110001); req_name.set_type(1); queryNameRes res_name; queryAgeReq req_age; req_age.set_req_no(00001111); req_age.set_id(6781); queryAgeRes res_age; TinypbClosure cb([]() { logger() << "=========================="; logger() << "succ call rpc"; logger() << "=========================="; }); QueryService_Stub stub(&channel); TinypbController rpc_controller; stub.query_name(&rpc_controller, &req_name, &res_name, &cb); if (rpc_controller.ErrorCode() != 0) { logger() << "call rpc method query_name failed, errcode=" << rpc_controller.ErrorCode() << ",error=" << rpc_controller.ErrorText(); } if (res_name.ret_code() != 0) { logger() << "query name error, errcode=" << res_name.ret_code() << ", res_info=" << res_name.res_info(); } else { logger() << "get res_name.age = " << res_name.name(); } } } int main() { // TcpServer server; TcpClient client(NetAddress("127.0.0.1", 9001)); Coroutine cor(test); client.addCoroutine(cor); client.start(); return 0; }