3#ifndef SYMBIAN_API_CONNECTIVITY_HTTP_H_
4#define SYMBIAN_API_CONNECTIVITY_HTTP_H_
18 static absl::StatusOr<std::unique_ptr<http::Connection>>
ConnectHost(
20 absl::Time deadline = absl::InfiniteFuture(),
22 http::Limits limits = {}, std::optional<std::size_t> body_length = 0) {
23 if (request.
scheme !=
"http") {
24 return absl::InvalidArgumentError(
"HTTPS requires a verified TLS stream");
31 std::make_unique<TcpByteStream>(std::move(*tcp)), std::move(request),
32 protocol, limits, body_length, deadline);
35 static absl::StatusOr<std::unique_ptr<http::Connection>>
ConnectIpv4(
36 std::array<std::uint8_t, 4>
address, std::uint16_t port,
39 absl::Time deadline = absl::InfiniteFuture(),
http::Limits limits = {},
40 std::optional<std::size_t> body_length = 0) {
41 if (request.
scheme !=
"http") {
42 return absl::InvalidArgumentError(
"HTTPS requires a verified TLS stream");
49 std::make_unique<TcpByteStream>(std::move(*tcp)), std::move(request),
50 protocol, limits, body_length, deadline);
58 std::array<std::uint8_t, 4>
address, std::uint16_t port,
63 return listener.status();
65 return HttpServer(std::move(*listener), protocol, limits);
68 absl::StatusOr<std::unique_ptr<http::Connection>>
Accept(
69 absl::Time deadline) {
70 auto tcp = listener_.
Accept(deadline);
75 std::make_unique<TcpByteStream>(std::move(*tcp)), protocol_, limits_,
81 : listener_(
std::move(listener)), protocol_(protocol), limits_(limits) {}
83 TcpListener listener_;
Native HTTP client over the existing worker-owned TCP runtime.
Definition http.h:16
static absl::StatusOr< std::unique_ptr< http::Connection > > ConnectHost(std::string_view hostname, std::uint16_t port, http::RequestHead request, absl::Time deadline=absl::InfiniteFuture(), http::Protocol protocol=http::Protocol::kHttp11, http::Limits limits={}, std::optional< std::size_t > body_length=0)
Definition http.h:18
static absl::StatusOr< std::unique_ptr< http::Connection > > ConnectIpv4(std::array< std::uint8_t, 4 > address, std::uint16_t port, http::RequestHead request, http::Protocol protocol=http::Protocol::kHttp11, absl::Time deadline=absl::InfiniteFuture(), http::Limits limits={}, std::optional< std::size_t > body_length=0)
Definition http.h:35
Native bounded HTTP listener; each accepted exchange owns its socket.
Definition http.h:55
absl::StatusOr< std::unique_ptr< http::Connection > > Accept(absl::Time deadline)
Definition http.h:68
static absl::StatusOr< HttpServer > ListenIpv4(std::array< std::uint8_t, 4 > address, std::uint16_t port, http::Protocol protocol=http::Protocol::kHttp11, http::Limits limits={})
Definition http.h:57
static absl::StatusOr< TcpClient > ConnectIpv4(std::array< std::uint8_t, 4 > address, std::uint16_t port, absl::Time deadline=absl::InfiniteFuture())
Connect to four IPv4 octets by an absolute deadline.
Definition tcp_client.cc:25
static absl::StatusOr< TcpClient > ConnectHost(std::string_view hostname, std::uint16_t port, absl::Time deadline=absl::InfiniteFuture())
Resolve an ASCII DNS hostname and connect by one deadline.
Definition tcp_client.cc:44
One bounded IPv4 listener backed by Symbian RSocket.
Definition tcp_listener.h:28
static absl::StatusOr< TcpListener > ListenIpv4(std::array< std::uint8_t, 4 > address, std::uint16_t port)
Bind and listen on an explicit four-octet IPv4 address.
Definition tcp_listener.cc:15
absl::StatusOr< TcpClient > Accept(absl::Time deadline=absl::InfiniteFuture())
Wait for one incoming stream until an absolute deadline.
Definition tcp_listener.cc:47
static absl::StatusOr< std::unique_ptr< Connection > > Client(std::unique_ptr< net::ByteStream > transport, RequestHead request, Protocol protocol=Protocol::kHttp11, Limits limits={}, std::optional< std::size_t > body_length=0, absl::Time deadline=absl::InfiniteFuture())
Definition connection.cc:140
static absl::StatusOr< std::unique_ptr< Connection > > Accept(std::unique_ptr< net::ByteStream > transport, Protocol protocol=Protocol::kHttp11, Limits limits={}, absl::Time deadline=absl::InfiniteFuture())
Definition connection.cc:186
Definition exception_count.cc:8
Definition active_tcp_listener.cc:11
Protocol
Definition connection.h:12
uint32_t address
Definition exports.cc:69
std::string scheme
Definition types.h:20