Пример #1
0
void Servidor::actualizar(void* clienteN) 
{
	int id= (int)clienteN;
	audioEnCola** colaDeSonidos;
	int tiempo = 0;

	while(clientes[id].activo){
			
		try{

			recibirDeCliente(&id);
			if(clientes[id].activo){
				enviarCliente(&id, paqueteVista, dibujablesSerializados);

				//recibe los mensajes que mandan otros clientes sin chocar en los threads
				if(time(NULL) - mensaje.tiempoActivo == 0){
					if(mensaje.emisor != clientes[id].socket)
						enviarPaquete(clientes[id].socket, paqueteMensajeInfo, mensaje.msj);
				}else{
					mensaje.tiempoActivo=0;
				}

		
				for(int i=0; i< maxExplosionesPorTurno; i++){
					if(exp[id][i].radio >= 0){
						if(clientes[id].socket != INVALID_SOCKET){
							enviarExplosion(clientes[id].socket, exp[id][i]);
							exp[id][i].radio = -1;
						}
					}
				}
	
				//envio el tiempo del reloj a los clientes:5
				if(Servidor::tiempo != -1 && Servidor::tiempo <= tiempoTurno){ 
					enviarCliente(&id,paqueteTiempo, StringUtil::int2string(Servidor::tiempo));
				}

				colaDeSonidos = Reproductor::getReproductor()->getColaDeEspera();
				for(int i=0; i< numSonidos; i++){
					if(!colaDeSonidos[id][i].enviado){
						EnviarSonido(id, colaDeSonidos[id][i]);
						colaDeSonidos[id][i].enviado = true;
					}
				}
			}
		}catch(exception &e){

			cout<<"catch en Servidor::actualizar: "<<e.what()<<endl;
		}
	}

}
Пример #2
0
void ui_cliente_datos::on_pushButton_Aceptar_clicked()
{
    if(!verificaRestriccionesCliente())
        return;

    pDocumento.setNombre(ui->comboBox_tipoDoc->currentText());
    pDocumento.setIdDocumento(QString::number(ui->comboBox_tipoDoc->getId(ui->comboBox_tipoDoc->currentText())));

    cliente_act.setNombres(ui->lineEdit_nombres->text());
    cliente_act.setPrimerApellido(ui->lineEdit_primerApellido->text());
    cliente_act.setSegundoApellido(ui->lineEdit_segundoApellido->text());
    cliente_act.setNumeroDocumento(ui->lineEdit_nroDoc->text());
    cliente_act.setDireccion(ui->lineEdit_direccion->text());
    cliente_act.setEmail(ui->lineEdit_correo->text());
    QString sx;sx=sx.setNum(ui->comboBox_sexo->currentIndex());
    cliente_act.setSexo(sx);
    QString year;year=year.setNum(ui->dateEdit->date().year());
    QString month;month=month.setNum(ui->dateEdit->date().month());
    QString day;day=day.setNum(ui->dateEdit->date().day());
    QString fecha;fecha.append(year);fecha.append("-");fecha.append(month);fecha.append("-");fecha.append(day);
    cliente_act.setFechaNacimiento(fecha);
    cliente_act.setTelefono(ui->lineEdit_telefono->text());
    cliente_act.setTelefono2(ui->lineEdit_telefono2->text());
    cliente_act.setNacionalidad(ui->lineEdit_nacionalidad->text());
    cliente_act.setMovil(ui->celular->text());
    cliente_act.setDocumento(pDocumento);
    cliente_act.setRuc(ui->lineEdit_ruc->text());
    cliente_act.setRazonSocial(ui->lineEdit_razonSocial->text());
    cliente_act.setDireccion2(ui->lineEdit_direccionEmpresa->text());

    if(strcmp(this->windowTitle().toStdString().c_str(),"Nuevo Cliente")==0)
        if(cliente_act.agregar())
        {
            emit guarde();
            this->close();
        }
        else
        {
            QMessageBox box;
            box.setIcon(QMessageBox::Critical);
            box.setWindowTitle("Error");
            box.setText("El Cliente no se pudo agregar!");
            box.setStandardButtons(QMessageBox::Ok);
            box.setDefaultButton(QMessageBox::Ok);
            box.exec();
        }
    if(strcmp(this->windowTitle().toStdString().c_str(),"Editar Cliente")==0)
        if(cliente_act.actualizar())
        {
            emit guarde();
            emit enviarCliente(cliente_act);
            this->close();
        }
        else
        {
            QMessageBox box;
            box.setIcon(QMessageBox::Critical);
            box.setWindowTitle("Error");
            box.setText("El Cliente no se pudo actualizar!");
            box.setStandardButtons(QMessageBox::Ok);
            box.setDefaultButton(QMessageBox::Ok);
            box.exec();
        }
}