From 45dc48721e595abdd619b87b69903e5d47a48d1c Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 6 Jun 2019 08:41:19 +0200 Subject: [PATCH] server --- tests/src/testclient.cpp | 17 ++++++++++++----- tests/src/testserver.cpp | 36 ++++++++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/tests/src/testclient.cpp b/tests/src/testclient.cpp index 3d75b4c5e..3af6bf6cc 100644 --- a/tests/src/testclient.cpp +++ b/tests/src/testclient.cpp @@ -1,10 +1,11 @@ #include "ClientSocket.h" #include "clara.hpp" +#include "tests/testenum.h" #include #include "container_utils.h" -constexpr size_t MB = 1048576; + int main(int argc, char** argv) { std::cout << "Test client\n"; @@ -22,15 +23,21 @@ int main(int argc, char** argv) { } std::cout << "Sending to: " << hostname << ":" << port << "\n"; - constexpr size_t size = 1*MB; - auto data = sls::make_unique(size); + + auto data = sls::make_unique(DATA_SIZE); - for (int64_t i = 0; i!=10; ++i){ + for (int64_t i = 0; i!=50; ++i){ std::cout << "Sending: " << i << "\n"; auto socket = sls::ClientSocket("test", hostname, port); + std::cout << "Sent: " << socket.sendData(func_id::read_int) << " bytes\n"; std::cout << "Sent: " << socket.sendData(i) << " bytes\n"; - std::cout << "Sent: " << socket.sendData(data.get(), size) << " bytes\n"; + } + for (int64_t i = 0; i!=5; ++i){ + std::cout << "Sending data\n"; + auto socket = sls::ClientSocket("test", hostname, port); + std::cout << "Sent: " << socket.sendData(func_id::read_data) << " bytes\n"; + std::cout << "Sent: " << socket.sendData(data.get(), DATA_SIZE) << " bytes\n"; } diff --git a/tests/src/testserver.cpp b/tests/src/testserver.cpp index edc5e0201..faca2cda3 100644 --- a/tests/src/testserver.cpp +++ b/tests/src/testserver.cpp @@ -1,10 +1,31 @@ #include "ServerSocket.h" #include "clara.hpp" -#include -#include "container_utils.h" +#include "tests/testenum.h" -constexpr size_t MB = 1048576; +#include "container_utils.h" +#include +#include + + +using Interface = sls::ServerInterface2; +using func_ptr = int (*)(Interface &); + +int read_data(Interface &socket) { + auto data = sls::make_unique(DATA_SIZE); + std::cout << "Read: " << socket.receiveData(data.get(), DATA_SIZE) + << " bytes into buffer\n"; + return 0; +} + +int read_int(Interface &socket) { + auto i = socket.receive(); + std::cout << "Read : " << i << "\n"; + return 0; +} + +static std::unordered_map fmap{ + {func_id::read_data, &read_data}, {func_id::read_int, &read_int}}; int main(int argc, char **argv) { std::cout << "Test server\n"; @@ -20,14 +41,13 @@ int main(int argc, char **argv) { std::cout << "Listening to port: " << port << "\n"; auto server = sls::ServerSocket(port); - auto data = sls::make_unique(1*MB); - while (true) { try { auto socket = server.accept(); - auto val = socket.receive(); - std::cout << "Value: " << val << "\n"; - std::cout << "Read: " << socket.receiveData(data.get(), 1*MB) << " bytes"; + auto fnum = socket.receive(); + std::cout << "Calling func: " << (int)fnum << "\n"; + auto ret = (*fmap[fnum])(socket); + // std::cout << "function returned: " << ret << "\n"; } catch (const sls::RuntimeError &e) { }