// services/metrics/public/mojom/ukm_interface.mojom-blink-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 SERVICES_METRICS_PUBLIC_MOJOM_UKM_INTERFACE_MOJOM_BLINK_TEST_UTILS_H_
#define SERVICES_METRICS_PUBLIC_MOJOM_UKM_INTERFACE_MOJOM_BLINK_TEST_UTILS_H_

#include "services/metrics/public/mojom/ukm_interface.mojom-blink.h"


namespace ukm::mojom::blink {


class  SingularUkmInterfaceInterceptorForTesting : public SingularUkmInterface {
  virtual SingularUkmInterface* GetForwardingInterface() = 0;
  void Submit(UkmEntryPtr entry) override;
};
class  SingularUkmInterfaceAsyncWaiter {
 public:
  explicit SingularUkmInterfaceAsyncWaiter(SingularUkmInterface* proxy);

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

  ~SingularUkmInterfaceAsyncWaiter();

 private:
  SingularUkmInterface* const proxy_;
};


class  UkmRecorderClientInterfaceInterceptorForTesting : public UkmRecorderClientInterface {
  virtual UkmRecorderClientInterface* GetForwardingInterface() = 0;
  void SetParameters(UkmRecorderParametersPtr params) override;
};
class  UkmRecorderClientInterfaceAsyncWaiter {
 public:
  explicit UkmRecorderClientInterfaceAsyncWaiter(UkmRecorderClientInterface* proxy);

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

  ~UkmRecorderClientInterfaceAsyncWaiter();

 private:
  UkmRecorderClientInterface* const proxy_;
};


class  UkmRecorderInterfaceInterceptorForTesting : public UkmRecorderInterface {
  virtual UkmRecorderInterface* GetForwardingInterface() = 0;
  void AddEntry(UkmEntryPtr entry) override;
  void UpdateSourceURL(int64_t source_id, const ::blink::String& url) override;
};
class  UkmRecorderInterfaceAsyncWaiter {
 public:
  explicit UkmRecorderInterfaceAsyncWaiter(UkmRecorderInterface* proxy);

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

  ~UkmRecorderInterfaceAsyncWaiter();

 private:
  UkmRecorderInterface* const proxy_;
};


class  UkmRecorderFactoryInterceptorForTesting : public UkmRecorderFactory {
  virtual UkmRecorderFactory* GetForwardingInterface() = 0;
  void CreateUkmRecorder(::mojo::PendingReceiver<UkmRecorderInterface> receiver, ::mojo::PendingRemote<UkmRecorderClientInterface> client_remote) override;
};
class  UkmRecorderFactoryAsyncWaiter {
 public:
  explicit UkmRecorderFactoryAsyncWaiter(UkmRecorderFactory* proxy);

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

  ~UkmRecorderFactoryAsyncWaiter();

 private:
  UkmRecorderFactory* const proxy_;
};




}  // ukm::mojom::blink

#endif  // SERVICES_METRICS_PUBLIC_MOJOM_UKM_INTERFACE_MOJOM_BLINK_TEST_UTILS_H_