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#include "ppapi/cpp/private/uma_private.h" 6 7#include "ppapi/c/pp_errors.h" 8#include "ppapi/c/private/ppb_uma_private.h" 9#include "ppapi/cpp/completion_callback.h" 10#include "ppapi/cpp/module_impl.h" 11#include "ppapi/cpp/var.h" 12 13namespace pp { 14 15namespace { 16 17template <> const char* interface_name<PPB_UMA_Private_0_3>() { 18 return PPB_UMA_PRIVATE_INTERFACE_0_3; 19} 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() { 34 return has_interface<PPB_UMA_Private_0_3>(); 35} 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; 44 get_interface<PPB_UMA_Private_0_3>()-> 45 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; 56 get_interface<PPB_UMA_Private_0_3>()-> 57 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; 66 get_interface<PPB_UMA_Private_0_3>()-> 67 HistogramEnumeration(instance_, pp::Var(name).pp_var(), 68 sample, boundary_value); 69} 70 71int32_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 79} // namespace pp 80