mirror of
https://github.com/xmrig/xmrig.git
synced 2025-12-26 06:00:00 -05:00
Added "GET /2/dmi" API endpoint.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
|
||||
|
||||
#include "hw/dmi/DmiBoard.h"
|
||||
#include "3rdparty/rapidjson/document.h"
|
||||
#include "hw/dmi/DmiTools.h"
|
||||
|
||||
|
||||
@@ -32,3 +33,18 @@ void xmrig::DmiBoard::decode(dmi_header *h)
|
||||
m_vendor = dmi_string(h, 0x04);
|
||||
m_product = dmi_string(h, 0x05);
|
||||
}
|
||||
|
||||
|
||||
#ifdef XMRIG_FEATURE_API
|
||||
rapidjson::Value xmrig::DmiBoard::toJSON(rapidjson::Document &doc) const
|
||||
{
|
||||
using namespace rapidjson;
|
||||
|
||||
auto &allocator = doc.GetAllocator();
|
||||
Value out(kObjectType);
|
||||
out.AddMember("vendor", m_vendor.toJSON(doc), allocator);
|
||||
out.AddMember("product", m_product.toJSON(doc), allocator);
|
||||
|
||||
return out;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -42,6 +42,10 @@ public:
|
||||
|
||||
void decode(dmi_header *h);
|
||||
|
||||
# ifdef XMRIG_FEATURE_API
|
||||
rapidjson::Value toJSON(rapidjson::Document &doc) const;
|
||||
# endif
|
||||
|
||||
private:
|
||||
String m_product;
|
||||
String m_vendor;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
|
||||
#include "hw/dmi/DmiMemory.h"
|
||||
#include "3rdparty/rapidjson/document.h"
|
||||
#include "hw/dmi/DmiTools.h"
|
||||
|
||||
|
||||
@@ -190,3 +191,28 @@ const char *xmrig::DmiMemory::type() const
|
||||
{
|
||||
return dmi_memory_device_type(m_type);
|
||||
}
|
||||
|
||||
|
||||
#ifdef XMRIG_FEATURE_API
|
||||
rapidjson::Value xmrig::DmiMemory::toJSON(rapidjson::Document &doc) const
|
||||
{
|
||||
using namespace rapidjson;
|
||||
|
||||
auto &allocator = doc.GetAllocator();
|
||||
Value out(kObjectType);
|
||||
out.AddMember("slot", m_slot.toJSON(doc), allocator);
|
||||
out.AddMember("type", StringRef(type()), allocator);
|
||||
out.AddMember("form_factor", StringRef(formFactor()), allocator);
|
||||
out.AddMember("size", m_size, allocator);
|
||||
out.AddMember("speed", m_speed, allocator);
|
||||
out.AddMember("rank", m_rank, allocator);
|
||||
out.AddMember("voltage", m_voltage, allocator);
|
||||
out.AddMember("width", m_width, allocator);
|
||||
out.AddMember("total_width", m_totalWidth, allocator);
|
||||
out.AddMember("vendor", m_vendor.toJSON(doc), allocator);
|
||||
out.AddMember("product", m_product.toJSON(doc), allocator);
|
||||
out.AddMember("bank", m_bank.toJSON(doc), allocator);
|
||||
|
||||
return out;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -52,6 +52,10 @@ public:
|
||||
const char *formFactor() const;
|
||||
const char *type() const;
|
||||
|
||||
# ifdef XMRIG_FEATURE_API
|
||||
rapidjson::Value toJSON(rapidjson::Document &doc) const;
|
||||
# endif
|
||||
|
||||
private:
|
||||
String m_bank;
|
||||
String m_product;
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
|
||||
#include "hw/dmi/DmiReader.h"
|
||||
#include "3rdparty/fmt/core.h"
|
||||
#include "3rdparty/rapidjson/document.h"
|
||||
#include "hw/dmi/DmiTools.h"
|
||||
|
||||
|
||||
@@ -38,6 +40,38 @@ static void dmi_get_header(dmi_header *h, uint8_t *data)
|
||||
} // namespace xmrig
|
||||
|
||||
|
||||
#ifdef XMRIG_FEATURE_API
|
||||
rapidjson::Value xmrig::DmiReader::toJSON(rapidjson::Document &doc) const
|
||||
{
|
||||
rapidjson::Value obj;
|
||||
toJSON(obj, doc);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
void xmrig::DmiReader::toJSON(rapidjson::Value &out, rapidjson::Document &doc) const
|
||||
{
|
||||
using namespace rapidjson;
|
||||
|
||||
auto &allocator = doc.GetAllocator();
|
||||
out.SetObject();
|
||||
|
||||
Value memory(kArrayType);
|
||||
memory.Reserve(m_memory.size(), allocator);
|
||||
|
||||
for (const auto &value : m_memory) {
|
||||
memory.PushBack(value.toJSON(doc), allocator);
|
||||
}
|
||||
|
||||
out.AddMember("smbios", Value(fmt::format("{}.{}.{}", m_version >> 16, m_version >> 8 & 0xff, m_version & 0xff).c_str(), allocator), allocator);
|
||||
out.AddMember("system", m_system.toJSON(doc), allocator);
|
||||
out.AddMember("board", m_board.toJSON(doc), allocator);
|
||||
out.AddMember("memory", memory, allocator);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
bool xmrig::DmiReader::decode(uint8_t *buf, const Cleanup &cleanup)
|
||||
{
|
||||
const bool rc = decode(buf);
|
||||
|
||||
@@ -45,6 +45,11 @@ public:
|
||||
|
||||
bool read();
|
||||
|
||||
# ifdef XMRIG_FEATURE_API
|
||||
rapidjson::Value toJSON(rapidjson::Document &doc) const;
|
||||
void toJSON(rapidjson::Value &out, rapidjson::Document &doc) const;
|
||||
# endif
|
||||
|
||||
private:
|
||||
using Cleanup = std::function<void()>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user