OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "metrics_daemon.h" | 5 #include "metrics_daemon.h" |
6 #include "metrics_library.h" | |
7 | 6 |
8 #include <dbus/dbus-glib-lowlevel.h> | 7 #include <dbus/dbus-glib-lowlevel.h> |
9 #include <sys/file.h> | 8 #include <sys/file.h> |
10 | 9 |
11 #include <base/eintr_wrapper.h> | 10 #include <base/eintr_wrapper.h> |
12 #include <base/logging.h> | 11 #include <base/logging.h> |
13 | 12 |
14 #define SAFE_MESSAGE(e) (e.message ? e.message : "unknown error") | 13 #define SAFE_MESSAGE(e) (e.message ? e.message : "unknown error") |
15 #define DBUS_IFACE_CONNMAN_MANAGER "org.moblin.connman.Manager" | 14 #define DBUS_IFACE_CONNMAN_MANAGER "org.moblin.connman.Manager" |
16 #define DBUS_IFACE_POWER_MANAGER "org.chromium.Power.Manager" | 15 #define DBUS_IFACE_POWER_MANAGER "org.chromium.Power.Manager" |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 #include "screensaver_states.h" | 93 #include "screensaver_states.h" |
95 }; | 94 }; |
96 | 95 |
97 // static | 96 // static |
98 const char* MetricsDaemon::kSessionStates_[] = { | 97 const char* MetricsDaemon::kSessionStates_[] = { |
99 #define STATE(name, capname) #name, | 98 #define STATE(name, capname) #name, |
100 #include "session_states.h" | 99 #include "session_states.h" |
101 }; | 100 }; |
102 | 101 |
103 void MetricsDaemon::Run(bool run_as_daemon) { | 102 void MetricsDaemon::Run(bool run_as_daemon) { |
104 Init(false); | 103 MetricsLibrary metrics_lib; |
| 104 metrics_lib.Init(); |
| 105 Init(false, &metrics_lib); |
105 if (!run_as_daemon || daemon(0, 0) == 0) { | 106 if (!run_as_daemon || daemon(0, 0) == 0) { |
106 Loop(); | 107 Loop(); |
107 } | 108 } |
108 } | 109 } |
109 | 110 |
110 void MetricsDaemon::Init(bool testing) { | 111 void MetricsDaemon::Init(bool testing, MetricsLibraryInterface* metrics_lib) { |
111 testing_ = testing; | 112 testing_ = testing; |
| 113 DCHECK(metrics_lib != NULL); |
| 114 metrics_lib_ = metrics_lib; |
112 daily_use_record_file_ = kDailyUseRecordFile; | 115 daily_use_record_file_ = kDailyUseRecordFile; |
113 | 116 |
114 // Don't setup D-Bus and GLib in test mode. | 117 // Don't setup D-Bus and GLib in test mode. |
115 if (testing) | 118 if (testing) |
116 return; | 119 return; |
117 | 120 |
118 g_thread_init(NULL); | 121 g_thread_init(NULL); |
119 g_type_init(); | 122 g_type_init(); |
120 dbus_g_thread_init(); | 123 dbus_g_thread_init(); |
121 | 124 |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
437 return; | 440 return; |
438 | 441 |
439 DLOG(INFO) << "destroying use monitor"; | 442 DLOG(INFO) << "destroying use monitor"; |
440 g_source_destroy(usemon_source_); | 443 g_source_destroy(usemon_source_); |
441 usemon_source_ = NULL; | 444 usemon_source_ = NULL; |
442 usemon_interval_ = 0; | 445 usemon_interval_ = 0; |
443 } | 446 } |
444 | 447 |
445 void MetricsDaemon::PublishMetric(const char* name, int sample, | 448 void MetricsDaemon::PublishMetric(const char* name, int sample, |
446 int min, int max, int nbuckets) { | 449 int min, int max, int nbuckets) { |
447 LOG(INFO) << "received metric: " << name << " " << sample << " " | 450 DLOG(INFO) << "received metric: " << name << " " << sample << " " |
448 << min << " " << max << " " << nbuckets; | 451 << min << " " << max << " " << nbuckets; |
449 if (!testing_) { | 452 metrics_lib_->SendToUMA(name, sample, min, max, nbuckets); |
450 MetricsLibrary::SendToChrome(name, sample, min, max, nbuckets); | |
451 } | |
452 } | 453 } |
OLD | NEW |