Example #1
0
void Servidor::insertarRegistro() {
	Protocolo protocolo;
	string resp;
	/* Insertar en la base de datos */
	Registro reg;
	reg.crearDesdeMensaje(peticionRecibida);
	int result = this->bd.insertar(reg);
	if (result == SUCCESS){
		resp = "El registro ha sido insertado con éxito con la siguiente información.";
		resp += "\nNombre: " + reg.getNombre();
		resp += "\nDirección: " + reg.getDireccion();
		resp += "\nTeléfono: " + reg.getTelefono();
		resp += "\n";
	} else if (result == ERR_DUPLICADO){
		resp = "El registro no se ha insertado con éxito pues está duplicado";
	} else if (result == ERR_CAMPO_REQUERIDO){
		resp = "El registro no se ha insertado con éxito pues faltan datos requeridos.";
	}

	/* Generar respuesta */
	mensaje respuesta;
	respuesta.ttl = 1;
	respuesta.mtype = RESPUESTA;
	respuesta.pid = getpid();
	strcpy(respuesta.textoRespuesta, resp.c_str());
	this->respuestas.push_back(respuesta);
}
Example #2
0
void Servidor::modificarRegistro() {
	Protocolo protocolo;
	string resp;

	/* Insertar en la base de datos */
	Registro existReg(peticionRecibida.nombreCons, (char*) "", (char*) "");
	Registro nuevoReg;
	nuevoReg.crearDesdeMensaje(peticionRecibida);
	int result = this->bd.modificar(existReg, nuevoReg);

	/* Generar mensaje de respuesta */
	if (result == SUCCESS){
		resp = "El registro ha sido modificado con éxito con la siguiente información nueva.";
		resp += (!nuevoReg.getNombre().empty()) ? "\nNombre: de " + existReg.getNombre() + " a " + nuevoReg.getNombre() : "";
		resp += (!nuevoReg.getDireccion().empty()) ? "\nDirección: de " + existReg.getDireccion() + " a " +  nuevoReg.getDireccion() : "";
		resp += (!nuevoReg.getTelefono().empty()) ? "\nTeléfono: de " + existReg.getTelefono()  + " a " +  nuevoReg.getTelefono() : "";
		resp += "\n";
	} else if (result == ERR_NO_EXISTE){
		resp = "El registro a modificar no existe. ";
	} else if (result == ERR_DUPLICADO){
		resp = "El registro no se ha modificado con éxito pues está en conflicto con otro existente.";
	}

	/* Generar respuesta */
	mensaje respuesta;
	respuesta.ttl = 1;
	respuesta.mtype = RESPUESTA;
	respuesta.pid = getpid();
	strcpy(respuesta.textoRespuesta, resp.c_str());
	this->respuestas.push_back(respuesta);
}
Example #3
0
int DataHandler::guardarDatos(){
	// Persistir datos de la lista en el archivo
	cout << endl << "*Persisto los datos en archivo.."<<endl;
	ofstream outputStream("ServerDatabase.txt", ios::out|ios::binary);

	Registro* registro;
	for(int i = 0; i< this->getCantidad(); i++){

        registro = listaRegistros[i];
        char* linea = registro->getNombre();
        strcat(linea, ",");
        strcat(linea, registro->getDireccion());
        strcat(linea, ",");
        strcat(linea, registro->getTelefono());
        strcat(linea, "\n");
        outputStream.write(linea, strlen(linea));
        cout << "Escribo linea: " << linea;
	}
    outputStream.close();
    cout << "**Fin persistencia**"<< endl;
}
Example #4
0
bool BaseDeDatos::datosRequeridos(const Registro& r){
	return r.getNombre().empty();
}