Parking Garage Control System
ESP32 Parking Garage – ESP-IDF/FreeRTOS
Loading...
Searching...
No Matches
TicketService Class Reference

Thread-safe ticket service implementation. More...

#include <TicketService.h>

Inheritance diagram for TicketService:
Collaboration diagram for TicketService:

Public Member Functions

 TicketService (uint32_t capacity)
 Construct ticket service.
 
 ~TicketService () override
 
 TicketService (const TicketService &)=delete
 
TicketService & operator= (const TicketService &)=delete
 
uint32_t getNewTicket () override
 Create new ticket.
 
bool payTicket (uint32_t ticketId) override
 Mark ticket as paid.
 
bool validateAndUseTicket (uint32_t ticketId) override
 Validate ticket is paid and mark as used (for exit)
 
bool getTicketInfo (uint32_t ticketId, Ticket &ticket) const override
 Get ticket information.
 
uint32_t getActiveTicketCount () const override
 Get number of active (not used) tickets.
 
uint32_t getCapacity () const override
 Get maximum parking capacity.
 
void reset () override
 Reset ticket service to initial state Clears all tickets and resets ID counter to 1.
 
void setCapacity (uint32_t capacity) override
 Set parking capacity.
 
- Public Member Functions inherited from ITicketService
virtual ~ITicketService ()=default
 

Detailed Description

Thread-safe ticket service implementation.

Uses FreeRTOS mutex for thread-safety. Stores tickets in memory (no persistence).

Constructor & Destructor Documentation

◆ TicketService() [1/2]

TicketService::TicketService ( uint32_t  capacity)
explicit

Construct ticket service.

Parameters
capacityMaximum parking capacity

◆ ~TicketService()

TicketService::~TicketService ( )
override

◆ TicketService() [2/2]

TicketService::TicketService ( const TicketService &  )
delete

Member Function Documentation

◆ getActiveTicketCount()

uint32_t TicketService::getActiveTicketCount ( ) const
overridevirtual

Get number of active (not used) tickets.

Returns
Number of cars currently in parking garage

Implements ITicketService.

◆ getCapacity()

uint32_t TicketService::getCapacity ( ) const
overridevirtual

Get maximum parking capacity.

Returns
Maximum number of parking spaces

Implements ITicketService.

◆ getNewTicket()

uint32_t TicketService::getNewTicket ( )
overridevirtual

Create new ticket.

Returns
Ticket ID (0 if failed)

Implements ITicketService.

◆ getTicketInfo()

bool TicketService::getTicketInfo ( uint32_t  ticketId,
Ticket &  ticket 
) const
overridevirtual

Get ticket information.

Parameters
ticketIdTicket ID
ticketOutput ticket structure
Returns
true if ticket exists, false otherwise

Implements ITicketService.

◆ operator=()

TicketService & TicketService::operator= ( const TicketService &  )
delete

◆ payTicket()

bool TicketService::payTicket ( uint32_t  ticketId)
overridevirtual

Mark ticket as paid.

Parameters
ticketIdTicket ID to pay
Returns
true if successful, false if ticket doesn't exist

Implements ITicketService.

◆ reset()

void TicketService::reset ( )
overridevirtual

Reset ticket service to initial state Clears all tickets and resets ID counter to 1.

Implements ITicketService.

◆ setCapacity()

void TicketService::setCapacity ( uint32_t  capacity)
overridevirtual

Set parking capacity.

Parameters
capacityNew maximum parking capacity

Implements ITicketService.

◆ validateAndUseTicket()

bool TicketService::validateAndUseTicket ( uint32_t  ticketId)
overridevirtual

Validate ticket is paid and mark as used (for exit)

Parameters
ticketIdTicket ID to validate
Returns
true if paid and not already used, false otherwise

Implements ITicketService.


The documentation for this class was generated from the following files:
Coverage