Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
 int32	const_service_req(const ServiceRequest& srreq,
                           std::string& req) {
     return srreq.SerializeToString(&req);
 }