bool cargar_config(char *configFile) { config = config_create(configFile); if( !validar_configuracion() ) { return false; } cargar_semaforos(); cargar_variablesCompartidas(); cargar_dispositivos(); return true; }
int loadInfo(stEstado* info, char inotify) { t_config* miConf, *otraConf; if (inotify==0) { miConf = config_create(info->path_conf); /*Estructura de configuracion*/ info->dispositivos = list_create(); inicializar_semaforos(); inicializar_lista_shared_var(); if (miConf == NULL) { log_error("Error iniciando la configuracion...\n"); return EXIT_FAILURE; } if (config_has_property(miConf, "IP")) { info->miIP = config_get_string_value(miConf, "IP"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "IP"); return EXIT_FAILURE; } if (config_has_property(miConf, "PUERTO")) { info->miPuerto = config_get_int_value(miConf, "PUERTO"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "PUERTO"); return EXIT_FAILURE; } if (config_has_property(miConf, "IP_UMC")) { info->ipUmc = config_get_string_value(miConf, "IP_UMC"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "IP_UMC"); return EXIT_FAILURE; } if (config_has_property(miConf, "PUERTO_UMC")) { info->puertoUmc = config_get_int_value(miConf, "PUERTO_UMC"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "PUERTO_UMC"); return EXIT_FAILURE; } if (config_has_property(miConf, "QUANTUM")) { info->quantum = config_get_int_value(miConf, "QUANTUM"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "QUANTUM"); return EXIT_FAILURE; } if (config_has_property(miConf, "QUANTUM_SLEEP")) { info->quantumSleep = config_get_int_value(miConf, "QUANTUM_SLEEP"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "QUANTUM_SLEEP"); return EXIT_FAILURE; } if (!config_has_property(miConf, "SEM_IDS") || !config_has_property(miConf, "SEM_INIT")) { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "SEM_IDS"); return EXIT_FAILURE; } else { cargar_semaforos(config_get_array_value(miConf, "SEM_IDS"), config_get_array_value(miConf, "SEM_INIT")); } if (!config_has_property(miConf, "IO_IDS") || !config_has_property(miConf, "IO_SLEEP")) { log_error("Parametros de dispositivos no cargados en el archivo de configuracion"); return EXIT_FAILURE; } else { cargar_dipositivos(info, config_get_array_value(miConf, "IO_IDS"), config_get_array_value(miConf, "IO_SLEEP")); } if (config_has_property(miConf, "SHARED_VARS")) { cargar_sharedVars(config_get_array_value(miConf, "SHARED_VARS")); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "SHARED_VARS"); return EXIT_FAILURE; } if (config_has_property(miConf, "STACK_SIZE")) { info->stackSize = config_get_int_value(miConf, "STACK_SIZE"); } else { log_error("Parametro no cargado en el archivo de configuracion\n \"%s\" \n", "STACK_SIZE"); return EXIT_FAILURE; } inotify++; return EXIT_SUCCESS; } else { otraConf = config_create(info->path_conf); if (config_has_property(otraConf, "QUANTUM")) { info->quantum = config_get_int_value(otraConf, "QUANTUM"); info->quantumSleep = config_get_int_value(otraConf, "QUANTUM_SLEEP"); } else { return EXIT_FAILURE; } config_destroy(otraConf); log_info("Quantum [%d], Quantum Sleep [%d]", info->quantum, info->quantumSleep); return EXIT_SUCCESS; } }