metrics: use TimeDelta for upload_interval

Use TimeDelta instead of int interpreted as seconds.

BUG=None
TEST=Unittests.

Change-Id: I18db8d558303291ab86b26c68c89203e0364b623
Reviewed-on: https://chromium-review.googlesource.com/222611
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index b0247c6..7226594 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -190,7 +190,7 @@
   upload_service_.reset(new UploadService(new SystemProfileCache(true,
                                                                  config_root_),
                                           server_));
-  upload_service_->Init(upload_interval_secs_, metrics_file_);
+  upload_service_->Init(upload_interval_, metrics_file_);
   upload_service_->UploadEvent();
 }
 
@@ -218,7 +218,7 @@
                          const string& vmstats_path,
                          const string& scaling_max_freq_path,
                          const string& cpuinfo_max_freq_path,
-                         int upload_interval_secs,
+                         const base::TimeDelta& upload_interval,
                          const string& server,
                          const string& metrics_file,
                          const string& config_root) {
@@ -227,7 +227,7 @@
   DCHECK(metrics_lib != nullptr);
   metrics_lib_ = metrics_lib;
 
-  upload_interval_secs_ = upload_interval_secs;
+  upload_interval_ = upload_interval;
   server_ = server;
   metrics_file_ = metrics_file;
 
@@ -326,7 +326,7 @@
   if (uploader_active) {
     LOG(INFO) << "uploader enabled";
     upload_service_.reset(new UploadService(new SystemProfileCache(), server_));
-    upload_service_->Init(upload_interval_secs_, metrics_file_);
+    upload_service_->Init(upload_interval_, metrics_file_);
   }
 }
 
diff --git a/metrics/metrics_daemon.h b/metrics/metrics_daemon.h
index 7c7f8d2..f4f1430 100644
--- a/metrics/metrics_daemon.h
+++ b/metrics/metrics_daemon.h
@@ -37,7 +37,7 @@
             const std::string& vmstats_path,
             const std::string& cpuinfo_max_freq_path,
             const std::string& scaling_max_freq_path,
-            int upload_interval_secs,
+            const base::TimeDelta& upload_interval,
             const std::string& server,
             const std::string& metrics_file,
             const std::string& config_root);
@@ -379,7 +379,7 @@
   std::string scaling_max_freq_path_;
   std::string cpuinfo_max_freq_path_;
 
-  int upload_interval_secs_;
+  base::TimeDelta upload_interval_;
   std::string server_;
   std::string metrics_file_;
 
diff --git a/metrics/metrics_daemon_main.cc b/metrics/metrics_daemon_main.cc
index f4a660b..9322771 100644
--- a/metrics/metrics_daemon_main.cc
+++ b/metrics/metrics_daemon_main.cc
@@ -83,7 +83,7 @@
               "/proc/vmstat",
               kScalingMaxFreqPath,
               kCpuinfoMaxFreqPath,
-              FLAGS_upload_interval_secs,
+              base::TimeDelta::FromSeconds(FLAGS_upload_interval_secs),
               FLAGS_server,
               FLAGS_metrics_file,
               FLAGS_config_root);
diff --git a/metrics/metrics_daemon_test.cc b/metrics/metrics_daemon_test.cc
index 947be87..ed6856a 100644
--- a/metrics/metrics_daemon_test.cc
+++ b/metrics/metrics_daemon_test.cc
@@ -72,7 +72,7 @@
                  kFakeVmStatsName,
                  kFakeScalingMaxFreqPath,
                  kFakeCpuinfoMaxFreqPath,
-                 1800,
+                 base::TimeDelta::FromMinutes(30),
                  kMetricsServer,
                  kMetricsFilePath,
                  "/");
diff --git a/metrics/uploader/upload_service.cc b/metrics/uploader/upload_service.cc
index 55d76a4..7e856f9 100644
--- a/metrics/uploader/upload_service.cc
+++ b/metrics/uploader/upload_service.cc
@@ -31,11 +31,11 @@
       sender_(new HttpSender(server)) {
 }
 
-void UploadService::Init(int upload_interval_secs,
+void UploadService::Init(const base::TimeDelta& upload_interval,
                          const std::string& metrics_file) {
   base::StatisticsRecorder::Initialize();
   metrics_file_ = metrics_file;
-  g_timeout_add_seconds(upload_interval_secs, &UploadEventStatic, this);
+  g_timeout_add_seconds(upload_interval.InSeconds(), &UploadEventStatic, this);
 }
 
 void UploadService::StartNewLog() {
diff --git a/metrics/uploader/upload_service.h b/metrics/uploader/upload_service.h
index a72349e..3611794 100644
--- a/metrics/uploader/upload_service.h
+++ b/metrics/uploader/upload_service.h
@@ -57,7 +57,7 @@
   explicit UploadService(SystemProfileSetter* setter,
                          const std::string& server);
 
-  void Init(int upload_interval_secs,
+  void Init(const base::TimeDelta& upload_interval,
             const std::string& metrics_file);
 
   // Starts a new log. The log needs to be regenerated after each successful
diff --git a/metrics/uploader/upload_service_test.cc b/metrics/uploader/upload_service_test.cc
index 2cdc4f5..c48747e 100644
--- a/metrics/uploader/upload_service_test.cc
+++ b/metrics/uploader/upload_service_test.cc
@@ -30,7 +30,7 @@
         exit_manager_(new base::AtExitManager()) {
     sender_ = new SenderMock;
     upload_service_.sender_.reset(sender_);
-    upload_service_.Init(1800, kMetricsFilePath);
+    upload_service_.Init(base::TimeDelta::FromMinutes(30), kMetricsFilePath);
   }
 
   virtual void SetUp() {