blob: 33315a978fa03a9750070958b48a2da77ba4b94d [file] [log] [blame]
[email protected]7edd78cd2014-05-23 22:31:451// 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.
4
asvitkinec8fa43e92014-11-14 22:39:565#ifndef COMPONENTS_METRICS_METRICS_SERVICE_ACCESSOR_H_
6#define COMPONENTS_METRICS_METRICS_SERVICE_ACCESSOR_H_
[email protected]7edd78cd2014-05-23 22:31:457
[email protected]bb5d1892014-08-06 06:03:228#include <stdint.h>
[email protected]0129c272014-08-02 00:35:179
[email protected]7edd78cd2014-05-23 22:31:4510#include "base/macros.h"
11
asvitkinecbd420732014-08-26 22:15:4012namespace metrics {
asvitkinec8fa43e92014-11-14 22:39:5613
[email protected]0129c272014-08-02 00:35:1714class MetricsService;
[email protected]7edd78cd2014-05-23 22:31:4515
16// This class limits and documents access to metrics service helper methods.
17// These methods are protected so each user has to inherit own program-specific
18// specialization and enable access there by declaring friends.
19class MetricsServiceAccessor {
20 protected:
asvitkinecbd420732014-08-26 22:15:4021 // Constructor declared as protected to enable inheritance. Descendants should
[email protected]7edd78cd2014-05-23 22:31:4522 // disallow instantiation.
23 MetricsServiceAccessor() {}
24
[email protected]bb5d1892014-08-06 06:03:2225 // Registers the specified synthetic field trial (identified by a hash of the
26 // trial name and group name) with |metrics_service|, if the service is not
27 // NULL, returning true on success.
28 // See the comment on MetricsService::RegisterSyntheticFieldTrial for details.
asvitkinecbd420732014-08-26 22:15:4029 static bool RegisterSyntheticFieldTrial(
asvitkinec8fa43e92014-11-14 22:39:5630 MetricsService* metrics_service,
asvitkinecbd420732014-08-26 22:15:4031 uint32_t trial_name_hash,
32 uint32_t group_name_hash);
[email protected]0129c272014-08-02 00:35:1733
[email protected]7edd78cd2014-05-23 22:31:4534 private:
35 DISALLOW_COPY_AND_ASSIGN(MetricsServiceAccessor);
36};
37
asvitkinec8fa43e92014-11-14 22:39:5638} // namespace metrics
39
40#endif // COMPONENTS_METRICS_METRICS_SERVICE_ACCESSOR_H_