rpc框架 读写事件回调函数 第三步

本文详细介绍了如何在protobuf框架下生成RPC请求和响应,包括创建请求和响应对象,反序列化请求数据,以及使用Closure回调函数处理服务方法调用的过程。
摘要由CSDN通过智能技术生成

// 生成rpc方法调用的请求request和响应response参数

定义请求数据对象

    google::protobuf::Message *request = service->GetRequestPrototype(method).New();

 

反序列化请求数据

    if (!request->ParseFromString(args_str))

    {

        std::cout << "request parse error, content:" << args_str << std::endl;

        return;

    }

 

定义响应数据对象

    google::protobuf::Message *response = service->GetResponsePrototype(method).New();

 

    // 给下面的method方法的调用,绑定一个Closure的回调函数

根据protobuf框架的函数定义,定义回调函数

    google::protobuf::Closure *done = google::protobuf::NewCallback<

  RpcProvider,  const muduo::net::TcpConnectionPtr&,           google::protobuf::Message*>

                                                                    (this, 

&RpcProvider::SendRpcResponse, 

  conn,

response);

 

    // 框架根据远端rpc请求,调用当前rpc节点上发布的方法

    // new UserService().Login(controller, request, response, done)

    service->CallMethod(method, nullptr, request, response, done);

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值