MCPcopy Create free account
hub / github.com/boostorg/asio / proxy

Function proxy

example/cpp20/channels/throttling_proxy.cpp:63–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63awaitable<void> proxy(tcp::socket client, tcp::endpoint target)
64{
65 constexpr std::size_t number_of_tokens = 100;
66 constexpr size_t bytes_per_token = 20 * 1024;
67 constexpr steady_timer::duration token_interval = 100ms;
68
69 auto ex = client.get_executor();
70 tcp::socket server(ex);
71 token_channel client_tokens(ex, number_of_tokens);
72 token_channel server_tokens(ex, number_of_tokens);
73
74 co_await server.async_connect(target);
75 co_await (
76 produce_tokens(bytes_per_token, token_interval, client_tokens) &&
77 transfer(client, server, client_tokens) &&
78 produce_tokens(bytes_per_token, token_interval, server_tokens) &&
79 transfer(server, client, server_tokens)
80 );
81}
82
83awaitable<void> listen(tcp::acceptor& acceptor, tcp::endpoint target)
84{

Callers 1

listenFunction · 0.70

Calls 4

produce_tokensFunction · 0.85
transferFunction · 0.85
get_executorMethod · 0.45
async_connectMethod · 0.45

Tested by

no test coverage detected