Fix build.
authorCarl Hetherington <cth@carlh.net>
Tue, 14 Aug 2018 14:21:38 +0000 (15:21 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 14 Aug 2018 14:21:38 +0000 (15:21 +0100)
src/lib/analytics.cc
src/lib/analytics.h
src/lib/job.cc

index 59abfba0249729db45752d99f3749b919cae8e28..624c61feda0b039aae012e8b16d4b8e9ab82e90e 100644 (file)
 
 #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
index f4cafe9868c8c5bab5f5b888dbe0a5b5292481ca..fcb349e542a323b6a728b48b1467b31d2f5f0179 100644 (file)
 
 #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;
index d8914406f9733aea943fb82183179f9743168df2..3472f27768b5d8082ff09bbfa01230fb2f664b6b 100644 (file)
@@ -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 */