void AgenteRemoto::correr() { while (corriendo()) { if (agente && agente->conectado()) { ConsultaAgenteServidor parConsulta; parConsulta.first = this; if (agente->recibir(parConsulta.second)) { cconsultas.push(parConsulta); } else { parar(); } } else { parar(); } } }
/*bucle principal*/ void SpecificWorker::compute() { TBaseState tbase; try { differentialrobot_proxy->getBaseState(tbase); inner->updateTransformValuesS("base",tbase.x,0,tbase.z,0,tbase.alpha,0); } catch(const Ice::Exception e) { std::cout << e << std::endl; } switch(state) { case State::INIT: state = State::SEARCH; break; case State::SEARCH: search(); break; case State::CONTROLLER: controller(); break; case State::STOP: parar(); break; } }
void Queda::parar() { disconnect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(parar())); connect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(setInfs())); ui.btnIniciar->setText("Iniciar"); timer.stop(); glWidget.parar(); }
void HiloResponderConsulta::correr() { while (corriendo()) { try { ConsultaClienteServidor par = cconsultas.pop2(); Respuesta r = resolvedor.resolver(par.second); par.first->enviarRespuesta(r); } catch (BLQueueException& e) { parar(); } } }
void Queda::setInfs() { disconnect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(setInfs())); connect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(parar())); ui.btnIniciar->setText("Parar"); glWidget.setAltura(ui.edtAltura->text().toDouble()); glWidget.setGravidade(ui.edtGravidade->text().toDouble()); glWidget.setCoeficienteRestituicao((double) ui.slrCoeficiente->value()/100); timer.start(10); glWidget.iniciar(10); }
double Grasp::ejecutar(int criterioParada) { // Ejecuta GRASP hasta que se llegue al criterio de parada y devuelve el minimo peso cout.precision(4); iteracionActual_ = 0; ultimaIteracionConMejora_ = 0; while( ! parar(criterioParada) ) { iteracionActual_++; particionActual_ = h_.resolver(); pesoParticionActual_ = pesoParticion(particionActual_); busquedaLocalUnNodo(); if (pesoParticionActual_ < pesoMejorParticion_) { mejorParticion_ = particionActual_; pesoMejorParticion_ = pesoParticionActual_; ultimaIteracionConMejora_ = iteracionActual_; } } return pesoMejorParticion_; }
void ConsumerRespuesta::correr() { while (corriendo()) { ParRespuesta r; if (servidor->recibir(r.second)) { // std::cout << "Recibido en el consumerRespuesta por socket: " << r.second.serializar() << std::endl << "\tID: " << r.second.devolverID() << std::endl, if (r.second.mensajeInterno() != Respuesta::mensajeError) { r.first = r.second.devolverID(); if (cancelados.has(r.first) && cancelados[r.first]) { cancelados[r.first] = false; } else { //std::cout << "Agregando a la cola de respuestas de ConsumerRespuesta respuesta: " << r.second.serializar() << ", de ID: "; // if (r.first == r.second.devolverID()) // std:: cout << r.first << std::endl; respuestas.push(r); } } } else { parar(); } } }
ConsumerRespuesta::~ConsumerRespuesta() { parar(); }
void ClienteRemoto::detener_cliente() { parar(); }
void AgenteRemoto::detener_agente() { parar(); }
HiloResponderConsulta::~HiloResponderConsulta() { parar(); }
void ThreadEntradaAgentes::detener_entrada() { parar(); entradaAgentes->desconectar(); }