#ifndef FACILITIES_DENM_H #define FACILITIES_DENM_H #include #include #include #include enum EVENT_STATE { EVENT_ACTIVE, EVENT_CANCELLED, EVENT_NEGATED }; typedef struct event { DENM_t *denm; uint32_t station_id; uint32_t sn; uint64_t detection_time; uint64_t reference_time; uint64_t expiration_time; uint8_t cause; uint8_t subcause; uint32_t latitude; uint32_t longitude; bool enabled; enum EVENT_STATE state; } event_t; typedef struct den { event_t ** events; uint32_t sn; uint16_t no_active_events; uint16_t no_max_events; pthread_mutex_t lock; } den_t; enum EVENT_CHECK_RESULT { EVENT_NEW, EVENT_INVALID, EVENT_PASSED, EVENT_CANCELLATION, EVENT_NEGATION, EVENT_UPDATE, EVENT_REPEATED, EVENT_NUMBER_EXCEEDED }; enum EVENT_CHECK_RESULT check_event(den_t *den, DENM_t *denm); void* den_service(void *fc); #endif