hyperion.ng/include/utils/SysInfo.h
redPanther bfb9a08c80 migrate std::string to qstring + add sysinfo via json (#412)
* std::string -> qstring part 1

* more string migration

* more string migration ...

* ...

* more qstring mogrations
add sysinfo via json

* remove unneccessary includes

* integrate sysinfo into webui
2017-03-04 22:17:42 +01:00

56 lines
1.2 KiB
C++

#pragma once
#include <QObject>
#include <QString>
#include <QByteArray>
class SysInfo : public QObject
{
public:
struct HyperionSysInfo
{
QString kernelType;
QString kernelVersion;
QString architecture;
QString wordSize;
QString productType;
QString productVersion;
QString prettyName;
QString hostName;
};
~SysInfo();
static HyperionSysInfo get();
private:
SysInfo();
static SysInfo* _instance;
HyperionSysInfo _sysinfo;
struct QUnixOSVersion
{
QString productType;
QString productVersion;
QString prettyName;
};
QString machineHostName();
QString currentCpuArchitecture();
QString kernelType();
QString kernelVersion();
bool findUnixOsVersion(QUnixOSVersion &v);
QByteArray getEtcFileFirstLine(const char *fileName);
bool readEtcRedHatRelease(QUnixOSVersion &v);
bool readEtcDebianVersion(QUnixOSVersion &v);
bool readEtcOsRelease(SysInfo::QUnixOSVersion &v);
bool readEtcFile(SysInfo::QUnixOSVersion &v, const char *filename, const QByteArray &idKey, const QByteArray &versionKey, const QByteArray &prettyNameKey);
QByteArray getEtcFileContent(const char *filename);
QString unquote(const char *begin, const char *end);
bool readEtcLsbRelease(SysInfo::QUnixOSVersion &v);
};