// services/data_decoder/public/mojom/structured_headers_parser.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_DATA_DECODER_PUBLIC_MOJOM_STRUCTURED_HEADERS_PARSER_MOJOM_TEST_UTILS_H_
#define SERVICES_DATA_DECODER_PUBLIC_MOJOM_STRUCTURED_HEADERS_PARSER_MOJOM_TEST_UTILS_H_

#include "services/data_decoder/public/mojom/structured_headers_parser.mojom.h"


namespace data_decoder::mojom {


class  StructuredHeadersParserInterceptorForTesting : public StructuredHeadersParser {
  virtual StructuredHeadersParser* GetForwardingInterface() = 0;
  void ParseItem(const std::string& header, ParseItemCallback callback) override;
  void ParseList(const std::string& header, ParseListCallback callback) override;
  void ParseDictionary(const std::string& header, ParseDictionaryCallback callback) override;
};
class  StructuredHeadersParserAsyncWaiter {
 public:
  explicit StructuredHeadersParserAsyncWaiter(StructuredHeadersParser* proxy);

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

  ~StructuredHeadersParserAsyncWaiter();
  void ParseItem(
      const std::string& header, std::optional<::net::structured_headers::ParameterizedItem>* out_result);
  std::optional<::net::structured_headers::ParameterizedItem> ParseItem(const std::string& header);
  void ParseList(
      const std::string& header, std::optional<std::vector<::net::structured_headers::ParameterizedMember>>* out_result);
  std::optional<std::vector<::net::structured_headers::ParameterizedMember>> ParseList(const std::string& header);
  void ParseDictionary(
      const std::string& header, std::optional<::net::structured_headers::Dictionary>* out_result);
  std::optional<::net::structured_headers::Dictionary> ParseDictionary(const std::string& header);

 private:
  StructuredHeadersParser* const proxy_;
};




}  // data_decoder::mojom

#endif  // SERVICES_DATA_DECODER_PUBLIC_MOJOM_STRUCTURED_HEADERS_PARSER_MOJOM_TEST_UTILS_H_