4#include "freertos/FreeRTOS.h"
5#include "freertos/semphr.h"
28 bool payTicket(uint32_t ticketId)
override;
32 [[nodiscard]] uint32_t
getCapacity()
const override;
33 void reset()
override;
38 uint32_t m_nextTicketId;
39 std::map<uint32_t, Ticket> m_tickets;
40 mutable SemaphoreHandle_t m_mutex;
Interface for ticket service.
Definition ITicketService.h:13
Thread-safe ticket service implementation.
Definition TicketService.h:14
~TicketService() override
Definition TicketService.cpp:18
bool validateAndUseTicket(uint32_t ticketId) override
Validate ticket is paid and mark as used (for exit)
Definition TicketService.cpp:81
TicketService & operator=(const TicketService &)=delete
bool getTicketInfo(uint32_t ticketId, Ticket &ticket) const override
Get ticket information.
Definition TicketService.cpp:114
TicketService(const TicketService &)=delete
void reset() override
Reset ticket service to initial state Clears all tickets and resets ID counter to 1.
Definition TicketService.cpp:147
void setCapacity(uint32_t capacity) override
Set parking capacity.
Definition TicketService.cpp:156
uint32_t getActiveTicketCount() const override
Get number of active (not used) tickets.
Definition TicketService.cpp:128
uint32_t getCapacity() const override
Get maximum parking capacity.
Definition TicketService.cpp:143
uint32_t getNewTicket() override
Create new ticket.
Definition TicketService.cpp:24
bool payTicket(uint32_t ticketId) override
Mark ticket as paid.
Definition TicketService.cpp:54
Parking ticket structure.
Definition Ticket.h:8