From c60ec37a5b99cd1c9f3bd543c0a78d571b69bf95 Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 4 Jun 2022 13:14:20 +0200 Subject: Renamed DumpSource to Snapshot --- CMakeLists.txt | 2 +- DumpSource.cpp | 75 ---------------------------------------------------------- DumpSource.h | 16 ------------- Snapshot.cpp | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Snapshot.h | 16 +++++++++++++ main.cpp | 4 ++-- 6 files changed, 94 insertions(+), 94 deletions(-) delete mode 100644 DumpSource.cpp delete mode 100644 DumpSource.h create mode 100644 Snapshot.cpp create mode 100644 Snapshot.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c641a61..5afaadc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,10 +8,10 @@ find_package(nlohmann_json 3.2 REQUIRED) add_executable( ${PROJECT_NAME} App.cpp - DumpSource.cpp Icons.cpp main.cpp Reader.cpp + Snapshot.cpp Timeline.cpp View.cpp ) diff --git a/DumpSource.cpp b/DumpSource.cpp deleted file mode 100644 index 57f81db..0000000 --- a/DumpSource.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include "DumpSource.h" - -#include -#include -#include -#include -#include - -#include -#include - -#include "Killmail.h" - - -using json = nlohmann::json; -using tm = std::tm; - - -void from_json(const json& j, tm& d); -void from_json(const json& j, Killmail& km); - - -NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(LongVector3, x, y, z) - - -DumpSource::DumpSource(const char* filename) : - m_killmails {} -{ - if (!FileExists(filename)) - throw "File does not exist"; - char* text = LoadFileText(filename); - auto dump = json::parse(text); - std::unordered_map group_lookup; - for (const auto& item : dump["types"]) { - const auto type_id = item["type_id"].get(); - item["group_id"].get_to(group_lookup[type_id]); - } - dump.at("killmails").get_to(m_killmails); - for (auto& km : m_killmails) - km.group = group_lookup[km.ship]; - UnloadFileText(text); -} - - -std::vector -DumpSource::killmails() const -{ - return m_killmails; -} - - -void -from_json(const json& j, tm& d) -{ - std::istringstream str(j.get()); - str >> std::get_time(&d, "%Y-%m-%dT%H:%M:%SZ"); -} - - -void -from_json(const json& j, Killmail& km) -{ - j.at("solar_system_id").get_to(km.location); - j.at("victim").at("ship_type_id").get_to(km.ship); - j.at("victim").at("position").get_to(km.position); - if (j.at("victim").contains("character_id")) - j.at("victim").at("character_id").get_to(km.owner.character); - j.at("victim").at("corporation_id").get_to(km.owner.corporation); - if (j.at("victim").contains("alliance_id")) - j.at("victim").at("alliance_id").get_to(km.owner.alliance); - if (j.at("victim").contains("faction_id")) - j.at("victim").at("faction_id").get_to(km.owner.faction); - auto calendar = j.at("killmail_time").get(); - km.time = std::mktime(&calendar); -} diff --git a/DumpSource.h b/DumpSource.h deleted file mode 100644 index 3c18b69..0000000 --- a/DumpSource.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include - -#include "Killmail.h" -#include "Source.h" - - -class DumpSource : public Source -{ -public: - explicit DumpSource(const char* filename); - std::vector killmails() const override; -private: - std::vector m_killmails; -}; diff --git a/Snapshot.cpp b/Snapshot.cpp new file mode 100644 index 0000000..57f81db --- /dev/null +++ b/Snapshot.cpp @@ -0,0 +1,75 @@ +#include "DumpSource.h" + +#include +#include +#include +#include +#include + +#include +#include + +#include "Killmail.h" + + +using json = nlohmann::json; +using tm = std::tm; + + +void from_json(const json& j, tm& d); +void from_json(const json& j, Killmail& km); + + +NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(LongVector3, x, y, z) + + +DumpSource::DumpSource(const char* filename) : + m_killmails {} +{ + if (!FileExists(filename)) + throw "File does not exist"; + char* text = LoadFileText(filename); + auto dump = json::parse(text); + std::unordered_map group_lookup; + for (const auto& item : dump["types"]) { + const auto type_id = item["type_id"].get(); + item["group_id"].get_to(group_lookup[type_id]); + } + dump.at("killmails").get_to(m_killmails); + for (auto& km : m_killmails) + km.group = group_lookup[km.ship]; + UnloadFileText(text); +} + + +std::vector +DumpSource::killmails() const +{ + return m_killmails; +} + + +void +from_json(const json& j, tm& d) +{ + std::istringstream str(j.get()); + str >> std::get_time(&d, "%Y-%m-%dT%H:%M:%SZ"); +} + + +void +from_json(const json& j, Killmail& km) +{ + j.at("solar_system_id").get_to(km.location); + j.at("victim").at("ship_type_id").get_to(km.ship); + j.at("victim").at("position").get_to(km.position); + if (j.at("victim").contains("character_id")) + j.at("victim").at("character_id").get_to(km.owner.character); + j.at("victim").at("corporation_id").get_to(km.owner.corporation); + if (j.at("victim").contains("alliance_id")) + j.at("victim").at("alliance_id").get_to(km.owner.alliance); + if (j.at("victim").contains("faction_id")) + j.at("victim").at("faction_id").get_to(km.owner.faction); + auto calendar = j.at("killmail_time").get(); + km.time = std::mktime(&calendar); +} diff --git a/Snapshot.h b/Snapshot.h new file mode 100644 index 0000000..3c18b69 --- /dev/null +++ b/Snapshot.h @@ -0,0 +1,16 @@ +#pragma once + +#include + +#include "Killmail.h" +#include "Source.h" + + +class DumpSource : public Source +{ +public: + explicit DumpSource(const char* filename); + std::vector killmails() const override; +private: + std::vector m_killmails; +}; diff --git a/main.cpp b/main.cpp index 41d5ef2..a4cd148 100644 --- a/main.cpp +++ b/main.cpp @@ -4,7 +4,7 @@ #include #include "App.h" -#include "DumpSource.h" +#include "Snapshot.h" #include "Globals.h" #include "Reader.h" #include "View.h" @@ -17,7 +17,7 @@ int main(int, char*[]) { { - DumpSource source("sample.json"); + Snapshot source("sample.json"); auto [grids, timeline] = Reader::read(source); auto view = std::make_unique(std::move(grids), std::move(timeline)); app.assign(std::move(view)); -- cgit v1.1