X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fanalytics.cc;h=7483166bad72bc444d006dd93ac0ff4b32109a7c;hb=ccacce39c39d16977ab6c1592fcb6e941b05ddff;hp=f20b213e4ab13f511d73f351df99ef7b4533bc92;hpb=2bec3708fc744c18128c5bdb4c2a332f5c8eb283;p=dcpomatic.git diff --git a/src/lib/analytics.cc b/src/lib/analytics.cc index f20b213e4..7483166ba 100644 --- a/src/lib/analytics.cc +++ b/src/lib/analytics.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,33 +18,37 @@ */ + #include "analytics.h" -#include "exceptions.h" #include "compose.hpp" +#include "exceptions.h" #include "warnings.h" #include #include DCPOMATIC_DISABLE_WARNINGS #include DCPOMATIC_ENABLE_WARNINGS -#include #include +#include #include "i18n.h" + using std::string; using dcp::raw_convert; using boost::algorithm::trim; + Analytics* Analytics::_instance; int const Analytics::_current_version = 1; + Analytics::Analytics () - : _successful_dcp_encodes (0) { } + void Analytics::successful_dcp_encode () { @@ -81,35 +85,38 @@ Analytics::successful_dcp_encode () } } + void Analytics::write () const { xmlpp::Document doc; - xmlpp::Element* root = doc.create_root_node ("Analytics"); + auto root = doc.create_root_node ("Analytics"); root->add_child("Version")->add_child_text(raw_convert(_current_version)); root->add_child("SuccessfulDCPEncodes")->add_child_text(raw_convert(_successful_dcp_encodes)); try { - doc.write_to_file_formatted(path("analytics.xml").string()); + doc.write_to_file_formatted(write_path("analytics.xml").string()); } catch (xmlpp::exception& e) { string s = e.what (); trim (s); - throw FileError (s, path("analytics.xml")); + throw FileError (s, write_path("analytics.xml")); } } + void Analytics::read () try { cxml::Document f ("Analytics"); - f.read_file (path("analytics.xml")); + f.read_file (read_path("analytics.xml")); _successful_dcp_encodes = f.number_child("SuccessfulDCPEncodes"); } catch (...) { /* Never mind */ } + Analytics* Analytics::instance () {