12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- // This file defines a service that sends metrics logs to a server.
- #ifndef COMPONENTS_METRICS_METRICS_REPORTING_SERVICE_H_
- #define COMPONENTS_METRICS_METRICS_REPORTING_SERVICE_H_
- #include <stdint.h>
- #include <string>
- #include "components/metrics/metrics_log_store.h"
- #include "components/metrics/reporting_service.h"
- class PrefService;
- class PrefRegistrySimple;
- namespace metrics {
- class MetricsServiceClient;
- // MetricsReportingService is concrete implementation of ReportingService for
- // UMA logs. It uses a MetricsLogStore as its LogStore, reports to the UMA
- // endpoint, and logs some histograms with the UMA prefix.
- class MetricsReportingService : public ReportingService {
- public:
- // Creates a ReportingService with the given |client|, |local_state|.
- // Does not take ownership of the parameters; instead it stores a weak
- // pointer to each. Caller should ensure that the parameters are valid for
- // the lifetime of this class.
- MetricsReportingService(MetricsServiceClient* client,
- PrefService* local_state);
- MetricsReportingService(const MetricsReportingService&) = delete;
- MetricsReportingService& operator=(const MetricsReportingService&) = delete;
- ~MetricsReportingService() override;
- MetricsLogStore* metrics_log_store() { return &metrics_log_store_; }
- const MetricsLogStore* metrics_log_store() const {
- return &metrics_log_store_;
- }
- // Registers local state prefs used by this class.
- static void RegisterPrefs(PrefRegistrySimple* registry);
- private:
- // ReportingService:
- LogStore* log_store() override;
- GURL GetUploadUrl() const override;
- GURL GetInsecureUploadUrl() const override;
- base::StringPiece upload_mime_type() const override;
- MetricsLogUploader::MetricServiceType service_type() const override;
- void LogActualUploadInterval(base::TimeDelta interval) override;
- void LogCellularConstraint(bool upload_canceled) override;
- void LogResponseOrErrorCode(int response_code,
- int error_code,
- bool was_https) override;
- void LogSuccessLogSize(size_t log_size) override;
- void LogSuccessMetadata(const std::string& staged_log) override;
- void LogLargeRejection(size_t log_size) override;
- MetricsLogStore metrics_log_store_;
- };
- } // namespace metrics
- #endif // COMPONENTS_METRICS_METRICS_REPORTING_SERVICE_H_
|