From 5cbb39a48ecf8655e7ad250d51fb62d968d31940 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 16:25:02 -0700 Subject: [PATCH] adding computer changes to the platofrm --- libraries/platform/src/AndroidPlatform.cpp | 5 ++++ libraries/platform/src/AndroidPlatform.h | 1 + libraries/platform/src/LinuxPlatform.cpp | 5 ++++ libraries/platform/src/LinuxPlatform.h | 1 + libraries/platform/src/MACOSPlatform.cpp | 31 ++++++++++++++------- libraries/platform/src/MACOSPlatform.h | 3 +- libraries/platform/src/WINPlatform.cpp | 5 ++++ libraries/platform/src/WINPlatform.h | 2 +- libraries/platform/src/platform.cpp | 8 ++++-- libraries/platform/src/platform.h | 3 +- libraries/platform/src/platformInstance.cpp | 17 +++++++++-- libraries/platform/src/platformInstance.h | 6 ++-- libraries/platform/src/platformJsonKeys.h | 4 ++- 13 files changed, 70 insertions(+), 21 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index 4351b14688..57b0cf04bc 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -38,3 +38,8 @@ void AndroidInstance::enumerateMemory() { ram["totalMemory"]=""; _memory.push_back(ram); } + +void AndroidInstance::::enumerateComputer(){ + //no implememntation at this time +} + diff --git a/libraries/platform/src/AndroidPlatform.h b/libraries/platform/src/AndroidPlatform.h index 17efbb45e3..66d80ca1ef 100644 --- a/libraries/platform/src/AndroidPlatform.h +++ b/libraries/platform/src/AndroidPlatform.h @@ -18,6 +18,7 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; + void enumerateComputer () override; }; } // namespace platform diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index 01d89a4462..df425f417e 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -40,3 +40,8 @@ void LinuxInstance::enumerateMemory() { _memory.push_back(ram); } + +void LinuxInstance::::enumerateComputer(){ + //no implememntation at this time +} + diff --git a/libraries/platform/src/LinuxPlatform.h b/libraries/platform/src/LinuxPlatform.h index 1af4ce7444..63db8557f0 100644 --- a/libraries/platform/src/LinuxPlatform.h +++ b/libraries/platform/src/LinuxPlatform.h @@ -18,6 +18,7 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; + void enumerateComputer () override; }; } // namespace platform diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index 151df96719..019594aedd 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -64,16 +64,6 @@ void MACOSInstance::enumerateCpu() { cpu["cpuNumCores"] = std::thread::hardware_concurrency(); _cpu.push_back(cpu); - - - //get system name - size_t len=0; - sysctlbyname("hw.model",NULL, &len, NULL, 0); - char* model = (char *) malloc(sizeof(char)*len+1); - sysctlbyname("hw.model", model, &len, NULL,0); - - _computerModel=std::string(model); - free(model); } void MACOSInstance::enumerateGpu() { @@ -98,3 +88,24 @@ void MACOSInstance::enumerateMemory() { #endif _memory.push_back(ram); } + +void MACOSInstance::enumerateComputer(){ +#ifdef Q_OS_MAC + + //get system name + size_t len=0; + sysctlbyname("hw.model",NULL, &len, NULL, 0); + char* model = (char *) malloc(sizeof(char)*len+1); + sysctlbyname("hw.model", model, &len, NULL,0); + + + json computer; + computer["computerModel"]=std::string(model); + + _computer.push_back(computer); + + free(model); + +#endif +} + diff --git a/libraries/platform/src/MACOSPlatform.h b/libraries/platform/src/MACOSPlatform.h index 287e0c0ed7..04b8621698 100644 --- a/libraries/platform/src/MACOSPlatform.h +++ b/libraries/platform/src/MACOSPlatform.h @@ -18,8 +18,9 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; + void enumerateComputer () override; }; } // namespace platform -#endif //hifi_winplatform_h +#endif //hifi_macosplatform_h diff --git a/libraries/platform/src/WINPlatform.cpp b/libraries/platform/src/WINPlatform.cpp index b39c83889b..8b37aa4e77 100644 --- a/libraries/platform/src/WINPlatform.cpp +++ b/libraries/platform/src/WINPlatform.cpp @@ -81,3 +81,8 @@ void WINInstance::enumerateMemory() { #endif _memory.push_back(ram); } + +void WINInstance::enumerateComputer(){ + //no implememntation at this time +} + diff --git a/libraries/platform/src/WINPlatform.h b/libraries/platform/src/WINPlatform.h index 4d466a9b7e..828d27ffc3 100644 --- a/libraries/platform/src/WINPlatform.h +++ b/libraries/platform/src/WINPlatform.h @@ -18,7 +18,7 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; - + void enumerateComputer () override; }; } // namespace platform diff --git a/libraries/platform/src/platform.cpp b/libraries/platform/src/platform.cpp index 6f9dc78768..8c305ebed5 100644 --- a/libraries/platform/src/platform.cpp +++ b/libraries/platform/src/platform.cpp @@ -78,6 +78,10 @@ json platform::getMemory(int index) { return _instance->getMemory(index); } -std::string platform::getComputerModel(){ - return _instance->getComputerModel(); +int platform::getNumComputer(){ + return _instance->getNumComputer(); +} + +json platform::getComputer(int index){ + return _instance->getComputer(index); } diff --git a/libraries/platform/src/platform.h b/libraries/platform/src/platform.h index 250b9144ac..9dd3d4ab2f 100644 --- a/libraries/platform/src/platform.h +++ b/libraries/platform/src/platform.h @@ -32,7 +32,8 @@ json getDisplay(int index); int getNumMemory(); json getMemory(int index); -std::string getComputerModel(); +int getNumComputer(); +json getComputer(int index); } // namespace platform #endif // hifi_platform_h diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index f1cef32096..8b2543eaeb 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -8,13 +8,13 @@ #include "platform.h" - -#include #include "platformInstance.h" +#include using namespace platform; bool Instance::enumeratePlatform() { + enumerateComputer(); enumerateCpu(); enumerateGpu(); enumerateMemory(); @@ -47,6 +47,14 @@ json Instance::getGPU(int index) { return _gpu.at(index); } +json Instance::getComputer(<#int index#>){ + if(index >=(int) _computer.size()){ + return json(); + } + + return _computer.at(index); + +} json Instance::getDisplay(int index) { assert(index <(int) _display.size()); @@ -65,7 +73,6 @@ Instance::~Instance() { _memory.clear(); } - if (_gpu.size() > 0) { _gpu.clear(); } @@ -73,4 +80,8 @@ Instance::~Instance() { if (_display.size() > 0) { _display.clear(); } + + if(_computer.size()>0){ + _computer.clear(); + } } diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index 59aede1fb3..f5947e7392 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -31,11 +31,13 @@ public: int getNumDisplay() { return (int)_display.size(); } json getDisplay(int index); - std::string getComputerModel(){return _computerModel;} + int getNumComputer() {return (int)_computer.size();} + json getComputer(int index); void virtual enumerateCpu()=0; void virtual enumerateMemory()=0; void virtual enumerateGpu()=0; + void virtual enumerateComputer()=0; virtual ~Instance(); @@ -44,7 +46,7 @@ protected: std::vector _memory; std::vector _gpu; std::vector _display; - std::string _computerModel; + std::vector _computer; }; } // namespace platform diff --git a/libraries/platform/src/platformJsonKeys.h b/libraries/platform/src/platformJsonKeys.h index 629aa30e34..31d81a829c 100644 --- a/libraries/platform/src/platformJsonKeys.h +++ b/libraries/platform/src/platformJsonKeys.h @@ -26,10 +26,12 @@ namespace platform { static const char* displayCoordsRight { "coordinatesright"}; static const char* displayCoordsTop { "coordinatestop"}; static const char* displayCoordsBottom { "coordinatesbottom"}; + static const char* computerModel { "computerModel"}; + #endif } -} // namespace platform +} // namespace plaform::jsonKeys #endif