hyperion.ng
SysInfo.h
1 #pragma once
2 
3 #include <QObject>
4 #include <QString>
5 #include <QByteArray>
6 
7 class SysInfo : public QObject
8 {
9 
10 public:
12  {
13  QString kernelType;
14  QString kernelVersion;
15  QString architecture;
16  QString wordSize;
17  QString productType;
18  QString productVersion;
19  QString prettyName;
20  QString hostName;
21  QString domainName;
22  };
23 
24  ~SysInfo();
25  static HyperionSysInfo get();
26 
27 private:
28  SysInfo();
29 
30  static SysInfo* _instance;
31 
32  HyperionSysInfo _sysinfo;
33 
34  struct QUnixOSVersion
35  {
36  QString productType;
37  QString productVersion;
38  QString prettyName;
39  };
40 
41  QString machineHostName();
42  QString currentCpuArchitecture();
43  QString kernelType();
44  QString kernelVersion();
45  bool findUnixOsVersion(QUnixOSVersion &v);
46 
47  QByteArray getEtcFileFirstLine(const char *fileName);
48  bool readEtcRedHatRelease(QUnixOSVersion &v);
49  bool readEtcDebianVersion(QUnixOSVersion &v);
50 
51  bool readEtcOsRelease(SysInfo::QUnixOSVersion &v);
52  bool readEtcFile(SysInfo::QUnixOSVersion &v, const char *filename, const QByteArray &idKey, const QByteArray &versionKey, const QByteArray &prettyNameKey);
53  QByteArray getEtcFileContent(const char *filename);
54  QString unquote(const char *begin, const char *end);
55  bool readEtcLsbRelease(SysInfo::QUnixOSVersion &v);
56 };
Definition: SysInfo.h:7
Definition: SysInfo.h:11