mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
55
include/utils/SysInfo.h
Normal file
55
include/utils/SysInfo.h
Normal file
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QByteArray>
|
||||
|
||||
class SysInfo : public QObject
|
||||
{
|
||||
// Q_OBJECT
|
||||
|
||||
public:
|
||||
struct HyperionSysInfo
|
||||
{
|
||||
QString kernelType;
|
||||
QString kernelVersion;
|
||||
QString architecture;
|
||||
QString wordSize;
|
||||
QString productType; // $ID $DISTRIB_ID // single line file containing: // Debian
|
||||
QString productVersion; // $VERSION_ID $DISTRIB_RELEASE // <Vendor_ID release Version_ID> // single line file <Release_ID/sid>
|
||||
QString prettyName; // $PRETTY_NAME $DISTRIB_DESCRIPTION
|
||||
};
|
||||
|
||||
static HyperionSysInfo get();
|
||||
|
||||
private:
|
||||
SysInfo();
|
||||
~SysInfo();
|
||||
static SysInfo* _instance;
|
||||
|
||||
HyperionSysInfo _sysinfo;
|
||||
|
||||
struct QUnixOSVersion
|
||||
{
|
||||
// from /etc/os-release older /etc/lsb-release // redhat /etc/redhat-release // debian /etc/debian_version
|
||||
QString productType; // $ID $DISTRIB_ID // single line file containing: // Debian
|
||||
QString productVersion; // $VERSION_ID $DISTRIB_RELEASE // <Vendor_ID release Version_ID> // single line file <Release_ID/sid>
|
||||
QString prettyName; // $PRETTY_NAME $DISTRIB_DESCRIPTION
|
||||
};
|
||||
|
||||
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);
|
||||
};
|
Reference in New Issue
Block a user