blob: 6ee4179e3bebda5156524ff8fa1f7c3935dc18af [file] [log] [blame]
Avi Drissmandb497b32022-09-15 19:47:281// Copyright 2014 The Chromium Authors
[email protected]45649492014-01-24 20:49:342// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ppapi/cpp/private/uma_private.h"
6
7#include "ppapi/c/pp_errors.h"
8#include "ppapi/c/private/ppb_uma_private.h"
[email protected]1ef13cf2014-03-21 22:44:019#include "ppapi/cpp/completion_callback.h"
[email protected]45649492014-01-24 20:49:3410#include "ppapi/cpp/module_impl.h"
11#include "ppapi/cpp/var.h"
12
13namespace pp {
14
15namespace {
16
[email protected]1ef13cf2014-03-21 22:44:0117template <> const char* interface_name<PPB_UMA_Private_0_3>() {
18 return PPB_UMA_PRIVATE_INTERFACE_0_3;
[email protected]45649492014-01-24 20:49:3419}
20
21} // namespace
22
23UMAPrivate::UMAPrivate() {
24}
25
26UMAPrivate::UMAPrivate(
27 const InstanceHandle& instance) : instance_(instance.pp_instance()) {
28}
29
30UMAPrivate::~UMAPrivate() {
31}
32
33bool UMAPrivate::IsAvailable() {
[email protected]1ef13cf2014-03-21 22:44:0134 return has_interface<PPB_UMA_Private_0_3>();
[email protected]45649492014-01-24 20:49:3435}
36
37void UMAPrivate::HistogramCustomTimes(const std::string& name,
38 int64_t sample,
39 int64_t min,
40 int64_t max,
41 uint32_t bucket_count) {
42 if (!IsAvailable())
43 return;
[email protected]1ef13cf2014-03-21 22:44:0144 get_interface<PPB_UMA_Private_0_3>()->
[email protected]45649492014-01-24 20:49:3445 HistogramCustomTimes(instance_, pp::Var(name).pp_var(),
46 sample, min, max, bucket_count);
47}
48
49void UMAPrivate::HistogramCustomCounts(const std::string& name,
50 int32_t sample,
51 int32_t min,
52 int32_t max,
53 uint32_t bucket_count) {
54 if (!IsAvailable())
55 return;
[email protected]1ef13cf2014-03-21 22:44:0156 get_interface<PPB_UMA_Private_0_3>()->
[email protected]45649492014-01-24 20:49:3457 HistogramCustomCounts(instance_, pp::Var(name).pp_var(),
58 sample, min, max, bucket_count);
59}
60
61void UMAPrivate::HistogramEnumeration(const std::string& name,
62 int32_t sample,
63 int32_t boundary_value) {
64 if (!IsAvailable())
65 return;
[email protected]1ef13cf2014-03-21 22:44:0166 get_interface<PPB_UMA_Private_0_3>()->
[email protected]45649492014-01-24 20:49:3467 HistogramEnumeration(instance_, pp::Var(name).pp_var(),
68 sample, boundary_value);
69}
70
[email protected]1ef13cf2014-03-21 22:44:0171int32_t UMAPrivate::IsCrashReportingEnabled(const CompletionCallback& cc) {
72 if (!IsAvailable())
73 return PP_ERROR_NOINTERFACE;
74
75 return get_interface<PPB_UMA_Private_0_3>()->
76 IsCrashReportingEnabled(instance_, cc.pp_completion_callback());
77}
78
[email protected]45649492014-01-24 20:49:3479} // namespace pp