1
0
mirror of https://gitlab.com/klmp200/LO41.git synced 2024-11-26 11:04:18 +00:00
LO41/Elevator/Elevator.h

32 lines
689 B
C
Raw Normal View History

//
// Created by Antoine Bartuccio on 05/06/2018.
//
#ifndef LO41_ELEVATOR_H
#define LO41_ELEVATOR_H
#include <pthread.h>
#include "../Objects.h"
#include "../List/List.h"
#define MAX_ELEVATOR_CAPACITY 10
typedef enum {running, waiting, sleeping} ELEVATOR_STATE;
typedef struct o_Elevator {
PRIVATE ELEVATOR_STATE state;
PRIVATE List * passenger_ids;
PRIVATE char * name;
PRIVATE pthread_mutex_t passenger_mutex;
SYNCHRONIZE PUBLIC int (*get_number_of_passengers)(_THIS(Elevator));
2018-06-07 20:05:39 +00:00
SYNCHRONIZE PUBLIC int (*can_get_more_passengers)(_THIS(Elevator));
2018-06-06 01:00:35 +00:00
DESTRUCTOR(Elevator);
} Elevator;
FRIENDLY(state, Building)
Elevator *_init_Elevator(char* name);
2018-06-06 01:00:35 +00:00
#endif //LO41_ELEVATOR_H