Exemplo n.º 1
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.º 2
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;
}