// // Created by Antoine Bartuccio on 18/06/2018. // #ifndef LO41_PASSENGER_H #define LO41_PASSENGER_H #include "../Resident/Resident.h" #include "../Visitor/Visitor.h" typedef enum {RESIDENT, VISITOR} PASSENGER_TYPE; typedef struct o_Passenger { PASSENGER_TYPE type; union { Resident * resident; Visitor * visitor; }; PUBLIC char * (*get_name)(_THIS(Passenger)); PUBLIC int (*get_id)(_THIS(Passenger)); PUBLIC void * (*runnable)(void* void_this); DESTRUCTOR(Passenger); } Passenger; Passenger *_init_Passenger(void *passenger, PASSENGER_TYPE type); #endif //LO41_PASSENGER_H