Пример #1
0
t_param_plat leer_archivo_plataforma_config() {
	t_config* config;
	t_param_plat param;

	log_in_disk_plat(LOG_LEVEL_TRACE,
			"comienzo lectura archivo de configuracion plataforma en el %s ",
			PATH_CONFIG_PLATAFORMA);

	config = config_create(PATH_CONFIG_PLATAFORMA);

	param.PUERTO = config_get_int_value(config, "PUERTO");

	param.SEGUNDOS_ESPERA = config_get_double_value(config, "SEGUNDOS_ESPERA");

	param.CUANTUM = config_get_int_value(config, "CUANTUM");

	log_in_disk_plat(LOG_LEVEL_TRACE,
			"Parametros planificador puerto %d segundos de planificacions %.2f cuantum %d ",
			param.PUERTO, param.SEGUNDOS_ESPERA, param.CUANTUM);

	//param.planificador_nivel = config_get_array_value(config, "planDeNiveles");

	//solo entro en el loop si el mivel de log es LOG_LEVEL_TRACE
//	if (LOG_LEVEL_TRACE == 0) {
//		int i = 0;
//		while (param.planificador_nivel[i] != '\0') {
//			log_in_disk_plat(LOG_LEVEL_TRACE, "Niveles de planificador %s ",
//					param.planificador_nivel[i]);
//			i++;
//		}
//	}

	return param;

}
void test_read_config() {
	t_config* config = config_create(PATH_CONFIG);

	CU_ASSERT_EQUAL(config_keys_amount(config), KEYS_AMOUNT);

	CU_ASSERT_TRUE(config_has_property(config, "IP"));
	CU_ASSERT_STRING_EQUAL(config_get_string_value(config, "IP"), "127.0.0.1");

	CU_ASSERT_TRUE(config_has_property(config, "PORT"));
	CU_ASSERT_EQUAL(config_get_int_value(config, "PORT"), 8080);

	CU_ASSERT_TRUE(config_has_property(config, "LOAD"));
	CU_ASSERT_EQUAL(config_get_double_value(config, "LOAD"), 0.5);

	config_destroy(config);
}
tipoConfigMemoria* cargarArchivoDeConfiguracionDeMemoria(
		char* rutaDelArchivoDeConfiguracion) {

	t_config* archivoCfg = config_create(rutaDelArchivoDeConfiguracion);
	tipoConfigMemoria* cfg = crearConfigMemoria();

	validarErrorYAbortar(
			config_has_property(archivoCfg, PUERTO_ESCUCHA)
					&& config_has_property(archivoCfg, IP_SWAP)
					&& config_has_property(archivoCfg, PUERTO_SWAP)
					&& config_has_property(archivoCfg,
					MAXIMO_MARCOS_POR_PROCESO)
					&& config_has_property(archivoCfg, CANTIDAD_MARCOS)
					&& config_has_property(archivoCfg, TAMANIO_MARCO)
					&& config_has_property(archivoCfg, ENTRADAS_TLB)
					&& config_has_property(archivoCfg, TLB_HABILITADA)
					&& config_has_property(archivoCfg, RETARDO_MEMORIA)
					&& config_has_property(archivoCfg, ALGORITMO_RAM),
			"Las claves del archivo de configuracion no coinciden con las que requiere el Administrador de Memoria.");

	cfg->puertoDeEscucha = config_get_int_value(archivoCfg, PUERTO_ESCUCHA);
	cfg->ipSWAP = string_duplicate(
			config_get_string_value(archivoCfg, IP_SWAP));
	cfg->puertoSWAP = config_get_int_value(archivoCfg, PUERTO_SWAP);
	cfg->maximoDeMarcosPorProceso = config_get_int_value(archivoCfg,
	MAXIMO_MARCOS_POR_PROCESO);
	cfg->cantidadDeMarcos = config_get_int_value(archivoCfg, CANTIDAD_MARCOS);
	cfg->tamanioDeMarco = config_get_int_value(archivoCfg, TAMANIO_MARCO);
	cfg->entradasDeTLB = config_get_int_value(archivoCfg, ENTRADAS_TLB);
	cfg->TLBHabilitada = string_duplicate(
			config_get_string_value(archivoCfg, TLB_HABILITADA));
	cfg->retardoDeMemoria = config_get_double_value(archivoCfg, RETARDO_MEMORIA);
	cfg->algoritmoRAM = string_duplicate(
			config_get_string_value(archivoCfg, ALGORITMO_RAM));


	config_destroy(archivoCfg);

	return cfg;
}