diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-05-14 14:48:11 +0200 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-05-14 14:48:11 +0200 |
commit | 32b2517187efd8f434008fbb43924af703c84740 (patch) | |
tree | 8be0acfc5959478f150eb6a8f15b904ec67440a8 /modules/io_codec | |
parent | 51dee3ca45265e905b65be85d078d20e68b4072b (diff) |
Further advancement of peer examples
Diffstat (limited to 'modules/io_codec')
-rw-r--r-- | modules/io_codec/examples/echo.hpp | 5 | ||||
-rw-r--r-- | modules/io_codec/examples/echo_client.cpp | 2 | ||||
-rw-r--r-- | modules/io_codec/examples/echo_server.cpp | 4 | ||||
-rw-r--r-- | modules/io_codec/examples/peer_echo_server.cpp | 26 |
4 files changed, 34 insertions, 3 deletions
diff --git a/modules/io_codec/examples/echo.hpp b/modules/io_codec/examples/echo.hpp index 7a1c6ab..71be1a0 100644 --- a/modules/io_codec/examples/echo.hpp +++ b/modules/io_codec/examples/echo.hpp @@ -1,4 +1,9 @@ #pragma once +#include <string> +#include <cstdint> + namespace saw { +constexpr std::string echo_address = "::1"; +constexpr uint16_t echo_port = 4322; } diff --git a/modules/io_codec/examples/echo_client.cpp b/modules/io_codec/examples/echo_client.cpp index 54f82a9..a9fe2db 100644 --- a/modules/io_codec/examples/echo_client.cpp +++ b/modules/io_codec/examples/echo_client.cpp @@ -34,7 +34,7 @@ int main(){ std::array<uint8_t, 32> read_data; uint64_t read_bytes = 0; auto& network = aio.io->get_network(); - network.resolve_address("127.0.0.1", 4322).then([&](auto addr){ + network.resolve_address(saw::echo_address, saw::echo_port).then([&](auto addr){ net_addr = std::move(addr); network.connect(*net_addr).then([&](auto rmt_srv){ async_rmt = saw::heap<saw::async_io_stream>(std::move(rmt_srv)); diff --git a/modules/io_codec/examples/echo_server.cpp b/modules/io_codec/examples/echo_server.cpp index f7f833f..54c4d55 100644 --- a/modules/io_codec/examples/echo_server.cpp +++ b/modules/io_codec/examples/echo_server.cpp @@ -114,13 +114,13 @@ int main(){ saw::own<saw::server> srv = nullptr; saw::own<saw::io_stream> remote_client = nullptr; - message msg_state; + // message msg_state; std::cout<<"Starting to resolve address"<<std::endl; /** * Try to resolve address. If resolved */ - network.resolve_address("127.0.0.1", 4322).then([&](auto net_addr){ + network.resolve_address(saw::echo_address, saw::echo_port).then([&](auto net_addr){ std::cout<<"Resolved address"<<std::endl; addr = std::move(net_addr); srv = network.listen(*addr); diff --git a/modules/io_codec/examples/peer_echo_server.cpp b/modules/io_codec/examples/peer_echo_server.cpp new file mode 100644 index 0000000..586202a --- /dev/null +++ b/modules/io_codec/examples/peer_echo_server.cpp @@ -0,0 +1,26 @@ +#include "echo.hpp" + +#include "../c++/io_peer.hpp" + +int main(){ + auto eo_aio = saw::setup_async_io(); + if(eo_aio.is_error()){ + auto& err = eo_aio.get_error(); + std::cerr<<err.get_message()<<std::endl; + return err.get_id(); + } + auto& aio = eo_aio.get_value(); + /** + * Make the event loop the current event loop on this thread + */ + saw::wait_scope wait_scope{aio.event_loop}; + + bool keep_running = true; + aio.event_port.on_signal(saw::Signal::Terminate).then([&keep_running](){ + keep_running = false; + }).detach(); + + auto& network = aio.io->get_network(); + + return 0; +} |