From e08520a0da5fb78b5438c534ebebce6476bd3195 Mon Sep 17 00:00:00 2001 From: Doralitze <doralitze@chaotikum.org> Date: Sat, 2 Jan 2021 20:32:08 +0100 Subject: [PATCH] upd: This may or may not work please check --- po/lang/de/rmrf.po | 4 ++-- po/lang/en/rmrf.po | 4 ++-- po/tpl/rmrf.pot | 4 ++-- src/app/rmrf.cpp | 3 +++ src/net/async_server.cpp | 47 ++++++++++++++++++++++++++++++++++++++++ src/net/async_server.hpp | 2 ++ 6 files changed, 58 insertions(+), 6 deletions(-) create mode 100644 src/net/async_server.cpp diff --git a/po/lang/de/rmrf.po b/po/lang/de/rmrf.po index f50b152..b5af550 100644 --- a/po/lang/de/rmrf.po +++ b/po/lang/de/rmrf.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: rmrf 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-09 17:18+0100\n" +"POT-Creation-Date: 2021-01-01 19:08+0100\n" "PO-Revision-Date: 2019-09-29 02:22+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -21,6 +21,6 @@ msgstr "" msgid "Detected key: %8x (ct=%i)" msgstr "Erkannte Taste: %8x (ct=%i" -#: src/app/rmrf.cpp:24 +#: src/app/rmrf.cpp:27 msgid "Starting RMRF…" msgstr "Starte RMRF…" diff --git a/po/lang/en/rmrf.po b/po/lang/en/rmrf.po index 97ca3fa..cba055e 100644 --- a/po/lang/en/rmrf.po +++ b/po/lang/en/rmrf.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: rmrf 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-09 17:18+0100\n" +"POT-Creation-Date: 2021-01-01 19:08+0100\n" "PO-Revision-Date: 2019-09-29 02:22+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -21,6 +21,6 @@ msgstr "" msgid "Detected key: %8x (ct=%i)" msgstr "" -#: src/app/rmrf.cpp:24 +#: src/app/rmrf.cpp:27 msgid "Starting RMRF…" msgstr "" diff --git a/po/tpl/rmrf.pot b/po/tpl/rmrf.pot index c06700a..63ece2e 100644 --- a/po/tpl/rmrf.pot +++ b/po/tpl/rmrf.pot @@ -6,7 +6,7 @@ msgid "" msgstr "Project-Id-Version: rmrf 0.1\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2019-11-09 17:18+0100\n" + "POT-Creation-Date: 2021-01-02 20:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,6 +20,6 @@ msgstr "Project-Id-Version: rmrf 0.1\n" msgid "Detected key: %8x (ct=%i)" msgstr "" -#: src/app/rmrf.cpp:24 +#: src/app/rmrf.cpp:27 msgid "Starting RMRF…" msgstr "" diff --git a/src/app/rmrf.cpp b/src/app/rmrf.cpp index 745ded7..a7f2b3a 100644 --- a/src/app/rmrf.cpp +++ b/src/app/rmrf.cpp @@ -8,9 +8,12 @@ #include "ui/view.hpp" +#include <iostream> + int main() { using rmrf::ui::display; + std::cout << "Hallo" << std::endl; setlocale(LC_ALL, ""); bindtextdomain("rmrf", "/usr/share/locale"); textdomain("rmrf"); diff --git a/src/net/async_server.cpp b/src/net/async_server.cpp new file mode 100644 index 0000000..94b3098 --- /dev/null +++ b/src/net/async_server.cpp @@ -0,0 +1,47 @@ +/* + * async_server.cpp + * + * Created on: 02.01.2021 + * Author: doralitze + */ +#include <ev++.h> +#include <utility> + +#include "async_server.hpp" + + +namespace rmrf::net::asio { + +async_server_socket::async_server_socket(auto_fd&& socket_fd) : socket(std::forward(socket_fd)) { + // This constructor got a constructed socket as an argument + // and forwards it to libev + io.set<async_server_socket, &async_server_socket::cb_ev>(this); + io.start(this->socket, ev::READ); +} + +async_server_socket::~async_server_socket() { + // Remove this socket from libev ... + io.stop(); +} + +void async_server_socket::cb_ev(::ev::io &w, int events) { + (void) w; + + if (events & ::ev::READ) { + // Handle incoming clients + auto ah = this->get_accept_handler(); + } + + if (events & ::ev::WRITE) { + // Handle sending data which should be none here + } + + if (events & ::ev::ERROR) { + // Handle errors + // Rebind socket if missed iov res else + // Log and throw? + } +} + +} + diff --git a/src/net/async_server.hpp b/src/net/async_server.hpp index 8485ee5..2a3c789 100644 --- a/src/net/async_server.hpp +++ b/src/net/async_server.hpp @@ -37,6 +37,8 @@ public: } public: + void cb_ev(::ev::io &w, int events); + accept_handler_type get_accept_handler() const { return on_accept; } -- GitLab