/** * @RDE_HEADER@ * Template for 'real' structures including insert/update/delete functions for db * $Id$ * $HeadURL$ * $Author$ */ // filename: tab_db_structs.h #pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace TrainingAreaBase { namespace Database { // AesId2TaId struct AesId2TaId { qint32 aesTetraId = 0; qint32 aesDdsId = 0; qint32 exerciseId = 0; bool isAvailableInTetra = false; }; // PrtCnvMember struct PrtCnvMember { qint32 id = 0; qint32 issi = 0; qint32 licensed = 0; qint32 claims = 0; qint32 exerciseId = 0; }; // PrtCnvStatus struct PrtCnvStatus { qint32 id = 0; qint32 resetCounter = 0; qint32 ctasOperatingState = 0; qint32 machineState = 0; }; // PrtCnvToCentral struct PrtCnvToCentral { qint32 id = 0; qint32 telId = 0; qint32 counter = 0; QByteArray data; }; // PrtCnvToRadio struct PrtCnvToRadio { qint32 id = 0; qint32 telId = 0; qint32 counter = 0; qint32 broadcastIndex = 0; qint32 resetCounter = 0; QByteArray data; }; // converting DbStructs to/from JSON template T fromJson(const QJsonValue &value); // AesId2TaId template <> TAB_SERVER_EXPORT AesId2TaId fromJson(const QJsonValue &value); TAB_SERVER_EXPORT QJsonObject toJson(const AesId2TaId &element); // PrtCnvMember template <> TAB_SERVER_EXPORT PrtCnvMember fromJson(const QJsonValue &value); TAB_SERVER_EXPORT QJsonObject toJson(const PrtCnvMember &element); // PrtCnvStatus template <> TAB_SERVER_EXPORT PrtCnvStatus fromJson(const QJsonValue &value); TAB_SERVER_EXPORT QJsonObject toJson(const PrtCnvStatus &element); // PrtCnvToCentral template <> TAB_SERVER_EXPORT PrtCnvToCentral fromJson(const QJsonValue &value); TAB_SERVER_EXPORT QJsonObject toJson(const PrtCnvToCentral &element); // PrtCnvToRadio template <> TAB_SERVER_EXPORT PrtCnvToRadio fromJson(const QJsonValue &value); TAB_SERVER_EXPORT QJsonObject toJson(const PrtCnvToRadio &element); // vector of database struct to/from JSON-array template QJsonArray toJson(const QVector &dataVec) { QJsonArray arr; for (const T &data : dataVec) arr.append(QJsonValue(toJson(data))); return arr; } template std::vector fromJson(const QJsonArray &arr) { std::vector dataVec; dataVec.reserve(arr.size()); for (const QJsonValue &val : arr) dataVec.push_back(fromJson(val)); return dataVec; } };// namespace Database } // namespace TrainingAreaBase