Move enqueue logging and custom enqueue cb to MetricReportQueue.

This will help in splitting the collectors into multiple files in
the next CL.

Bug: b:258554147
Change-Id: I82ec56093268faffdc50edb42094e3e11c704eab
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4021399
Commit-Queue: Ahmed Nasr <[email protected]>
Reviewed-by: Leonid Baraz <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1070493}
diff --git a/components/reporting/metrics/metric_report_queue.h b/components/reporting/metrics/metric_report_queue.h
index c0a6920e..1f450c8f 100644
--- a/components/reporting/metrics/metric_report_queue.h
+++ b/components/reporting/metrics/metric_report_queue.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 
+#include "base/functional/callback_helpers.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/time/time.h"
 #include "components/reporting/client/report_queue.h"
@@ -43,8 +44,9 @@
   virtual ~MetricReportQueue();
 
   // Enqueue the metric data.
-  virtual void Enqueue(std::unique_ptr<const MetricData> metric_data,
-                       ReportQueue::EnqueueCallback callback);
+  virtual void Enqueue(
+      MetricData metric_data,
+      ReportQueue::EnqueueCallback callback = base::DoNothing());
 
   // Initiate manual upload of records with `priority_` and restart timer if
   // exists.