From bde77ebab48efee2a5b991a66744faf11e77fbcb Mon Sep 17 00:00:00 2001 From: XMRig Date: Fri, 1 Mar 2019 22:59:34 +0700 Subject: [PATCH] Sync changes. --- src/base/io/Json.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++ src/base/io/Json.h | 6 +++++- src/base/net/Pool.cpp | 4 ++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/base/io/Json.cpp b/src/base/io/Json.cpp index ee5211d8..b95994e4 100644 --- a/src/base/io/Json.cpp +++ b/src/base/io/Json.cpp @@ -47,3 +47,47 @@ const char *xmrig::Json::getString(const rapidjson::Value &obj, const char *key, return defaultValue; } + + +int xmrig::Json::getInt(const rapidjson::Value &obj, const char *key, int defaultValue) +{ + auto i = obj.FindMember(key); + if (i != obj.MemberEnd() && i->value.IsInt()) { + return i->value.GetInt(); + } + + return defaultValue; +} + + +int64_t xmrig::Json::getInt64(const rapidjson::Value &obj, const char *key, int64_t defaultValue) +{ + auto i = obj.FindMember(key); + if (i != obj.MemberEnd() && i->value.IsInt64()) { + return i->value.GetInt64(); + } + + return defaultValue; +} + + +uint64_t xmrig::Json::getUint64(const rapidjson::Value &obj, const char *key, uint64_t defaultValue) +{ + auto i = obj.FindMember(key); + if (i != obj.MemberEnd() && i->value.IsUint64()) { + return i->value.GetUint64(); + } + + return defaultValue; +} + + +unsigned xmrig::Json::getUint(const rapidjson::Value &obj, const char *key, unsigned defaultValue) +{ + auto i = obj.FindMember(key); + if (i != obj.MemberEnd() && i->value.IsUint()) { + return i->value.GetUint(); + } + + return defaultValue; +} diff --git a/src/base/io/Json.h b/src/base/io/Json.h index c6cde0d8..28dcf9a3 100644 --- a/src/base/io/Json.h +++ b/src/base/io/Json.h @@ -36,7 +36,11 @@ class Json { public: static bool getBool(const rapidjson::Value &obj, const char *key, bool defaultValue = false); - static const char *getString(const rapidjson::Value &obj, const char *key, const char *defaultValue = nullptr); + static const char *getString(const rapidjson::Value &obj, const char *key, const char *defaultValue = nullptr); + static int getInt(const rapidjson::Value &obj, const char *key, int defaultValue = 0); + static int64_t getInt64(const rapidjson::Value &obj, const char *key, int64_t defaultValue = 0); + static uint64_t getUint64(const rapidjson::Value &obj, const char *key, uint64_t defaultValue = 0); + static unsigned getUint(const rapidjson::Value &obj, const char *key, unsigned defaultValue = 0); static bool get(const char *fileName, rapidjson::Document &doc); static bool save(const char *fileName, const rapidjson::Document &doc); diff --git a/src/base/net/Pool.cpp b/src/base/net/Pool.cpp index f66a8c9b..dcea9b57 100644 --- a/src/base/net/Pool.cpp +++ b/src/base/net/Pool.cpp @@ -45,6 +45,8 @@ #endif +namespace xmrig { + static const char *kEnabled = "enabled"; static const char *kFingerprint = "tls-fingerprint"; static const char *kKeepalive = "keepalive"; @@ -56,6 +58,8 @@ static const char *kUrl = "url"; static const char *kUser = "user"; static const char *kVariant = "variant"; +} + xmrig::Pool::Pool() : m_enabled(true),