File indexing completed on 2024-12-08 10:25:55

0001 /*
0002    SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libruqolacore_export.h"
0010 #include <QDebug>
0011 #include <QJsonObject>
0012 #include <QString>
0013 
0014 class LIBRUQOLACORE_EXPORT ServerInfo
0015 {
0016 public:
0017     ServerInfo();
0018     ~ServerInfo();
0019 
0020     void parseServerInfo(const QJsonObject &obj);
0021     [[nodiscard]] QString arch() const;
0022     void setArch(const QString &arch);
0023 
0024     [[nodiscard]] int numberOfCpu() const;
0025     void setNumberOfCpu(int numberOfCpu);
0026 
0027     [[nodiscard]] QString platform() const;
0028     void setPlatform(const QString &platform);
0029 
0030     [[nodiscard]] QString version() const;
0031     void setVersion(const QString &version);
0032 
0033     [[nodiscard]] QString commitAuthor() const;
0034     void setCommitAuthor(const QString &commitAuthor);
0035 
0036     [[nodiscard]] QString commitBranch() const;
0037     void setCommitBranch(const QString &commitBranch);
0038 
0039     [[nodiscard]] QString commitTag() const;
0040     void setCommitTag(const QString &commitTag);
0041 
0042     [[nodiscard]] QString commitSubject() const;
0043     void setCommitSubject(const QString &commitSubject);
0044 
0045     [[nodiscard]] QString commitHash() const;
0046     void setCommitHash(const QString &commitHash);
0047 
0048     [[nodiscard]] bool operator==(const ServerInfo &other) const;
0049 
0050     [[nodiscard]] QString osRelease() const;
0051     void setOsRelease(const QString &osRelease);
0052 
0053     [[nodiscard]] QString nodeVersion() const;
0054     void setNodeVersion(const QString &nodeVersion);
0055 
0056 private:
0057     QString mArch;
0058     QString mPlatform;
0059     QString mVersion;
0060     QString mCommitAuthor;
0061     QString mCommitBranch;
0062     QString mCommitTag;
0063     QString mCommitSubject;
0064     QString mCommitHash;
0065     QString mOsRelease;
0066     QString mNodeVersion;
0067     // TODO Build Date
0068     int mNumberOfCpu = -1;
0069 };
0070 Q_DECLARE_METATYPE(ServerInfo)
0071 Q_DECLARE_TYPEINFO(ServerInfo, Q_MOVABLE_TYPE);
0072 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const ServerInfo &t);