#include #include #include "tool_runner.h" #include "mape_k.h" #include "arc_model.h" #include "arc_system.h" #include "arc_parse.h" #include "file_utils.h" void cleanup_sys(struct arc_system *sys) { if(!sys) { return; } for(size_t i=0;inum_components;i++) { if(sys->components[i]) { for(size_t j=0;jcomponents[i]->num_interfaces;j++) { if(sys->components[i]->interfaces[j]) { for(size_t k=0;kcomponents[i]->interfaces[j]->num_properties;k++) { if(sys->components[i]->interfaces[j]->properties[k]) { destroy_property(sys->components[i]->interfaces[j]->properties[k]); free(sys->components[i]->interfaces[j]->properties[k]); } } destroy_interface(sys->components[i]->interfaces[j]); free(sys->components[i]->interfaces[j]); } } for(size_t j=0;jcomponents[i]->num_properties;j++) { if(sys->components[i]->properties[j]) { destroy_property(sys->components[i]->properties[j]); free(sys->components[i]->properties[j]); } } destroy_component(sys->components[i]); free(sys->components[i]); } } for(size_t i=0;inum_invocations;i++) { if(sys->invocations[i]) { free(sys->invocations[i]); } } for(size_t i=0;inum_properties;i++) { if(sys->properties[i]) { destroy_property(sys->properties[i]); free(sys->properties[i]); } } destroy_system(sys); free(sys); } void load_arc_model(char *arc_file, struct arc_model *a_m) { char *text = read_file(arc_file); struct arc_system *system=arc_parse(text); free(text); if(!system) { fprintf(stderr,"Could not parse architecture file, exiting\n"); exit(-1); } init_model(a_m, system); }