Răsfoiți Sursa

Create common module as internal dependencies provider

Patrick-Christopher Mattulat 2 ani în urmă
părinte
comite
1ac1f917b4

+ 4 - 4
CMakeLists.txt

@@ -193,10 +193,10 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU OR
         ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang OR
         ${CMAKE_CXX_COMPILER_ID} STREQUAL AppleClang)
     set(SOURCE_FILES_NETWORK
-            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/core/api/io/PosixReader.cpp # TODO: create "common" module and refactor core module to avoid core binary linkage at all
-            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/core/api/socket/PosixSocket.cpp
-            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/core/interface/IPosixReader.cpp
-            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/core/interface/IPosixSocket.cpp
+            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/common/api/io/PosixReader.cpp
+            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/common/api/socket/PosixSocket.cpp
+            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/common/interface/IPosixReader.cpp
+            ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/common/interface/IPosixSocket.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/network/core/ProtocolFamilyMapper.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/network/core/ProtocolMapper.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/source/ls_std/network/socket/Socket.cpp

+ 4 - 4
include/ls_std/core/api/io/PosixReader.hpp → include/ls_std/common/api/io/PosixReader.hpp

@@ -3,18 +3,18 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-12-16
- * Changed:         2022-12-23
+ * Changed:         2022-12-25
  *
  * */
 
 #ifndef LS_STD_POSIX_READER_HPP
 #define LS_STD_POSIX_READER_HPP
 
-#include <ls_std/core/interface/IPosixReader.hpp>
+#include <ls_std/common/interface/IPosixReader.hpp>
 
-namespace ls::std::core::api
+namespace ls::std::common::api
 {
-  class PosixReader : public ls::std::core::interface_type::IPosixReader
+  class PosixReader : public ls::std::common::interface_type::IPosixReader
   {
     public:
 

+ 4 - 4
include/ls_std/core/api/socket/PosixSocket.hpp → include/ls_std/common/api/socket/PosixSocket.hpp

@@ -3,18 +3,18 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-12-09
- * Changed:         2022-12-16
+ * Changed:         2022-12-25
  *
  * */
 
 #ifndef LS_STD_POSIX_SOCKET_HPP
 #define LS_STD_POSIX_SOCKET_HPP
 
-#include <ls_std/core/interface/IPosixSocket.hpp>
+#include <ls_std/common/interface/IPosixSocket.hpp>
 
-namespace ls::std::core::api
+namespace ls::std::common::api
 {
-  class PosixSocket : public ls::std::core::interface_type::IPosixSocket
+  class PosixSocket : public ls::std::common::interface_type::IPosixSocket
   {
     public:
 

+ 2 - 2
include/ls_std/core/interface/IPosixReader.hpp → include/ls_std/common/interface/IPosixReader.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-12-15
- * Changed:         2022-12-23
+ * Changed:         2022-12-25
  *
  * */
 
@@ -12,7 +12,7 @@
 
 #include <unistd.h>
 
-namespace ls::std::core::interface_type
+namespace ls::std::common::interface_type
 {
   class IPosixReader
   {

+ 2 - 2
include/ls_std/core/interface/IPosixSocket.hpp → include/ls_std/common/interface/IPosixSocket.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-12-09
- * Changed:         2022-12-23
+ * Changed:         2022-12-25
  *
  * */
 
@@ -12,7 +12,7 @@
 
 #include <sys/socket.h>
 
-namespace ls::std::core::interface_type
+namespace ls::std::common::interface_type
 {
   class IPosixSocket
   {

+ 21 - 0
include/ls_std/ls_std_common.hpp

@@ -0,0 +1,21 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-25
+ * Changed:         2022-12-25
+ *
+ * */
+
+#ifndef LS_STD_LS_STD_COMMON_HPP
+#define LS_STD_LS_STD_COMMON_HPP
+
+#if defined(unix) || defined(__APPLE__)
+#include <ls_std/common/api/io/PosixReader.hpp>
+#include <ls_std/common/api/socket/PosixSocket.hpp>
+
+#include <ls_std/common/interface/IPosixReader.hpp>
+#include <ls_std/common/interface/IPosixSocket.hpp>
+#endif
+
+#endif

+ 1 - 8
include/ls_std/ls_std_core.hpp

@@ -3,18 +3,13 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-05-13
- * Changed:         2022-12-16
+ * Changed:         2022-12-25
  *
  * */
 
 #ifndef LS_STD_LS_STD_CORE_HPP
 #define LS_STD_LS_STD_CORE_HPP
 
-#if defined(unix) || defined(__APPLE__)
-#include <ls_std/core/api/io/PosixReader.hpp>
-#include <ls_std/core/api/socket/PosixSocket.hpp>
-#endif
-
 #include <ls_std/core/exception/EventNotHandledException.hpp>
 #include <ls_std/core/exception/EventNotSubscribedException.hpp>
 #include <ls_std/core/exception/FileNotFoundException.hpp>
@@ -29,8 +24,6 @@
 #include <ls_std/core/interface/IEncoding.hpp>
 #include <ls_std/core/interface/IEventSubscriber.hpp>
 #include <ls_std/core/interface/IListener.hpp>
-#include <ls_std/core/interface/IPosixReader.hpp>
-#include <ls_std/core/interface/IPosixSocket.hpp>
 #include <ls_std/core/interface/IReader.hpp>
 #include <ls_std/core/interface/ISerializable.hpp>
 #include <ls_std/core/interface/IStorable.hpp>

+ 5 - 5
include/ls_std/network/socket/SocketParameter.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-11-16
- * Changed:         2022-12-16
+ * Changed:         2022-12-25
  *
  * */
 
@@ -11,8 +11,8 @@
 #define LS_STD_SOCKET_PARAMETER_HPP
 
 #include <ls_std/network/core/ProtocolFamilyType.hpp>
-#include <ls_std/core/interface/IPosixSocket.hpp>
-#include <ls_std/core/interface/IPosixReader.hpp>
+#include <ls_std/common/interface/IPosixSocket.hpp>
+#include <ls_std/common/interface/IPosixReader.hpp>
 #include "SocketAddress.hpp"
 #include <memory>
 
@@ -20,8 +20,8 @@ namespace ls::std::network
 {
   struct SocketParameter
   {
-    ::std::shared_ptr<ls::std::core::interface_type::IPosixReader> posixReader{};
-    ::std::shared_ptr<ls::std::core::interface_type::IPosixSocket> posixSocket{};
+    ::std::shared_ptr<ls::std::common::interface_type::IPosixReader> posixReader{};
+    ::std::shared_ptr<ls::std::common::interface_type::IPosixSocket> posixSocket{};
     ls::std::network::ProtocolFamilyType protocolFamilyType{};
     int queueSize{};
     size_t readBufferSize{};

+ 21 - 0
source/ls_std/common/api/io/PosixReader.cpp

@@ -0,0 +1,21 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-16
+ * Changed:         2022-12-25
+ *
+ * */
+
+#include <ls_std/common/api/io/PosixReader.hpp>
+
+ls::std::common::api::PosixReader::PosixReader()
+= default;
+
+ls::std::common::api::PosixReader::~PosixReader()
+= default;
+
+size_t ls::std::common::api::PosixReader::read(int _unixFileDescriptor, void *_buffer, size_t _size)
+{
+  return ::read(_unixFileDescriptor, _buffer, _size);
+}

+ 42 - 0
source/ls_std/common/api/socket/PosixSocket.cpp

@@ -0,0 +1,42 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-09
+ * Changed:         2022-12-25
+ *
+ * */
+
+#include <ls_std/common/api/socket/PosixSocket.hpp>
+#include <sys/socket.h>
+#include <unistd.h>
+
+int ls::std::common::api::PosixSocket::accept(int _socketFileDescriptor, struct sockaddr *_address, socklen_t* _addressLength)
+{
+  return ::accept(_socketFileDescriptor, _address, _addressLength);
+}
+
+int ls::std::common::api::PosixSocket::bind(int _socketFileDescriptor, const struct sockaddr *_address, socklen_t _addressLength)
+{
+  return ::bind(_socketFileDescriptor, _address, _addressLength);
+}
+
+int ls::std::common::api::PosixSocket::close(int _socketFileDescriptor)
+{
+  return ::close(_socketFileDescriptor);
+}
+
+int ls::std::common::api::PosixSocket::connect(int _socketFileDescriptor, const struct sockaddr *_address, socklen_t _addressLength)
+{
+  return ::connect(_socketFileDescriptor, _address, _addressLength);
+}
+
+int ls::std::common::api::PosixSocket::create(int _domain, int _type, int _protocol)
+{
+  return ::socket(_domain, _type, _protocol);
+}
+
+int ls::std::common::api::PosixSocket::listen(int _socketFileDescriptor, int _backlog)
+{
+  return ::listen(_socketFileDescriptor, _backlog);
+}

+ 16 - 0
source/ls_std/common/interface/IPosixReader.cpp

@@ -0,0 +1,16 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-23
+ * Changed:         2022-12-25
+ *
+ * */
+
+#include <ls_std/common/interface/IPosixReader.hpp>
+
+ls::std::common::interface_type::IPosixReader::IPosixReader()
+= default;
+
+ls::std::common::interface_type::IPosixReader::~IPosixReader()
+= default;

+ 16 - 0
source/ls_std/common/interface/IPosixSocket.cpp

@@ -0,0 +1,16 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-23
+ * Changed:         2022-12-25
+ *
+ * */
+
+#include <ls_std/common/interface/IPosixSocket.hpp>
+
+ls::std::common::interface_type::IPosixSocket::IPosixSocket()
+= default;
+
+ls::std::common::interface_type::IPosixSocket::~IPosixSocket()
+= default;

+ 0 - 21
source/ls_std/core/api/io/PosixReader.cpp

@@ -1,21 +0,0 @@
-/*
- * Author:          Patrick-Christopher Mattulat
- * Company:         Lynar Studios
- * E-Mail:          webmaster@lynarstudios.com
- * Created:         2022-12-16
- * Changed:         2022-12-23
- *
- * */
-
-#include <ls_std/core/api/io/PosixReader.hpp>
-
-ls::std::core::api::PosixReader::PosixReader()
-= default;
-
-ls::std::core::api::PosixReader::~PosixReader()
-= default;
-
-size_t ls::std::core::api::PosixReader::read(int _unixFileDescriptor, void *_buffer, size_t _size)
-{
-  return ::read(_unixFileDescriptor, _buffer, _size);
-}

+ 0 - 42
source/ls_std/core/api/socket/PosixSocket.cpp

@@ -1,42 +0,0 @@
-/*
- * Author:          Patrick-Christopher Mattulat
- * Company:         Lynar Studios
- * E-Mail:          webmaster@lynarstudios.com
- * Created:         2022-12-09
- * Changed:         2022-12-16
- *
- * */
-
-#include <ls_std/core/api/socket/PosixSocket.hpp>
-#include <sys/socket.h>
-#include <unistd.h>
-
-int ls::std::core::api::PosixSocket::accept(int _socketFileDescriptor, struct sockaddr *_address, socklen_t* _addressLength)
-{
-  return ::accept(_socketFileDescriptor, _address, _addressLength);
-}
-
-int ls::std::core::api::PosixSocket::bind(int _socketFileDescriptor, const struct sockaddr *_address, socklen_t _addressLength)
-{
-  return ::bind(_socketFileDescriptor, _address, _addressLength);
-}
-
-int ls::std::core::api::PosixSocket::close(int _socketFileDescriptor)
-{
-  return ::close(_socketFileDescriptor);
-}
-
-int ls::std::core::api::PosixSocket::connect(int _socketFileDescriptor, const struct sockaddr *_address, socklen_t _addressLength)
-{
-  return ::connect(_socketFileDescriptor, _address, _addressLength);
-}
-
-int ls::std::core::api::PosixSocket::create(int _domain, int _type, int _protocol)
-{
-  return ::socket(_domain, _type, _protocol);
-}
-
-int ls::std::core::api::PosixSocket::listen(int _socketFileDescriptor, int _backlog)
-{
-  return ::listen(_socketFileDescriptor, _backlog);
-}

+ 0 - 16
source/ls_std/core/interface/IPosixReader.cpp

@@ -1,16 +0,0 @@
-/*
- * Author:          Patrick-Christopher Mattulat
- * Company:         Lynar Studios
- * E-Mail:          webmaster@lynarstudios.com
- * Created:         2022-12-23
- * Changed:         2022-12-23
- *
- * */
-
-#include <ls_std/core/interface/IPosixReader.hpp>
-
-ls::std::core::interface_type::IPosixReader::IPosixReader()
-= default;
-
-ls::std::core::interface_type::IPosixReader::~IPosixReader()
-= default;

+ 0 - 16
source/ls_std/core/interface/IPosixSocket.cpp

@@ -1,16 +0,0 @@
-/*
- * Author:          Patrick-Christopher Mattulat
- * Company:         Lynar Studios
- * E-Mail:          webmaster@lynarstudios.com
- * Created:         2022-12-23
- * Changed:         2022-12-23
- *
- * */
-
-#include <ls_std/core/interface/IPosixSocket.hpp>
-
-ls::std::core::interface_type::IPosixSocket::IPosixSocket()
-= default;
-
-ls::std::core::interface_type::IPosixSocket::~IPosixSocket()
-= default;

+ 4 - 4
source/ls_std/network/socket/Socket.cpp

@@ -12,8 +12,8 @@
 #include <ls_std/network/core/ProtocolMapper.hpp>
 #include <ls_std/network/socket/ConvertedSocketAddress.hpp>
 #include <ls_std/network/socket/SocketAddressMapper.hpp>
-#include <ls_std/core/api/socket/PosixSocket.hpp>
-#include <ls_std/core/api/io/PosixReader.hpp>
+#include <ls_std/common/api/socket/PosixSocket.hpp>
+#include <ls_std/common/api/io/PosixReader.hpp>
 #include <ls_std/core/exception/WrongProtocolException.hpp>
 #include <ls_std/core/exception/IllegalArgumentException.hpp>
 #include <ls_std/core/exception/FileOperationException.hpp>
@@ -187,7 +187,7 @@ void ls::std::network::Socket::_setPosixReaderApi()
 {
   if (this->parameter.posixReader == nullptr)
   {
-    this->parameter.posixReader = ::std::make_shared<ls::std::core::api::PosixReader>();
+    this->parameter.posixReader = ::std::make_shared<ls::std::common::api::PosixReader>();
   }
 }
 
@@ -195,7 +195,7 @@ void ls::std::network::Socket::_setPosixSocketApi()
 {
   if (this->parameter.posixSocket == nullptr)
   {
-    this->parameter.posixSocket = ::std::make_shared<ls::std::core::api::PosixSocket>();
+    this->parameter.posixSocket = ::std::make_shared<ls::std::common::api::PosixSocket>();
   }
 }
 #endif

+ 3 - 3
test/classes/core/api/io/MockPosixReader.hpp

@@ -3,19 +3,19 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-12-16
- * Changed:         2022-12-16
+ * Changed:         2022-12-25
  *
  * */
 
 #ifndef LS_STD_MOCK_POSIX_READER_HPP
 #define LS_STD_MOCK_POSIX_READER_HPP
 
-#include <ls_std/ls_std_core.hpp>
+#include <ls_std/ls_std_common.hpp>
 #include <gmock/gmock.h>
 
 namespace ls_std_core_test
 {
-  class MockPosixReader : public ls::std::core::interface_type::IPosixReader
+  class MockPosixReader : public ls::std::common::interface_type::IPosixReader
   {
     public:
 

+ 3 - 3
test/classes/core/api/socket/MockPosixSocket.hpp

@@ -3,19 +3,19 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-12-09
- * Changed:         2022-12-15
+ * Changed:         2022-12-25
  *
  * */
 
 #ifndef LS_STD_MOCK_POSIX_SOCKET_HPP
 #define LS_STD_MOCK_POSIX_SOCKET_HPP
 
-#include <ls_std/ls_std_core.hpp>
+#include <ls_std/ls_std_common.hpp>
 #include <gmock/gmock.h>
 
 namespace ls_std_core_test
 {
-  class MockPosixSocket : public ls::std::core::interface_type::IPosixSocket
+  class MockPosixSocket : public ls::std::common::interface_type::IPosixSocket
   {
     public: