15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <string>
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ppapi/c/pp_instance.h"
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ppapi/cpp/instance_handle.h"
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace pp {
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass CompletionCallback;
16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class UMAPrivate {
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public:
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  UMAPrivate();
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  explicit UMAPrivate(const InstanceHandle& instance);
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ~UMAPrivate();
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static bool IsAvailable();
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void HistogramCustomTimes(const std::string& name,
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            int64_t sample,
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            int64_t min,
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            int64_t max,
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            uint32_t bucket_count);
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void HistogramCustomCounts(const std::string& name,
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                             int32_t sample,
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                             int32_t min,
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                             int32_t max,
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                             uint32_t bucket_count);
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void HistogramEnumeration(const std::string& name,
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            int32_t sample,
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            int32_t boundary_value);
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  int32_t IsCrashReportingEnabled(const CompletionCallback& cc);
42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private:
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  PP_Instance instance_;
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace pp
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
50