Symbian platform (C++)
SDK native APIs, runtime and tooling
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1// Copyright 2026 The Symbian SDK Authors.
2// Licensed under the Apache License, Version 2.0.
3#ifndef SYMBIAN_HTTP_TYPES_H_
4#define SYMBIAN_HTTP_TYPES_H_
5#include <cstddef>
6#include <optional>
7#include <string>
8#include <string_view>
9#include <utility>
10#include <vector>
11
12#include "absl/status/status.h"
13
14namespace symbian::http {
15using Headers = std::vector<std::pair<std::string, std::string>>;
16enum class Role { kClient, kServer };
17
19 std::string method = "GET";
20 std::string scheme = "http";
21 std::string authority;
22 std::string path = "/";
23 std::string protocol; // Extended CONNECT, e.g. websocket.
25};
26
28 int status = 0;
30};
31
32struct Limits {
33 std::size_t maximum_header_bytes = 16384;
34 std::size_t maximum_headers = 64;
35 std::size_t maximum_buffered_bytes = 65536;
36 std::size_t maximum_body_bytes = 32 * 1024 * 1024;
37};
38
39void NormalizeHeaders(Headers* headers);
40std::optional<std::string> GetHeader(const Headers& headers,
41 std::string_view name);
42absl::Status ValidateHeaders(const Headers& headers, const Limits& limits);
43absl::Status ValidateRequest(const RequestHead& head, const Limits& limits);
44} // namespace symbian::http
45#endif
Definition connection.cc:8
std::vector< std::pair< std::string, std::string > > Headers
Definition types.h:15
absl::Status ValidateHeaders(const Headers &headers, const Limits &limits)
Definition types.cc:58
Role
Definition types.h:16
std::optional< std::string > GetHeader(const Headers &headers, std::string_view name)
Definition types.cc:48
void NormalizeHeaders(Headers *headers)
Definition types.cc:38
absl::Status ValidateRequest(const RequestHead &head, const Limits &limits)
Definition types.cc:80
Definition types.h:32
std::size_t maximum_body_bytes
Definition types.h:36
std::size_t maximum_header_bytes
Definition types.h:33
std::size_t maximum_buffered_bytes
Definition types.h:35
std::size_t maximum_headers
Definition types.h:34
Definition types.h:18
std::string method
Definition types.h:19
std::string scheme
Definition types.h:20
std::string protocol
Definition types.h:23
std::string authority
Definition types.h:21
Headers headers
Definition types.h:24
std::string path
Definition types.h:22
Definition types.h:27
Headers headers
Definition types.h:29
int status
Definition types.h:28