int SvList::transRequest(const ServiceRequest& req){ if(!m_svs.size()){ return NO_SERVICE; } AutoLock l(&m_cs); CliCon* c = m_svs[m_cnt % m_svs.size()]; if(!c){ return NO_SERVICE; } string newreq; req.SerializeToString(&newreq); SendMsgOp *op = new SendMsgOp(c->getId(), SERVICE_REQ, newreq); int ret = c->getEventLoop()->addAsynOperator(op); if(ret < 0){ return INNER_ERROR; } ++m_cnt; if(m_cnt < 0){ m_cnt = 0; } return 0; }
int32 const_service_req(const ServiceRequest& srreq, std::string& req) { return srreq.SerializeToString(&req); }