concurrencpp 换成asio协程
This commit is contained in:
@@ -17,15 +17,15 @@ public:
|
||||
BIN_Msg_Buffer msg_buffer{};
|
||||
Output_Format output_format;
|
||||
Frequency_Limit_Multi sbs_flm{};
|
||||
concurrencpp::result<void> loop_coro() final;
|
||||
asio::awaitable<void> loop_coro() final;
|
||||
virtual void handle_in_loop() {}
|
||||
|
||||
virtual concurrencpp::result<void> handle_in_loop_coro() {
|
||||
virtual asio::awaitable<void> handle_in_loop_coro() {
|
||||
handle_in_loop();
|
||||
co_return;
|
||||
}
|
||||
|
||||
virtual concurrencpp::result<void> send_coro(const std::string&) {
|
||||
virtual asio::awaitable<void> send_coro(const std::string&) {
|
||||
co_return;
|
||||
}
|
||||
|
||||
@@ -83,13 +83,13 @@ public:
|
||||
|
||||
~Data_Feed_TCP_Server() override = default;
|
||||
|
||||
concurrencpp::result<void> handle_in_loop_coro() override {
|
||||
asio::awaitable<void> handle_in_loop_coro() override {
|
||||
co_await svr.flush_clients_coro();
|
||||
co_await svr.tick_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> send_coro(const std::string& data) override {
|
||||
asio::awaitable<void> send_coro(const std::string& data) override {
|
||||
co_await svr.write_to_all_clients_coro(data);
|
||||
co_return;
|
||||
}
|
||||
@@ -105,12 +105,12 @@ public:
|
||||
return ret;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
co_await svr.close_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _open() override {
|
||||
asio::awaitable<void> _open() override {
|
||||
svr.set_connect_user_buffer_size(connect_user_buffer_size);
|
||||
svr.set_connect_system_buffer_size(connect_system_buffer_size);
|
||||
svr.set_tcp_no_delay(false);
|
||||
@@ -157,12 +157,12 @@ public:
|
||||
};
|
||||
class Data_Feed_TCP_Client : public Data_Feed, public Data_Feed_TCP_Client_Data {
|
||||
public:
|
||||
concurrencpp::result<void> handle_in_loop_coro() override {
|
||||
asio::awaitable<void> handle_in_loop_coro() override {
|
||||
co_await cli.tick_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> send_coro(const std::string& data) override {
|
||||
asio::awaitable<void> send_coro(const std::string& data) override {
|
||||
co_await cli.send_coro(data);
|
||||
co_return;
|
||||
}
|
||||
@@ -178,12 +178,12 @@ public:
|
||||
Psc::asio_socket::TCP_Client_Coro cli;
|
||||
~Data_Feed_TCP_Client() override = default;
|
||||
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
co_await cli.close_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _open() override {
|
||||
asio::awaitable<void> _open() override {
|
||||
Psc::asio_socket::Sockaddr_In sockaddr_in;
|
||||
sockaddr_in.ip = url;
|
||||
sockaddr_in.port = port;
|
||||
@@ -216,8 +216,8 @@ public:
|
||||
|
||||
Data_Feed_UDP_Server() = default;
|
||||
~Data_Feed_UDP_Server() override = default;
|
||||
concurrencpp::result<void> handle_in_loop_coro() override;
|
||||
concurrencpp::result<void> send_coro(const std::string& data) override;
|
||||
asio::awaitable<void> handle_in_loop_coro() override;
|
||||
asio::awaitable<void> send_coro(const std::string& data) override;
|
||||
|
||||
[[nodiscard]] Psc::JSON get_clients_json() const {
|
||||
Psc::JSON ret = Psc::JSON::array();
|
||||
@@ -239,12 +239,12 @@ public:
|
||||
return Data_Feed::to_json() += Data_Feed_UDP_Server_Data::to_base_json();
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
co_await svr.close_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _open() override;
|
||||
asio::awaitable<void> _open() override;
|
||||
Psc::asio_socket::UDP_Server_Coro svr;
|
||||
};
|
||||
class Data_Feed_UDP_Client_Data {
|
||||
@@ -263,12 +263,12 @@ public:
|
||||
return VAR_JSON_1(state);
|
||||
}
|
||||
|
||||
concurrencpp::result<void> handle_in_loop_coro() override {
|
||||
asio::awaitable<void> handle_in_loop_coro() override {
|
||||
co_await cli.tick_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> send_coro(const std::string& data) override {
|
||||
asio::awaitable<void> send_coro(const std::string& data) override {
|
||||
co_await cli.send_coro(data);
|
||||
co_return;
|
||||
}
|
||||
@@ -284,14 +284,14 @@ public:
|
||||
return Data_Feed::to_json() += Data_Feed_UDP_Client_Data::to_base_json();
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
std::cout << "udp client target address:" << cli.dest_address.to_string()
|
||||
<< " closed" << std::endl;
|
||||
co_await cli.close_coro();
|
||||
co_return;
|
||||
}
|
||||
|
||||
concurrencpp::result<void> _open() override {
|
||||
asio::awaitable<void> _open() override {
|
||||
cli.create();
|
||||
cli.set_dest_address(url, port);
|
||||
co_await cli.connect_coro();
|
||||
|
||||
Reference in New Issue
Block a user