// vendor/chromium/ipc/ipc.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef VENDOR_CHROMIUM_IPC_IPC_MOJOM_TEST_UTILS_H_
#define VENDOR_CHROMIUM_IPC_IPC_MOJOM_TEST_UTILS_H_

#include "vendor/chromium/ipc/ipc.mojom.h"


namespace IPC {
namespace mojom {


class  GenericInterfaceInterceptorForTesting : public GenericInterface {
  virtual GenericInterface* GetForwardingInterface() = 0;
};
class  GenericInterfaceAsyncWaiter {
 public:
  explicit GenericInterfaceAsyncWaiter(GenericInterface* proxy);
  ~GenericInterfaceAsyncWaiter();

 private:
  GenericInterface* const proxy_;

  DISALLOW_COPY_AND_ASSIGN(GenericInterfaceAsyncWaiter);
};


class  ChannelInterceptorForTesting : public Channel {
  virtual Channel* GetForwardingInterface() = 0;
  void SetPeerPid(int32_t pid) override;
  void Receive(::IPC::MessageView message) override;
  void GetAssociatedInterface(const std::string& name, mojo::PendingAssociatedReceiver<GenericInterface> receiver) override;
};
class  ChannelAsyncWaiter {
 public:
  explicit ChannelAsyncWaiter(Channel* proxy);
  ~ChannelAsyncWaiter();

 private:
  Channel* const proxy_;

  DISALLOW_COPY_AND_ASSIGN(ChannelAsyncWaiter);
};


class  ChannelBootstrapInterceptorForTesting : public ChannelBootstrap {
  virtual ChannelBootstrap* GetForwardingInterface() = 0;
};
class  ChannelBootstrapAsyncWaiter {
 public:
  explicit ChannelBootstrapAsyncWaiter(ChannelBootstrap* proxy);
  ~ChannelBootstrapAsyncWaiter();

 private:
  ChannelBootstrap* const proxy_;

  DISALLOW_COPY_AND_ASSIGN(ChannelBootstrapAsyncWaiter);
};




}  // namespace mojom
}  // namespace IPC

#endif  // VENDOR_CHROMIUM_IPC_IPC_MOJOM_TEST_UTILS_H_