Parking Garage Control System
ESP32 Parking Garage – ESP-IDF/FreeRTOS
Loading...
Searching...
No Matches
TicketService.h
Go to the documentation of this file.
1#pragma once
2
3#include "ITicketService.h"
4#include "freertos/FreeRTOS.h"
5#include "freertos/semphr.h"
6#include <map>
7
15 public:
20 explicit TicketService(uint32_t capacity);
21 ~TicketService() override;
22
23 // Prevent copying
24 TicketService(const TicketService&) = delete;
26
27 [[nodiscard]] uint32_t getNewTicket() override;
28 bool payTicket(uint32_t ticketId) override;
29 bool validateAndUseTicket(uint32_t ticketId) override;
30 [[nodiscard]] bool getTicketInfo(uint32_t ticketId, Ticket& ticket) const override;
31 [[nodiscard]] uint32_t getActiveTicketCount() const override;
32 [[nodiscard]] uint32_t getCapacity() const override;
33 void reset() override;
34 void setCapacity(uint32_t capacity) override;
35
36 private:
37 uint32_t m_capacity;
38 uint32_t m_nextTicketId;
39 std::map<uint32_t, Ticket> m_tickets;
40 mutable SemaphoreHandle_t m_mutex;
41};
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
Coverage