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 COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
6#define COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
7
8#include "base/basictypes.h"
9#include "components/metrics/metrics_provider.h"
10#include "ui/gfx/size.h"
11
12namespace metrics {
13
14// GPUMetricsProvider provides GPU-related metrics.
15class GPUMetricsProvider : public MetricsProvider {
16 public:
17  GPUMetricsProvider();
18  virtual ~GPUMetricsProvider();
19
20  // MetricsProvider:
21  virtual void ProvideSystemProfileMetrics(
22      SystemProfileProto* system_profile_proto) OVERRIDE;
23
24 protected:
25  // Exposed for the sake of mocking in test code.
26
27  // Returns the screen size for the primary monitor.
28  virtual gfx::Size GetScreenSize() const;
29
30  // Returns the device scale factor for the primary monitor.
31  virtual float GetScreenDeviceScaleFactor() const;
32
33  // Returns the number of monitors the user is using.
34  virtual int GetScreenCount() const;
35
36 private:
37  DISALLOW_COPY_AND_ASSIGN(GPUMetricsProvider);
38};
39
40}  // namespace metrics
41
42#endif  // COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
43