#include <userver/engine/io/tls_wrapper.hpp>
|
| TlsWrapper (const TlsWrapper &)=delete |
|
| TlsWrapper (TlsWrapper &&) noexcept |
|
| operator bool () const |
| Whether the socket is valid.
|
|
bool | IsValid () const override |
| Whether the socket is valid.
|
|
bool | WaitReadable (Deadline) override |
| Suspends current task until the socket has data available.
|
|
bool | WaitWriteable (Deadline) override |
| Suspends current task until the socket can accept more data.
|
|
size_t | RecvSome (void *buf, size_t len, Deadline deadline) |
| Receives at least one byte from the socket.
|
|
size_t | RecvAll (void *buf, size_t len, Deadline deadline) |
| Receives exactly len bytes from the socket.
|
|
size_t | SendAll (const void *buf, size_t len, Deadline deadline) |
| Sends exactly len bytes to the socket.
|
|
Socket | StopTls (Deadline deadline) |
| Finishes TLS session and returns the socket.
|
|
size_t | ReadSome (void *buf, size_t len, Deadline deadline) override |
| Receives at least one byte from the socket.
|
|
size_t | ReadAll (void *buf, size_t len, Deadline deadline) override |
| Receives exactly len bytes from the socket.
|
|
size_t | WriteAll (const void *buf, size_t len, Deadline deadline) override |
| Writes exactly len bytes to the socket.
|
|
int | GetRawFd () |
|
virtual size_t | WriteAll (std::initializer_list< IoData > list, Deadline deadline) |
|
Class for TLS communications over a Socket.
Not thread safe.
Usage example:
TcpListener tcp_listener;
auto [server, client] = tcp_listener.MakeSocketPair(deadline);
"tls-server",
[deadline](auto&& server) {
std::forward<decltype(server)>(server),
if (tls_server.SendAll(kData.data(), kData.size(), deadline) !=
kData.size()) {
throw std::runtime_error("Couldn't send data");
}
},
std::move(server));
auto tls_client =
std::vector<char> buffer(kData.size());
const auto bytes_rcvd =
tls_client.RecvAll(buffer.data(), buffer.size(), deadline);
Definition at line 26 of file tls_wrapper.hpp.
◆ IsValid()
bool engine::io::TlsWrapper::IsValid |
( |
| ) |
const |
|
overridevirtual |
◆ operator bool()
engine::io::TlsWrapper::operator bool |
( |
| ) |
const |
|
inlineexplicit |
◆ ReadAll()
size_t engine::io::TlsWrapper::ReadAll |
( |
void * |
buf, |
|
|
size_t |
len, |
|
|
Deadline |
deadline |
|
) |
| |
|
inlineoverridevirtual |
◆ ReadSome()
size_t engine::io::TlsWrapper::ReadSome |
( |
void * |
buf, |
|
|
size_t |
len, |
|
|
Deadline |
deadline |
|
) |
| |
|
inlineoverridevirtual |
Receives at least one byte from the socket.
- Returns
- 0 if connection is closed on one side and no data could be received any more, received bytes count otherwise.
Implements engine::io::ReadableBase.
Definition at line 77 of file tls_wrapper.hpp.
◆ RecvAll()
size_t engine::io::TlsWrapper::RecvAll |
( |
void * |
buf, |
|
|
size_t |
len, |
|
|
Deadline |
deadline |
|
) |
| |
Receives exactly len bytes from the socket.
- Note
- Can return less than len if socket is closed by peer.
◆ RecvSome()
size_t engine::io::TlsWrapper::RecvSome |
( |
void * |
buf, |
|
|
size_t |
len, |
|
|
Deadline |
deadline |
|
) |
| |
Receives at least one byte from the socket.
- Returns
- 0 if connection is closed on one side and no data could be received any more, received bytes count otherwise.
◆ SendAll()
size_t engine::io::TlsWrapper::SendAll |
( |
const void * |
buf, |
|
|
size_t |
len, |
|
|
Deadline |
deadline |
|
) |
| |
Sends exactly len bytes to the socket.
- Note
- Can return less than len if socket is closed by peer.
◆ StopTls()
Finishes TLS session and returns the socket.
- Warning
- Wrapper becomes invalid on entry and can only be used to retry socket extraction if interrupted.
◆ WaitReadable()
bool engine::io::TlsWrapper::WaitReadable |
( |
Deadline |
| ) |
|
|
overridevirtual |
◆ WaitWriteable()
bool engine::io::TlsWrapper::WaitWriteable |
( |
Deadline |
| ) |
|
|
overridevirtual |
◆ WriteAll()
size_t engine::io::TlsWrapper::WriteAll |
( |
const void * |
buf, |
|
|
size_t |
len, |
|
|
Deadline |
deadline |
|
) |
| |
|
inlineoverridevirtual |
The documentation for this class was generated from the following file: