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