From e32f443c7ad4a9e163e76648623de45bec2f4f84 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 14 Aug 2018 15:21:38 +0100 Subject: Fix build. --- src/lib/analytics.cc | 28 +++++++++++++++++++++++++--- src/lib/analytics.h | 14 +++++++++++--- src/lib/job.cc | 5 +++-- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/lib/analytics.cc b/src/lib/analytics.cc index 59abfba02..624c61fed 100644 --- a/src/lib/analytics.cc +++ b/src/lib/analytics.cc @@ -20,21 +20,31 @@ #include "analytics.h" #include "exceptions.h" +#include "job.h" #include #include #include #include #include +#include +#include #include "i18n.h" using std::string; +using std::map; using dcp::raw_convert; using boost::algorithm::trim; +using boost::shared_ptr; Analytics* Analytics::_instance; int const Analytics::_current_version = 1; +Event::Event () +{ + gettimeofday (&_time, 0); +} + Event::Event (cxml::ConstNodePtr node) { _time.tv_sec = node->number_child("Time"); @@ -51,15 +61,26 @@ Event::set (string k, string v) } void -Event::as_xml (cxml::NodePtr parent) +Event::as_xml (xmlpp::Element* parent) const { /* It would be nice if this had timezone */ - parent->add_child("Time")->add_child_text(raw_convert(_time.tv_sec)); + parent->add_child("Time")->add_child_text(raw_convert(_time.tv_sec)); for (map::const_iterator i = _data.begin(); i != _data.end(); ++i) { parent->add_child(i->first)->add_child_text(i->second); } } +string +Event::dump () const +{ + string d; + d += raw_convert(_time.tv_sec) + "\n"; + for (map::const_iterator i = _data.begin(); i != _data.end(); ++i) { + d += i->first + ": " + i->second + "\n"; + } + return d; +} + Analytics::Analytics () { @@ -70,8 +91,9 @@ Analytics::successful_dcp_encodes () const { boost::mutex::scoped_lock lm (_mutex); BOOST_FOREACH (Event e, _events) { - cout << e.dump() << "\n"; + std::cout << e.dump() << "\n"; } + return 0; } void diff --git a/src/lib/analytics.h b/src/lib/analytics.h index f4cafe986..fcb349e54 100644 --- a/src/lib/analytics.h +++ b/src/lib/analytics.h @@ -20,7 +20,13 @@ #include "state.h" #include "signaller.h" +#include +#include #include +#include +#include + +class Job; class Event { @@ -30,12 +36,12 @@ public: void set (std::string k, std::string v); - void as_xml (cxml::NodePtr parent) const; + void as_xml (xmlpp::Element* parent) const; std::string dump () const; private: struct timeval _time; - std::map _data; }; class Analytics : public State, public Signaller @@ -53,8 +59,10 @@ public: static Analytics* instance (); private: + int successful_dcp_encodes () const; + /** Mutex to protect _events */ - boost::mutex _mutex; + mutable boost::mutex _mutex; std::list _events; static Analytics* _instance; static int const _current_version; diff --git a/src/lib/job.cc b/src/lib/job.cc index d8914406f..3472f2776 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2016 Carl Hetherington + Copyright (C) 2012-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -28,6 +28,7 @@ #include "exceptions.h" #include "film.h" #include "log.h" +#include "analytics.h" #include "compose.hpp" #include #include @@ -293,7 +294,7 @@ Job::set_state (State s) emit (boost::bind (boost::ref (Finished))); } - Analytics::instance()->job_state_changed (this); + Analytics::instance()->job_state_changed (shared_from_this()); } /** @return DCPTime (in seconds) that this sub-job has been running */ -- cgit v1.2.3