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 "base/macros.h" 9 10 class MetricsServiceObserver; 11 12 // This class limits and documents access to metrics service helper methods. 13 // These methods are protected so each user has to inherit own program-specific 14 // specialization and enable access there by declaring friends. 15 class MetricsServiceAccessor { 16 protected: 17 // Constructor declared as protected to enable inheritance. Decendants should 18 // disallow instantiation. 19 MetricsServiceAccessor() {} 20 21 // Registers/unregisters |observer| to receive MetricsLog notifications 22 // from metrics service. 23 static void AddMetricsServiceObserver(MetricsServiceObserver* observer); 24 static void RemoveMetricsServiceObserver(MetricsServiceObserver* observer); 25 26 private: 27 DISALLOW_COPY_AND_ASSIGN(MetricsServiceAccessor); 28 }; 29 30 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_ 31