summaryrefslogtreecommitdiff
path: root/modules/io
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2024-05-21 12:13:10 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2024-05-21 12:13:10 +0200
commit875ce0328d1d919d639797972e4cf60c6715503f (patch)
treef4e91df4545578ca45861d2341a6e89109cca92c /modules/io
parentaf665edfa776fe27221ae357f356f428390b0a0d (diff)
Fixing up echo builders and names
Diffstat (limited to 'modules/io')
-rw-r--r--modules/io/examples/echo.hpp14
-rw-r--r--modules/io/examples/echo_client.cpp4
-rw-r--r--modules/io/examples/echo_server.cpp15
3 files changed, 22 insertions, 11 deletions
diff --git a/modules/io/examples/echo.hpp b/modules/io/examples/echo.hpp
index 4eb8084..84416b9 100644
--- a/modules/io/examples/echo.hpp
+++ b/modules/io/examples/echo.hpp
@@ -1,9 +1,15 @@
#pragma once
+#include <string>
+#include <cstdint>
+
+namespace saw {
struct message {
- std::array<uint8_t, 256> data;
- uint64_t already_read = 0;
- uint64_t already_written = 0;
+ std::array<uint8_t, 256> data;
+ uint64_t already_read = 0;
+ uint64_t already_written = 0;
};
-constexpr std::string_view message_content = "Hello! This is an echo msg.";
+constexpr std::string echo_address = "::1";
+constexpr uint16_t echo_port = 4322;
+}
diff --git a/modules/io/examples/echo_client.cpp b/modules/io/examples/echo_client.cpp
index 53ebe54..4b95158 100644
--- a/modules/io/examples/echo_client.cpp
+++ b/modules/io/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));
@@ -43,6 +43,8 @@ int main(){
async_rmt->read(&read_data[0], 3, read_data.size()-1);
async_rmt->read_done().then([&](size_t b){
+
+ std::cout<<"Received bytes:\n"<<std::endl;
for(uint64_t i = 0; i < b; ++i){
std::cout<<static_cast<char>(read_data[i]);
}
diff --git a/modules/io/examples/echo_server.cpp b/modules/io/examples/echo_server.cpp
index 50863db..aa052a0 100644
--- a/modules/io/examples/echo_server.cpp
+++ b/modules/io/examples/echo_server.cpp
@@ -4,7 +4,7 @@
#include "echo.hpp"
-saw::error_or<void> handle_echo_write(saw::io_stream& rmt_clt, message& state, uint64_t tbw){
+saw::error_or<void> handle_echo_write(saw::io_stream& rmt_clt, saw::message& state, uint64_t tbw){
auto eov = rmt_clt.write(&state.data[state.already_written], tbw);
if(eov.is_error()){
return std::move(eov.get_error());
@@ -19,7 +19,7 @@ saw::error_or<void> handle_echo_write(saw::io_stream& rmt_clt, message& state, u
return saw::void_t{};
}
-void handle_echo_message(saw::io_stream& rmt_clt, bool& keep_running, message& state){
+void handle_echo_message(saw::io_stream& rmt_clt, bool& keep_running, saw::message& state){
rmt_clt.read_ready().then([&](){
for(;;){
uint64_t tbr = state.data.size() < state.already_read ? 0: state.data.size() - state.already_read;
@@ -37,7 +37,10 @@ void handle_echo_message(saw::io_stream& rmt_clt, bool& keep_running, message& s
break;
}
}
- auto read_bytes = eov.get_value();
+ auto& read_bytes = eov.get_value();
+
+ std::cout<<"Read "<<read_bytes<<" bytes"<<std::endl;
+
if(read_bytes == 0u){
exit(-1);
}
@@ -53,7 +56,7 @@ void handle_echo_message(saw::io_stream& rmt_clt, bool& keep_running, message& s
if(eov.is_error()){
auto& err = eov.get_error();
if(err.is_critical()){
- std::cerr<<err.get_category()<<std::endl;
+ std::cerr<<"After triggered write: "<<err.get_category()<<std::endl;
exit(err.get_id());
}else {
break;
@@ -114,13 +117,13 @@ int main(){
saw::own<saw::server> srv = nullptr;
saw::own<saw::io_stream> remote_client = nullptr;
- message msg_state;
+ saw::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);