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 PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
6#define PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
7
8#include <string>
9
10#include "ppapi/c/pp_instance.h"
11#include "ppapi/cpp/instance_handle.h"
12
13namespace pp {
14
15class CompletionCallback;
16
17class UMAPrivate {
18 public:
19  UMAPrivate();
20  explicit UMAPrivate(const InstanceHandle& instance);
21  ~UMAPrivate();
22
23  static bool IsAvailable();
24
25  void HistogramCustomTimes(const std::string& name,
26                            int64_t sample,
27                            int64_t min,
28                            int64_t max,
29                            uint32_t bucket_count);
30
31  void HistogramCustomCounts(const std::string& name,
32                             int32_t sample,
33                             int32_t min,
34                             int32_t max,
35                             uint32_t bucket_count);
36
37  void HistogramEnumeration(const std::string& name,
38                            int32_t sample,
39                            int32_t boundary_value);
40
41  int32_t IsCrashReportingEnabled(const CompletionCallback& cc);
42
43 private:
44  PP_Instance instance_;
45};
46
47}  // namespace pp
48
49#endif  // PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
50