From 6a3d183129bbeba8f783142642727ac214f4b24f Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Mon, 27 Nov 2023 16:14:27 +0100 Subject: [PATCH] Minor: overload constructor --- library/include/mobilisis/ticket.h | 28 ++++++++++++++-------------- library/src/ticket.cpp | 29 +++++++++++++++++++++++++---- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/library/include/mobilisis/ticket.h b/library/include/mobilisis/ticket.h index f0c46ce..1b4d6e2 100644 --- a/library/include/mobilisis/ticket.h +++ b/library/include/mobilisis/ticket.h @@ -21,7 +21,10 @@ public: using Status = std::tuple; explicit Ticket(); - + explicit Ticket(QDateTime const &s, QDateTime const &e, + int durationMinutesNetto, int durationMinutesBrutto, + uint32_t price, Status status); + explicit operator bool() { return std::get(m_status) == VALID; } operator QString(); @@ -35,6 +38,15 @@ public: void setValidUntil(QDateTime const &validUnil); void setPrice(uint32_t price); + bool isValid() { return operator bool(); } + + static constexpr const Status s[STATUS_END] = { + {NOT_INITIALIZED , "NOT_INITIALIZED" , "Ticket not initialized" }, + {VALID , "VALID" , "Ticket is valid" }, + {INVALID_FROM_DATETIME , "INVALID_FROM_DATETIME" , "Ticket has invalid start datetime"}, + {INVALID_UNTIL_DATETIME, "INVALID_UNTIL_DATETIME", "Ticket has invalid end datetime" } + }; + private: Status m_status; @@ -45,20 +57,8 @@ private: int m_durationMinutesBrutto; uint32_t m_price; - - static constexpr const Status s[STATUS_END] = { - {NOT_INITIALIZED , "NOT_INITIALIZED" , "Ticket not initialized" }, - {VALID , "VALID" , "Ticket is valid" }, - {INVALID_FROM_DATETIME , "INVALID_FROM_DATETIME" , "Ticket has invalid start datetime"}, - {INVALID_UNTIL_DATETIME, "INVALID_UNTIL_DATETIME", "Ticket has invalid end datetime" } - }; }; -QDebug operator<<(QDebug debug, Ticket::Status const &status) { - QDebugStateSaver saver(debug); - debug << "Ticket-Status: " << std::get<1>(status) - << "(" << std::get<2>(status) << ")"; - return debug; -} +QDebug operator<<(QDebug debug, Ticket::Status const &status); #endif // TICKET_H_INCLUDED diff --git a/library/src/ticket.cpp b/library/src/ticket.cpp index 27d7170..5e50abb 100644 --- a/library/src/ticket.cpp +++ b/library/src/ticket.cpp @@ -11,7 +11,19 @@ Ticket::Ticket() qDebug() << *this; qDebug() << m_status; } - + +Ticket::Ticket(QDateTime const &s, QDateTime const &e, + int durationMinutesNetto, int durationMinutesBrutto, + uint32_t price, Ticket::Status status) + : m_status(status) + , m_validFrom(s) + , m_validUntil(e) + , m_durationMinutesNetto(durationMinutesNetto) + , m_durationMinutesBrutto(durationMinutesBrutto) + , m_price(price) { +} + + Ticket::Status Ticket::setStatus(Status status) { Status old = m_status; m_status = status; @@ -54,14 +66,23 @@ void Ticket::setPrice(uint32_t price) { Ticket::operator QString() { QStringList status; - status << QString("Status .............. : %1 (%2)") + status << QString("**********************"); + status << QString("Status ............. : %1 (%2)") .arg(std::get<0>(m_status)) .arg(std::get<2>(m_status)); status << QString("Valid from ......... : %1").arg(m_validFrom.toString(Qt::ISODate)); status << QString("Valid until ........ : %1").arg(m_validUntil.toString(Qt::ISODate)); status << QString("Duration (netto) ... : %1").arg(m_durationMinutesNetto); status << QString("Duration (brutto)... : %1").arg(m_durationMinutesBrutto); - status << QString("Price ......... : %1").arg(m_price); + status << QString("Price .............. : %1").arg(m_price); + status << QString("**********************"); - return status.join('\n');; + return status.join('\n'); +} + +QDebug operator<<(QDebug debug, Ticket::Status const &status) { + QDebugStateSaver saver(debug); + debug << "Ticket-Status: " << std::get<1>(status) + << "(" << std::get<2>(status) << ")"; + return debug; }