1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMECAST_BROWSER_METRICS_PLATFORM_METRICS_PROVIDERS_H_
6 #define CHROMECAST_BROWSER_METRICS_PLATFORM_METRICS_PROVIDERS_H_
8 #include "components/metrics/proto/system_profile.pb.h"
14 namespace chromecast
{
20 // Build-level hook for different platforms to provide data to MetricsService.
21 void RegisterPlatformMetricsProviders(
22 ::metrics::MetricsService
* metrics_service
,
23 CastService
* cast_servce
);
25 // Returns UMA client ID persisted in the platform.
26 const std::string
GetPlatformClientID(CastService
* cast_servce
);
28 // Returns the current release channel.
29 ::metrics::SystemProfileProto::Channel
GetPlatformReleaseChannel(
30 CastService
* cast_servce
);
32 // Returns a string representing this build's version.
33 std::string
GetPlatformVersionString(CastService
* cast_servce
);
35 // Returns whether or not metrics reporting should be on.
36 bool PlatformIsReportingEnabled(CastService
* cast_servce
);
38 // Called when the UMA client ID has been set.
39 void PlatformSetClientID(CastService
* cast_servce
,
40 const std::string
& client_id
);
42 // Called when an upload has completed.
43 void PlatformOnLogUploadComplete(CastService
* cast_servce
);
45 } // namespace metrics
46 } // namespace chromecast
48 #endif // CHROMECAST_BROWSER_METRICS_PLATFORM_METRICS_PROVIDERS_H_