// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ppapi/cpp/private/uma_private.h" #include "ppapi/c/pp_errors.h" #include "ppapi/c/private/ppb_uma_private.h" #include "ppapi/cpp/completion_callback.h" #include "ppapi/cpp/module_impl.h" #include "ppapi/cpp/var.h" namespace pp { namespace { template <> const char* interface_name<PPB_UMA_Private_0_3>() { return PPB_UMA_PRIVATE_INTERFACE_0_3; } } // namespace UMAPrivate::UMAPrivate() { } UMAPrivate::UMAPrivate( const InstanceHandle& instance) : instance_(instance.pp_instance()) { } UMAPrivate::~UMAPrivate() { } bool UMAPrivate::IsAvailable() { return has_interface<PPB_UMA_Private_0_3>(); } void UMAPrivate::HistogramCustomTimes(const std::string& name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count) { if (!IsAvailable()) return; get_interface<PPB_UMA_Private_0_3>()-> HistogramCustomTimes(instance_, pp::Var(name).pp_var(), sample, min, max, bucket_count); } void UMAPrivate::HistogramCustomCounts(const std::string& name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count) { if (!IsAvailable()) return; get_interface<PPB_UMA_Private_0_3>()-> HistogramCustomCounts(instance_, pp::Var(name).pp_var(), sample, min, max, bucket_count); } void UMAPrivate::HistogramEnumeration(const std::string& name, int32_t sample, int32_t boundary_value) { if (!IsAvailable()) return; get_interface<PPB_UMA_Private_0_3>()-> HistogramEnumeration(instance_, pp::Var(name).pp_var(), sample, boundary_value); } int32_t UMAPrivate::IsCrashReportingEnabled(const CompletionCallback& cc) { if (!IsAvailable()) return PP_ERROR_NOINTERFACE; return get_interface<PPB_UMA_Private_0_3>()-> IsCrashReportingEnabled(instance_, cc.pp_completion_callback()); } } // namespace pp