// third_party/blink/public/mojom/broadcastchannel/broadcast_channel.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 THIRD_PARTY_BLINK_PUBLIC_MOJOM_BROADCASTCHANNEL_BROADCAST_CHANNEL_MOJOM_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_BROADCASTCHANNEL_BROADCAST_CHANNEL_MOJOM_TEST_UTILS_H_

#include "third_party/blink/public/mojom/broadcastchannel/broadcast_channel.mojom.h"
#include "third_party/blink/public/common/common_export.h"


namespace blink::mojom {


class BLINK_COMMON_EXPORT BroadcastChannelClientInterceptorForTesting : public BroadcastChannelClient {
  virtual BroadcastChannelClient* GetForwardingInterface() = 0;
  void OnMessage(::blink::CloneableMessage message) override;
};
class BLINK_COMMON_EXPORT BroadcastChannelClientAsyncWaiter {
 public:
  explicit BroadcastChannelClientAsyncWaiter(BroadcastChannelClient* proxy);

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

  ~BroadcastChannelClientAsyncWaiter();

 private:
  BroadcastChannelClient* const proxy_;
};


class BLINK_COMMON_EXPORT BroadcastChannelProviderInterceptorForTesting : public BroadcastChannelProvider {
  virtual BroadcastChannelProvider* GetForwardingInterface() = 0;
  void ConnectToChannel(const std::string& name, ::mojo::PendingAssociatedRemote<BroadcastChannelClient> client, ::mojo::PendingAssociatedReceiver<BroadcastChannelClient> connection) override;
};
class BLINK_COMMON_EXPORT BroadcastChannelProviderAsyncWaiter {
 public:
  explicit BroadcastChannelProviderAsyncWaiter(BroadcastChannelProvider* proxy);

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

  ~BroadcastChannelProviderAsyncWaiter();

 private:
  BroadcastChannelProvider* const proxy_;
};




}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_BROADCASTCHANNEL_BROADCAST_CHANNEL_MOJOM_TEST_UTILS_H_