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. 4 5#ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_ 6#define CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_ 7 8#include <stdint.h> 9 10#include "base/macros.h" 11 12namespace metrics { 13class MetricsService; 14} 15 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: 21 // Constructor declared as protected to enable inheritance. Descendants should 22 // disallow instantiation. 23 MetricsServiceAccessor() {} 24 25 // 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. 29 static bool RegisterSyntheticFieldTrial( 30 metrics::MetricsService* metrics_service, 31 uint32_t trial_name_hash, 32 uint32_t group_name_hash); 33 34 private: 35 DISALLOW_COPY_AND_ASSIGN(MetricsServiceAccessor); 36}; 37 38#endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_ 39