// services/network/public/mojom/net_log.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_NETWORK_PUBLIC_MOJOM_NET_LOG_MOJOM_BLINK_TEST_UTILS_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_NET_LOG_MOJOM_BLINK_TEST_UTILS_H_

#include "services/network/public/mojom/net_log.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace network::mojom::blink {


class BLINK_PLATFORM_EXPORT NetLogExporterInterceptorForTesting : public NetLogExporter {
  virtual NetLogExporter* GetForwardingInterface() = 0;
  void Start(::base::File destination, ::base::DictValue extra_constants, NetLogCaptureMode capture_mode, NetLogFileFormat file_format, uint64_t max_file_size, StartCallback callback) override;
  void Stop(::base::DictValue polled_values, StopCallback callback) override;
};
class BLINK_PLATFORM_EXPORT NetLogExporterAsyncWaiter {
 public:
  explicit NetLogExporterAsyncWaiter(NetLogExporter* proxy);

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

  ~NetLogExporterAsyncWaiter();
  void Start(
      ::base::File destination, ::base::DictValue extra_constants, NetLogCaptureMode capture_mode, NetLogFileFormat file_format, uint64_t max_file_size, int32_t* out_net_error);
  int32_t Start(::base::File destination, ::base::DictValue extra_constants, NetLogCaptureMode capture_mode, NetLogFileFormat file_format, uint64_t max_file_size);
  void Stop(
      ::base::DictValue polled_values, int32_t* out_net_error);
  int32_t Stop(::base::DictValue polled_values);

 private:
  NetLogExporter* const proxy_;
};


class BLINK_PLATFORM_EXPORT NetLogProxySourceInterceptorForTesting : public NetLogProxySource {
  virtual NetLogProxySource* GetForwardingInterface() = 0;
  void UpdateCaptureModes(uint8_t modes) override;
};
class BLINK_PLATFORM_EXPORT NetLogProxySourceAsyncWaiter {
 public:
  explicit NetLogProxySourceAsyncWaiter(NetLogProxySource* proxy);

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

  ~NetLogProxySourceAsyncWaiter();

 private:
  NetLogProxySource* const proxy_;
};


class BLINK_PLATFORM_EXPORT NetLogProxySinkInterceptorForTesting : public NetLogProxySink {
  virtual NetLogProxySink* GetForwardingInterface() = 0;
  void AddEntry(uint32_t type, const ::net::NetLogSource& net_log_source, NetLogEventPhase phase, ::base::TimeTicks time, ::base::DictValue params) override;
};
class BLINK_PLATFORM_EXPORT NetLogProxySinkAsyncWaiter {
 public:
  explicit NetLogProxySinkAsyncWaiter(NetLogProxySink* proxy);

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

  ~NetLogProxySinkAsyncWaiter();

 private:
  NetLogProxySink* const proxy_;
};




}  // network::mojom::blink

#endif  // SERVICES_NETWORK_PUBLIC_MOJOM_NET_LOG_MOJOM_BLINK_TEST_UTILS_H_