9 #ifndef hifi_PlatformInstance_h
10 #define hifi_PlatformInstance_h
13 #include <nlohmann/json.hpp>
16 using json = nlohmann::json;
20 const int NOT_FOUND { -1 };
22 bool virtual enumeratePlatform();
24 int getNumCPUs() {
return (
int)_cpus.size(); }
25 json getCPU(
int index);
26 int getMasterCPU()
const {
return _masterCPU; }
28 int getNumGPUs() {
return (
int)_gpus.size(); }
29 json getGPU(
int index);
30 int getMasterGPU()
const {
return _masterGPU; }
32 int getNumDisplays() {
return (
int)_displays.size(); }
33 json getDisplay(
int index);
34 int getMasterDisplay()
const {
return _masterDisplay; }
36 json getMemory() {
return _memory; }
38 json getComputer() {
return _computer; }
42 void virtual enumerateCpus()=0;
43 void virtual enumerateGpusAndDisplays()=0;
44 void virtual enumerateNics();
45 void virtual enumerateMemory() = 0;
46 void virtual enumerateComputer()=0;
47 virtual void enumerateGraphicsApis();
51 static json listAllKeys();
54 static const char* findGPUVendorInDescription(
const std::string& description);
57 std::vector<json> _cpus;
58 std::vector<json> _gpus;
59 std::vector<json> _displays;
60 std::vector<json> _nics;
67 int _masterDisplay{ -1 };
70 void updateMasterIndices();