spdy_http_utils.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef NET_SPDY_SPDY_HTTP_UTILS_H_
  5. #define NET_SPDY_SPDY_HTTP_UTILS_H_
  6. #include "net/base/net_export.h"
  7. #include "net/base/request_priority.h"
  8. #include "net/third_party/quiche/src/quiche/spdy/core/http2_header_block.h"
  9. #include "net/third_party/quiche/src/quiche/spdy/core/spdy_framer.h"
  10. #include "net/third_party/quiche/src/quiche/spdy/core/spdy_protocol.h"
  11. #include "url/gurl.h"
  12. namespace net {
  13. class HttpResponseInfo;
  14. struct HttpRequestInfo;
  15. class HttpRequestHeaders;
  16. // Convert a spdy::Http2HeaderBlock into an HttpResponseInfo with some checks.
  17. // `headers` input parameter with the spdy::Http2HeaderBlock.
  18. // `response` output parameter for the HttpResponseInfo.
  19. // Returns OK if successfully converted. An error is returned if the
  20. // spdy::Http2HeaderBlock is incomplete (e.g. missing 'status' or 'version') or
  21. // checks fail.
  22. NET_EXPORT int SpdyHeadersToHttpResponse(const spdy::Http2HeaderBlock& headers,
  23. HttpResponseInfo* response);
  24. // Create a spdy::Http2HeaderBlock from HttpRequestInfo and HttpRequestHeaders.
  25. NET_EXPORT void CreateSpdyHeadersFromHttpRequest(
  26. const HttpRequestInfo& info,
  27. const HttpRequestHeaders& request_headers,
  28. spdy::Http2HeaderBlock* headers);
  29. // Create a spdy::Http2HeaderBlock from HttpRequestInfo and HttpRequestHeaders
  30. // for a WebSockets over HTTP/2 request.
  31. NET_EXPORT void CreateSpdyHeadersFromHttpRequestForWebSocket(
  32. const GURL& url,
  33. const HttpRequestHeaders& request_headers,
  34. spdy::Http2HeaderBlock* headers);
  35. // Create HttpRequestHeaders from spdy::Http2HeaderBlock.
  36. NET_EXPORT void ConvertHeaderBlockToHttpRequestHeaders(
  37. const spdy::Http2HeaderBlock& spdy_headers,
  38. HttpRequestHeaders* http_headers);
  39. NET_EXPORT spdy::SpdyPriority ConvertRequestPriorityToSpdyPriority(
  40. RequestPriority priority);
  41. NET_EXPORT RequestPriority
  42. ConvertSpdyPriorityToRequestPriority(spdy::SpdyPriority priority);
  43. } // namespace net
  44. #endif // NET_SPDY_SPDY_HTTP_UTILS_H_