// // Created by Antoine Bartuccio on 06/06/2018. // #include "Visitor.h" #include "../SharedData/SharedData.h" #include GETTER(Visitor, char*, name); GETTER(Visitor, int, id); void * runnable_Visitor(void * void_this){ Visitor *this = (Visitor*) void_this; SharedData * data = GET_INSTANCE(SharedData); Passenger passenger; ElevatorPassenger elevator_passenger; AGENT_OPTIONS passenger.visitor = this; elevator_passenger.passenger = passenger; elevator_passenger.type = VISITOR; printf("Bonjour, je suis %s et je souhaite rendre visite a %s\n", this->name, this->contact_name); printf("Bip, %s appel a l'interphone\n%s habite a l'etage %d\n", this->name, this->contact_name, (this->destination = data->use_call_box(data, this->contact_name))); data->main_building->go_to_floor(data->main_building, this->position, this->destination, elevator_passenger); return NULL; } void _free__Visitor(THIS(Visitor)){ if (this->name != NULL) free(this->name); if (this->contact_name != NULL) free(this->contact_name); free(this); } Visitor *_init_Visitor(int id, char* name, char * contact_name){ Visitor * new_visitor = malloc_or_die(sizeof(Visitor)); new_visitor->name = strdup(name); new_visitor->id = id; new_visitor->position = 0; new_visitor->destination = -1; if (contact_name != NULL) new_visitor->contact_name = strdup(contact_name); else new_visitor->contact_name = NULL; LINK_ALL(Visitor, new_visitor, get_name, get_id, runnable ); return new_visitor; }