diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-08-14 15:21:38 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-08-14 15:21:38 +0100 |
| commit | e32f443c7ad4a9e163e76648623de45bec2f4f84 (patch) | |
| tree | 71d41474e503c5f99e4ccd17a221deb8cc9db611 | |
| parent | 0fa103385bba4f18939f77accd725efd4833d9f2 (diff) | |
Fix build.
| -rw-r--r-- | src/lib/analytics.cc | 28 | ||||
| -rw-r--r-- | src/lib/analytics.h | 14 | ||||
| -rw-r--r-- | 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 <dcp/raw_convert.h> #include <libcxml/cxml.h> #include <libxml++/libxml++.h> #include <boost/filesystem.hpp> #include <boost/algorithm/string.hpp> +#include <boost/foreach.hpp> +#include <iostream> #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<int64_t>("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<int64_t>(_time.tv_sec)); + parent->add_child("Time")->add_child_text(raw_convert<string>(_time.tv_sec)); for (map<string, string>::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<string>(_time.tv_sec) + "\n"; + for (map<string, string>::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 <libcxml/cxml.h> +#include <libxml++/libxml++.h> #include <boost/signals2.hpp> +#include <string> +#include <map> + +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<std::string k, std::string v) _data; + std::map<std::string, std::string> _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<Event> _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 <cth@carlh.net> + Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net> 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 <dcp/exceptions.h> #include <sub/exceptions.h> @@ -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 */ |
