diff options
author | Lioncash <mathew1800@gmail.com> | 2018-10-10 21:04:19 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-10-10 21:10:36 -0400 |
commit | a7725d354cf118b2299ed197d4b88ff48ebc1341 (patch) | |
tree | 7bf14f649e1dcd130975bde03f37877ece6c45ad /src/web_service/telemetry_json.h | |
parent | c422f146eefc49c23b39753c2bc6f2243bb3b808 (diff) |
telemetry_json: Use the PImpl idiom to avoid unnecessary dependency exposure
Users of the web_service library shouldn't need to care about an
external library like json.h. However, given it's exposed in our
interface, this requires that other libraries publicly link in the JSON
library. We can do better.
By using the PImpl idiom, we can hide this dependency in the cpp file
and remove the need to link that library in altogether.
Diffstat (limited to 'src/web_service/telemetry_json.h')
-rw-r--r-- | src/web_service/telemetry_json.h | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h index 9a2aaa2c8..93371414a 100644 --- a/src/web_service/telemetry_json.h +++ b/src/web_service/telemetry_json.h @@ -4,10 +4,8 @@ #pragma once -#include <array> #include <chrono> #include <string> -#include <json.hpp> #include "common/telemetry.h" namespace WebService { @@ -39,20 +37,8 @@ public: void Complete() override; private: - nlohmann::json& TopSection() { - return sections[static_cast<u8>(Telemetry::FieldType::None)]; - } - - template <class T> - void Serialize(Telemetry::FieldType type, const std::string& name, T value); - - void SerializeSection(Telemetry::FieldType type, const std::string& name); - - nlohmann::json output; - std::array<nlohmann::json, 7> sections; - std::string host; - std::string username; - std::string token; + struct Impl; + std::unique_ptr<Impl> impl; }; } // namespace WebService |