Exemplo n.º 1
0
int main(int argc, char **argv)
{
    using namespace ucorf;

    const char* url = "tcp://127.0.0.1:8080";
    if (argc > 1)
        url = argv[1];

    Client client;
    client.SetUrl(url);
    UcorfEchoServiceStub stub(&client);

//    go [&]{
//retry:
//        EchoRequest request;
//        request.set_code(1);
//        EchoResponse response;
//
//        boost_ec ec = stub.Echo(request, &response);
//        if (ec) {
//            cout << "rpc call error: " << ec.message() << endl;
//        } else {
//            cout << "rpc call success, response.code=" << response.code() << endl;
//        }
//
//        co_sleep(1000);
//        goto retry;
//    };

    go [&]{
retry:
        EchoRequest request;
        request.set_code(1);

        boost_ec ec;
        std::shared_ptr<EchoResponse> rsp = stub.Echo(request, &ec);
        if (ec) {
            cout << "rpc call error: " << ec.message() << endl;
        } else {
            cout << "rpc call success, response.code=" << rsp->code() << endl;
        }

        co_sleep(1000);
        goto retry;
    };

    co_sched.RunLoop();
    return 0;
}
Exemplo n.º 2
0
int main()
{
    Channel* channel = new Channel();
    channel->Connect("127.0.0.1", 8888, true);
    for(int i = 0; i < 1000000; ++i){
        channel->Update();
        Controller* controller = new Controller();
        EchoRequest* request = new EchoRequest();
        EchoResponse* response = new EchoResponse();
        Closure* closure = new Closure(controller, request, response);
        EchoService_Stub* stub = new EchoService_Stub(channel);
        request->set_message("hello");
        stub->Echo(controller, request, response, closure);
    }

    uv_run(uv_default_loop(), UV_RUN_DEFAULT);
}
Exemplo n.º 3
0
/*
 * Check that method that fail return correctly
 */
void RpcChannelTest::testFailedEcho() {
  m_request.set_data("foo");
  m_stub->FailedEcho(
      &m_controller,
      &m_request,
      &m_reply,
      NewSingleCallback(this, &RpcChannelTest::FailedEchoComplete));
  m_ss.Run();
}
Exemplo n.º 4
0
void Client::loop() {
	EchoRequest request;
	request.set_msg("带着相机去旅行");

	//同步调用
	EchoResponse response;
	int ret = g_prx->Echo(request, response);
	//cout << response.msg() << endl;
//	LOG("ret %d\n", ret);
//	LOG("msg len %lu\n", response.msg().size());

	//异步调用
	ServiceProxyCallBackPtr cb(new GameServiceProxyCB);
	g_prx->async_Echo(cb, request);

	//单向调用
	g_prx->async_Echo(NULL, request);
	//usleep(10);
}
Exemplo n.º 5
0
int DemosvrClient::Echo(const string & sMsgIn, string & sMsgOut, int & iVar) {
    int iRet = 0;
    EchoRequest req;
    EchoResponse resp;
    req.set_msg(sMsgIn);
    resp.set_msg(sMsgIn);
    resp.set_var(999);
    iRet = ((DemosvrCliProto &)GetCliProto()).Echo(req, resp);
    if (iRet < 0) { // haysvr err
        HayLog(LOG_ERR, "%s %s cliproto fail. ret[%d]",
                __FILE__, __PRETTY_FUNCTION__, iRet);
        return -1;
    } else if ((iRet=GetCliProto().GetResponseCode()) < 0) { // user err
        HayLog(LOG_ERR, "%s %s fail. ret[%d]",
                __FILE__, __PRETTY_FUNCTION__, iRet);
        return -2;
    }
    // succ
    sMsgOut = resp.msg();
    iVar = resp.var();
    return 0;
}
Exemplo n.º 6
0
 virtual bool Echo(EchoRequest & request, EchoResponse & response)
 {
     // 处理请求
     response.set_code(request.code());
     return true;
 }
int DemosvrService::Echo(const EchoRequest & req, EchoResponse & resp) {
    resp.set_msg(req.msg()+" hayes!");
    resp.set_var(998);
    return 0;
}
Exemplo n.º 8
0
/*
 * Check stream requests work
 */
void RpcChannelTest::testStreamRequest() {
  m_request.set_data("foo");
  m_stub->Stream(NULL, &m_request, NULL, NULL);
  m_ss.Run();
}
Exemplo n.º 9
0
void RpcChannelTest::EchoComplete() {
  m_ss.Terminate();
  OLA_ASSERT_FALSE(m_controller.Failed());
  OLA_ASSERT_EQ(m_reply.data(), m_request.data());
}