// components/services/heap_profiling/public/mojom/heap_profiling_service.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_SERVICE_MOJOM_TEST_UTILS_H_
#define COMPONENTS_SERVICES_HEAP_PROFILING_PUBLIC_MOJOM_HEAP_PROFILING_SERVICE_MOJOM_TEST_UTILS_H_

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


namespace heap_profiling::mojom {


class  ProfilingServiceInterceptorForTesting : public ProfilingService {
  virtual ProfilingService* GetForwardingInterface() = 0;
  void AddProfilingClient(::base::ProcessId pid, ::mojo::PendingRemote<::heap_profiling::mojom::ProfilingClient> client, ProcessType process_type, ::heap_profiling::mojom::ProfilingParamsPtr params, AddProfilingClientCallback callback) override;
  void GetProfiledPids(GetProfiledPidsCallback callback) override;
  void StopProfilingAllClients(StopProfilingAllClientsCallback callback) override;
};
class  ProfilingServiceAsyncWaiter {
 public:
  explicit ProfilingServiceAsyncWaiter(ProfilingService* proxy);

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

  ~ProfilingServiceAsyncWaiter();
  void AddProfilingClient(
      ::base::ProcessId pid, ::mojo::PendingRemote<::heap_profiling::mojom::ProfilingClient> client, ProcessType process_type, ::heap_profiling::mojom::ProfilingParamsPtr params, bool* out_success);
  bool AddProfilingClient(::base::ProcessId pid, ::mojo::PendingRemote<::heap_profiling::mojom::ProfilingClient> client, ProcessType process_type, ::heap_profiling::mojom::ProfilingParamsPtr params);
  void GetProfiledPids(
      std::vector<::base::ProcessId>* out_pids);
  std::vector<::base::ProcessId> GetProfiledPids();
  void StopProfilingAllClients(
      bool* out_success);
  bool StopProfilingAllClients();

 private:
  ProfilingService* const proxy_;
};




}  // heap_profiling::mojom

#endif  // COMPONENTS_SERVICES_HEAP_PROFILING_PUBLIC_MOJOM_HEAP_PROFILING_SERVICE_MOJOM_TEST_UTILS_H_