#include #include #include #include "Objects.h" #include "List/List.h" #include "Building/Building.h" #include "SharedData/SharedData.h" #include "Visitor/Visitor.h" #include "Resident/Resident.h" pthread_cond_t cond; void * test_sub(void *bite){ usleep(2000000); printf("Je relache le programme\n"); pthread_cond_signal(&cond); return bite; } void clean_exit(int error_code){ printf("Signal %d received, exiting app\n", error_code); DELETE(GET_INSTANCE(SharedData)); exit(0); } int main() { List *l = NEW(List); Visitor * roger = NEW(Visitor, 8, "Roger", "Sli"); Resident * sli = NEW(Resident, 1, "Sli", 2, 2); char text1[30] = "Patate"; char text2[30] = "Patator"; pthread_mutex_t mutex; pthread_t thread; GET_INSTANCE(SharedData); signal(SIGINT, clean_exit); pthread_mutex_init(&mutex, NULL); pthread_cond_init(&cond, NULL); printf("La taille est de %d\n", l->get_size(l)); pthread_create(&thread, 0, test_sub, NULL); printf("FREEEZZZE\n"); pthread_cond_wait(&cond, &mutex); pthread_cond_destroy(&cond); l->insert_tail(l, text1, sizeof(char) * 30); l->insert_head(l, text2, sizeof(char) * 30); l->insert_head(l, "Bite", sizeof(char) * 30); printf("La taille est de %d\n", l->get_size(l)); printf("%s\n", (char *) l->get_head_data(l)); printf("%s\n", (char *) l->get_tail_data(l)); printf("%s\n", (char *) l->get_element_data(l, 0)); printf("%s\n", (char *) l->get_element_data(l, 1)); l->insert_inside(l, "Rigolo", sizeof(char) * 30, 2); printf("%s\n", (char *) l->get_element_data(l, 1)); printf("%s\n", (char *) l->get_element_data(l, 3)); l->remove_tail(l); printf("La taille est de %d\n", l->get_size(l)); DELETE(l); Building *main_building = NEW(Building, "../residents.txt", "../visitors.txt"); printf("Il y a %d étages dans l'immeuble\n", main_building->floors); printf("%s est le second visiteur, il veut aller voir %s\n", ((Visitor *) main_building->visitors->get_element_data(main_building->visitors, 1))->name, ((Visitor *) main_building->visitors->get_element_data(main_building->visitors, 1))->contact_name); printf("%s est le second resident, il veut aller à l'étage %d\n", ((Resident *) main_building->residents->get_element_data(main_building->residents, 1))->name, ((Resident *) main_building->residents->get_element_data(main_building->residents, 1))->destination); for (int i=0; i < ELEVATOR_NB; i++) printf("Ascenseur %s\n", main_building->elevators[i]->name); DELETE(main_building); printf("Hello, World!\n"); printf("%s veut rentrer et aller voir %s\n", roger->get_name(roger), roger->contact_name); printf("%s habite dans l'appartement %d\n", sli->get_name(sli), sli->get_apartment_floor(sli)); DELETE(GET_INSTANCE(SharedData)); DELETE(roger); DELETE(sli); return 0; }