summaryrefslogtreecommitdiffstats
path: root/chromium/ppapi/cpp/private/uma_private.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ppapi/cpp/private/uma_private.cc')
-rw-r--r--chromium/ppapi/cpp/private/uma_private.cc79
1 files changed, 79 insertions, 0 deletions
diff --git a/chromium/ppapi/cpp/private/uma_private.cc b/chromium/ppapi/cpp/private/uma_private.cc
new file mode 100644
index 00000000000..3ec0872611c
--- /dev/null
+++ b/chromium/ppapi/cpp/private/uma_private.cc
@@ -0,0 +1,79 @@
+// 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