From cb90e7a06e878afc1810bb4d328e99a3e8737161 Mon Sep 17 00:00:00 2001
From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net>
Date: Fri, 21 Aug 2020 16:08:42 +0700
Subject: [PATCH] [+] Some useful defines

---
 dap-sdk/net/core/include/dap_events_socket.h | 36 ++++++++++++++++----
 1 file changed, 29 insertions(+), 7 deletions(-)

diff --git a/dap-sdk/net/core/include/dap_events_socket.h b/dap-sdk/net/core/include/dap_events_socket.h
index 9ed2aa329b..840f83eebb 100644
--- a/dap-sdk/net/core/include/dap_events_socket.h
+++ b/dap-sdk/net/core/include/dap_events_socket.h
@@ -22,18 +22,12 @@
     along with any DAP based project.  If not, see <http://www.gnu.org/licenses/>.
 */
 #pragma once
-
 #include <stdint.h>
 #include <stddef.h>
 #include <stdbool.h>
 #include <stdatomic.h>
-#include "uthash.h"
-#ifndef _WIN32
-#include <sys/epoll.h>
-#else
-#include "wepoll.h"
-#endif
 #include <pthread.h>
+#include "uthash.h"
 
 // Caps for different platforms
 #if defined(DAP_OS_LINUX)
@@ -43,9 +37,16 @@
     #define DAP_EVENTS_CAPS_POLL
     #define DAP_EVENTS_CAPS_EVENT_PIPE
 #elif defined (DAP_OS_WINDOWS)
+    #define DAP_EVENTS_CAPS_WEPOLL
     #define DAP_EVENTS_CAPS_EVENT_PIPE
 #endif
 
+#if defined(DAP_EVENTS_CAPS_EPOLL)
+#include <sys/epoll.h>
+#elif defined (DAP_EVENTS_CAPS_WEPOLL)
+#include "wepoll.h"
+#endif
+
 typedef struct dap_events dap_events_t;
 typedef struct dap_events_socket dap_events_socket_t;
 typedef struct dap_worker dap_worker_t;
@@ -143,6 +144,12 @@ void dap_events_socket_deinit(); // Deinit clients module
 void dap_events_socket_create_after(dap_events_socket_t * a_es);
 
 dap_events_socket_t * dap_events_socket_create_type_event(dap_worker_t * a_w, dap_events_socket_callback_t a_callback);
+inline dap_events_socket_t * dap_events_socket_send_event( dap_events_socket_t * a_es)
+{
+#if defined(DAP_EVENTS_CAPS_EPOLL) && defined(DAP_EVENTS_CAPS_EVENT_EVENTFD)
+    events
+#endif
+}
 
 dap_events_socket_t * dap_events_socket_wrap_no_add(struct dap_events * a_events,
                                             int s, dap_events_socket_callbacks_t * a_callbacks); // Create new client and add it to the list
@@ -150,6 +157,7 @@ dap_events_socket_t * dap_events_socket_wrap_no_add(struct dap_events * a_events
 
 dap_events_socket_t * dap_events_socket_find(int sock, struct dap_events * sh); // Find client by socket
 
+// Non-MT functions
 bool dap_events_socket_is_ready_to_read(dap_events_socket_t * sc);
 bool dap_events_socket_is_ready_to_write(dap_events_socket_t * sc);
 void dap_events_socket_set_readable(dap_events_socket_t * sc,bool is_ready);
@@ -159,6 +167,20 @@ size_t dap_events_socket_write(dap_events_socket_t *sc, const void * data, size_
 size_t dap_events_socket_write_f(dap_events_socket_t *sc, const char * format,...);
 size_t dap_events_socket_read(dap_events_socket_t *sc, void * data, size_t data_size);
 
+// MT variants less
+bool dap_events_socket_is_ready_to_read_mt(dap_events_socket_t * sc);
+bool dap_events_socket_is_ready_to_write_mt(dap_events_socket_t * sc);
+void dap_events_socket_set_readable_mt(dap_events_socket_t * sc,bool is_ready);
+void dap_events_socket_set_writable_mt(dap_events_socket_t * sc,bool is_ready);
+
+size_t dap_events_socket_write_mt(dap_events_socket_t *sc, const void * data, size_t data_size);
+size_t dap_events_socket_write_f_mt(dap_events_socket_t *sc, const char * format,...);
+size_t dap_events_socket_read_mt(dap_events_socket_t *sc, void * data, size_t data_size);
+
+size_t dap_events_socket_write_mt(dap_events_socket_t *sc, const void * data, size_t data_size);
+size_t dap_events_socket_write_f_mt(dap_events_socket_t *sc, const char * format,...);
+
+
 void dap_events_socket_remove( dap_events_socket_t *a_es);
 void dap_events_socket_delete(dap_events_socket_t *sc,bool preserve_inheritor); // Removes the client from the list
 void dap_events_socket_remove_and_delete(dap_events_socket_t* a_es, bool preserve_inheritor );
-- 
GitLab