// components/services/heap_profiling/public/mojom/heap_profiling_client.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SERVICES_HEAP_PROFILING_PUBLIC_MOJOM_HEAP_PROFILING_CLIENT_MOJOM_TEST_UTILS_H_
#define COMPONENTS_SERVICES_HEAP_PROFILING_PUBLIC_MOJOM_HEAP_PROFILING_CLIENT_MOJOM_TEST_UTILS_H_

#include "components/services/heap_profiling/public/mojom/heap_profiling_client.mojom.h"


namespace heap_profiling::mojom {


class  ProfilingClientInterceptorForTesting : public ProfilingClient {
  virtual ProfilingClient* GetForwardingInterface() = 0;
  void StartProfiling(ProfilingParamsPtr params, StartProfilingCallback callback) override;
  void StopProfiling(StopProfilingCallback callback) override;
  void RetrieveHeapProfile(RetrieveHeapProfileCallback callback) override;
};
class  ProfilingClientAsyncWaiter {
 public:
  explicit ProfilingClientAsyncWaiter(ProfilingClient* proxy);

  ProfilingClientAsyncWaiter(const ProfilingClientAsyncWaiter&) = delete;
  ProfilingClientAsyncWaiter& operator=(const ProfilingClientAsyncWaiter&) = delete;

  ~ProfilingClientAsyncWaiter();
  void StartProfiling(
      ProfilingParamsPtr params);
  
  void StopProfiling(
      );
  
  void RetrieveHeapProfile(
      HeapProfilePtr* out_profile);
  HeapProfilePtr RetrieveHeapProfile();

 private:
  ProfilingClient* const proxy_;
};




}  // heap_profiling::mojom

#endif  // COMPONENTS_SERVICES_HEAP_PROFILING_PUBLIC_MOJOM_HEAP_PROFILING_CLIENT_MOJOM_TEST_UTILS_H_