From 0d249a72a4a740bb41e2a265ee0d6de0a8c110e1 Mon Sep 17 00:00:00 2001 From: "Ivan I. Ovchinnikov" Date: Thu, 28 May 2026 22:17:40 +0300 Subject: [PATCH] initial + started --- .idea/.gitignore | 10 + .idea/Network.iml | 2 + .idea/editor.xml | 345 ++++++++++++++++++ .idea/misc.xml | 7 + .idea/modules.xml | 8 + CMakeLists.txt | 11 + .../network/server_socket/ServerSocket.h | 6 + .../server_socket/ServerSocketWrapper.h | 8 + .../network/server_socket/ServerSocket.cpp | 7 + .../server_socket/ServerSocketListener.h | 35 ++ .../server_socket/ServerSocketWrapper.cpp | 3 + 11 files changed, 442 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/Network.iml create mode 100644 .idea/editor.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 CMakeLists.txt create mode 100644 include/iovi_space/network/server_socket/ServerSocket.h create mode 100644 include/iovi_space/network/server_socket/ServerSocketWrapper.h create mode 100644 src/iovi_space/network/server_socket/ServerSocket.cpp create mode 100644 src/iovi_space/network/server_socket/ServerSocketListener.h create mode 100644 src/iovi_space/network/server_socket/ServerSocketWrapper.cpp diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Network.iml b/.idea/Network.iml new file mode 100644 index 0000000..4c94235 --- /dev/null +++ b/.idea/Network.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/.idea/editor.xml b/.idea/editor.xml new file mode 100644 index 0000000..8d0e15e --- /dev/null +++ b/.idea/editor.xml @@ -0,0 +1,345 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0b76fe5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d8785aa --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..eb374db --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 4.1) +project(Network) + +set(CMAKE_CXX_STANDARD 20) + +add_library(Network STATIC + src/iovi_space/network/server_socket/ServerSocket.cpp + include/iovi_space/network/server_socket/ServerSocket.h + include/iovi_space/network/server_socket/ServerSocketWrapper.h + src/iovi_space/network/server_socket/ServerSocketWrapper.cpp + src/iovi_space/network/server_socket/ServerSocketListener.h) diff --git a/include/iovi_space/network/server_socket/ServerSocket.h b/include/iovi_space/network/server_socket/ServerSocket.h new file mode 100644 index 0000000..6cd641e --- /dev/null +++ b/include/iovi_space/network/server_socket/ServerSocket.h @@ -0,0 +1,6 @@ +#ifndef NETWORK_LIBRARY_H +#define NETWORK_LIBRARY_H + +void hello(); + +#endif // NETWORK_LIBRARY_H \ No newline at end of file diff --git a/include/iovi_space/network/server_socket/ServerSocketWrapper.h b/include/iovi_space/network/server_socket/ServerSocketWrapper.h new file mode 100644 index 0000000..3f55018 --- /dev/null +++ b/include/iovi_space/network/server_socket/ServerSocketWrapper.h @@ -0,0 +1,8 @@ +// +// Created by ovchinnikov-ii on 5/28/26. +// + +#ifndef NETWORK_SERVERSOCKETWRAPPER_H +#define NETWORK_SERVERSOCKETWRAPPER_H + +#endif //NETWORK_SERVERSOCKETWRAPPER_H \ No newline at end of file diff --git a/src/iovi_space/network/server_socket/ServerSocket.cpp b/src/iovi_space/network/server_socket/ServerSocket.cpp new file mode 100644 index 0000000..6cb37f1 --- /dev/null +++ b/src/iovi_space/network/server_socket/ServerSocket.cpp @@ -0,0 +1,7 @@ +#include "../../../../include/iovi_space/network/server_socket/ServerSocket.h" + +#include + +void hello() { + std::cout << "Hello, World!" << std::endl; +} \ No newline at end of file diff --git a/src/iovi_space/network/server_socket/ServerSocketListener.h b/src/iovi_space/network/server_socket/ServerSocketListener.h new file mode 100644 index 0000000..6919b3e --- /dev/null +++ b/src/iovi_space/network/server_socket/ServerSocketListener.h @@ -0,0 +1,35 @@ +// +// Created by ovchinnikov-ii on 5/28/26. +// + +#ifndef NETWORK_SERVERSOCKETLISTENER_H +#define NETWORK_SERVERSOCKETLISTENER_H + +#include +#include + +namespace iovi_space::network { + + // Forward declaration + class ServerSocket; + class SocketWrapper; + + /** + * @brief Абстрактный интерфейс слушателя событий сервера. + * Аналог Java ServerSocketThreadListener. + */ + class ServerSocketListener { + public: + virtual ~ServerSocketListener() = default; + + virtual void onServerStart(ServerSocket* server) = 0; + virtual void onServerStop(ServerSocket* server) = 0; + virtual void onServerSocketCreated(ServerSocket* server, const SocketWrapper& listenSocket) = 0; + virtual void onServerTimeout(ServerSocket* server, const SocketWrapper& listenSocket) = 0; + virtual void onSocketAccepted(ServerSocket* server, const SocketWrapper& listenSocket, std::unique_ptr clientSocket) = 0; + virtual void onServerException(ServerSocket* server, const std::system_error& error) = 0; + }; + +} // namespace iovi_space::network + +#endif //NETWORK_SERVERSOCKETLISTENER_H \ No newline at end of file diff --git a/src/iovi_space/network/server_socket/ServerSocketWrapper.cpp b/src/iovi_space/network/server_socket/ServerSocketWrapper.cpp new file mode 100644 index 0000000..f6e0fc7 --- /dev/null +++ b/src/iovi_space/network/server_socket/ServerSocketWrapper.cpp @@ -0,0 +1,3 @@ +// +// Created by ovchinnikov-ii on 5/28/26. +// \ No newline at end of file