mirror of
				https://gitlab.com/klmp200/LO41.git
				synced 2025-10-30 00:33:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| //
 | |
| // Created by Antoine Bartuccio on 06/06/2018.
 | |
| //
 | |
| 
 | |
| #include <string.h>
 | |
| #include <pthread.h>
 | |
| #include "Resident.h"
 | |
| 
 | |
| GETTER(Resident, char *, name);
 | |
| GETTER(Resident, int, id);
 | |
| GETTER(Resident, int, apartment_floor);
 | |
| 
 | |
| void * runnable_Resident(void * void_this){
 | |
| 	Resident * this = (Resident*) void_this;
 | |
| 
 | |
| 	AGENT_OPTIONS
 | |
| 
 | |
| 	printf("Je suis le resident %s et je suis a l'etage %d en direction de l'etage %d\n",
 | |
| 		this->name, this->apartment_floor, this->destination);
 | |
| 	return NULL;
 | |
| }
 | |
| 
 | |
| void _free__Resident(THIS(Resident)){
 | |
| 	if (this->name != NULL)
 | |
| 		free(this->name);
 | |
| 	free(this);
 | |
| }
 | |
| 
 | |
| Resident *_init_Resident(int id, char* name, int apartment_floor, int destination){
 | |
| 	/* If the destination is the same as the apartment_floor or negative, the RESIDENT will not move */
 | |
| 	Resident * new_resident = malloc_or_die(sizeof(Resident));
 | |
| 	new_resident->name = strdup(name);
 | |
| 	new_resident->id = id;
 | |
| 	new_resident->apartment_floor = apartment_floor;
 | |
| 	new_resident->position = new_resident->apartment_floor;
 | |
| 	new_resident->destination = destination;
 | |
| 
 | |
| 	LINK_ALL(Resident, new_resident,
 | |
| 			 get_name,
 | |
| 			 get_id,
 | |
| 			 runnable,
 | |
| 			 get_apartment_floor
 | |
| 	)
 | |
| 
 | |
| 	return new_resident;
 | |
| }
 |