// services/network/public/mojom/socket_broker.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 SERVICES_NETWORK_PUBLIC_MOJOM_SOCKET_BROKER_MOJOM_TEST_UTILS_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_SOCKET_BROKER_MOJOM_TEST_UTILS_H_

#include "services/network/public/mojom/socket_broker.mojom.h"


namespace network::mojom {


class  SocketBrokerInterceptorForTesting : public SocketBroker {
  virtual SocketBroker* GetForwardingInterface() = 0;
  void CreateTcpSocket(::net::AddressFamily address_family, CreateTcpSocketCallback callback) override;
  void CreateUdpSocket(::net::AddressFamily address_family, CreateUdpSocketCallback callback) override;
};
class  SocketBrokerAsyncWaiter {
 public:
  explicit SocketBrokerAsyncWaiter(SocketBroker* proxy);

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

  ~SocketBrokerAsyncWaiter();
  void CreateTcpSocket(
      ::net::AddressFamily address_family, ::network::TransferableSocket* out_created_socket, int32_t* out_rv);
  
  void CreateUdpSocket(
      ::net::AddressFamily address_family, ::network::TransferableSocket* out_created_socket, int32_t* out_rv);
  

 private:
  SocketBroker* const proxy_;
};




}  // network::mojom

#endif  // SERVICES_NETWORK_PUBLIC_MOJOM_SOCKET_BROKER_MOJOM_TEST_UTILS_H_