void RpcService::send(const std::string &name, rpcproto::rpc *msg) { RpcClient *rc = 0; std::map<std::string, RpcClient *>::iterator it = rpc_client_map_.find(name); if (it == rpc_client_map_.end()) { std::string host = svc::env()->get_server_value(name, "host"); std::string port = svc::env()->get_server_value(name, "port"); if (host == "" || port == "") { return; } std::string addr = "tcp://" + host + ":" + port; rc = new RpcClient(name, addr); rpc_client_map_[name] = rc; } else { rc = (*it).second; } std::string s; msg->SerializeToString(&s); rc->putq(s); }