Exemple #1
0
/*
 * Get current configuration parameters.
 */
static void fetch_config_values (void)
{
  db_host = config_get_value("db_host");
  db_name = config_get_value("db_name");
  db_user = config_get_value("db_user");
  db_passwd = config_get_value("db_passwd");
  ticker_home = config_get_value("ticker_home");
  pid_file = config_get_value("pid_file");
  ticker_state = config_get_value("ticker_state");
  debug_logfile = config_get_value("debug_logfile");
  error_logfile = config_get_value("error_logfile");
  msg_logfile = config_get_value("msg_logfile");
  tick_interval = config_get_long_value("tick_interval");
  sleep_time = config_get_long_value("sleep_time");
}
lectura* leerConfiguracion() {

	FILE *fp;

	fp = fopen(PATH, "r");
	lectura* a;
	if (fp) {
		a = malloc(sizeof(lectura));
		unsigned int tam;
		fclose(fp);
		t_config *archivo;
		archivo = config_create(PATH);

		tam = string_length(config_get_string_value(archivo, "PUERTO_FS"));
		a->puertoFs = malloc(tam + 1);
		strcpy(a->puertoFs, config_get_string_value(archivo, "PUERTO_FS"));

		tam = string_length(config_get_string_value(archivo, "IP_FS"));
		a->ipFS = malloc(tam + 1);
		strcpy(a->ipFS, config_get_string_value(archivo, "IP_FS"));

		tam = string_length(config_get_string_value(archivo, "ARCHIVO_BIN"));
		a->nombreBin = malloc(tam + 1);
		strcpy(a->nombreBin, config_get_string_value(archivo, "ARCHIVO_BIN"));

		tam = string_length(config_get_string_value(archivo, "DIR_TEMP"));
		a->dirTemp = malloc(tam + 1);
		strcpy(a->dirTemp, config_get_string_value(archivo, "DIR_TEMP"));

		a->nombreNodo = config_get_int_value(archivo, "NOMBRE_NODO");
		a->tamanioNodo = config_get_long_value(archivo, "TAMANIO_NODO");

		tam = string_length(config_get_string_value(archivo, "PUERTO_NODO"));
		a->puertoEscucha = malloc(tam + 1);
		strcpy(a->puertoEscucha,
				config_get_string_value(archivo, "PUERTO_NODO"));

		config_destroy(archivo);
		return a;
	} else {
		loguearme(PATH_LOG, "Proceso Nodo", 1, LOG_LEVEL_ERROR,
				"El archivo .conf no existe");

	}

	return NULL;
}
////////////////////////////////////////////////////ESPACIO DE FUNCIONES////////////////////////////////////////////////////
int leerArchivoConfiguracion(){
	//VOY A LEER EL ARCHIVO DE CONFIGURACION DE UN NIVEL//

	char *PATH_LOG = config_get_string_value(config, "PATH_LOG");
	graficar = config_get_int_value(config, "graficar");

	nombre= config_get_string_value(config, "Nombre");

	if(graficar){

		logger = log_create(PATH_LOG, "NIVEL", false, LOG_LEVEL_INFO);

		pthread_mutex_lock(&mutex_log);
		log_info(logger, "La config de graficado para el  %s es %d",nombre,graficar);
		pthread_mutex_unlock(&mutex_log);

	}else{


		logger = log_create(PATH_LOG, "NIVEL", true, LOG_LEVEL_INFO);

		pthread_mutex_lock(&mutex_log);
		log_info(logger, "La config de graficado para el  %s es %d",nombre,graficar);
		pthread_mutex_unlock(&mutex_log);
	}
	pthread_mutex_lock(&mutex_log);
	log_info(logger, "Voy a leer mi archivo de configuracion");
	log_info(logger, "Encontramos los atributos de %s",nombre);
	pthread_mutex_unlock(&mutex_log);

	quantum = config_get_int_value(config, "quantum");


	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El quantum para %s es de %d ut",nombre,quantum);
	pthread_mutex_unlock(&mutex_log);

	recovery = config_get_int_value(config, "Recovery");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El recovery para %s es de %d ut",nombre,recovery);
	pthread_mutex_unlock(&mutex_log);


	enemigos = config_get_int_value(config, "Enemigos");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "La cantidad de enemigos de %s es %d",nombre,enemigos);
	pthread_mutex_unlock(&mutex_log);

	tiempoDeadlock = config_get_long_value(config, "TiempoChequeoDeadlock");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El tiempo de espera para ejecucion del hilo de deadlock para %s es de %d ut",nombre,tiempoDeadlock);
	pthread_mutex_unlock(&mutex_log);

	sleepEnemigos = config_get_long_value(config, "Sleep_Enemigos");
	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El tiempo de espera para mover los enemigos para %s es de %d ut",nombre,sleepEnemigos);
	pthread_mutex_unlock(&mutex_log);

	algoritmo=config_get_string_value(config,"algoritmo");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El %s se planificara con algoritmo %s",nombre,algoritmo);
	pthread_mutex_unlock(&mutex_log);

	direccionIPyPuerto = config_get_string_value(config, "Plataforma");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El %s tiene la platforma cuya direccion es %s",nombre,direccionIPyPuerto);
	pthread_mutex_unlock(&mutex_log);



	retardo = config_get_int_value(config, "retardo");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El retardo para el  %s es de %d milisegundos",nombre,retardo);
	pthread_mutex_unlock(&mutex_log);

	distancia = config_get_int_value(config, "distancia");

	pthread_mutex_lock(&mutex_log);
	log_info(logger, "El remaining distance para el %s es de %d",nombre,distancia);
	pthread_mutex_unlock(&mutex_log);

	crearLosEnemigos = config_get_int_value(config, "crearLosEnemigos");
	activarInterbloqueo = config_get_int_value(config, "activarInterbloqueo");


	// LEO LAS CAJAS DEL NIVEL //

	char litCaja[6]="Caja1\0";
	bool ret = config_has_property(config, litCaja);

	while (ret!=true){ //POR SI EMPIEZA EN UNA CAJA DISTINTA DE 1
		litCaja[4]++;
	}

	while (ret == true){
		char **caja = config_get_array_value(config, litCaja);
		crearCaja(caja);
		litCaja[4]++;

		pthread_mutex_lock(&mutex_log);
		log_info(logger, "El %s tiene %s cuyo simbolo es %s tiene %s instancias y su posicion x e y son %s %s",nombre,caja[0], caja[1],caja[2],caja[3],caja[4]);
		pthread_mutex_unlock(&mutex_log);

		ret = config_has_property(config, litCaja);
	}


	return EXIT_SUCCESS;
}