diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8666d51
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/BuildResults
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildAllLinux.sh b/CMake/CMake.1.6.0/AutoBuild/BuildAllLinux.sh
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildAllLinux.sh
rename to CMake/CMake.1.6.0/AutoBuild/BuildAllLinux.sh
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017.cmd b/CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017.cmd
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017.cmd
rename to CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017.cmd
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017INtime.cmd b/CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017INtime.cmd
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017INtime.cmd
rename to CMake/CMake.1.6.0/AutoBuild/BuildAllVS2017INtime.cmd
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildLinuxProject.sh b/CMake/CMake.1.6.0/AutoBuild/BuildLinuxProject.sh
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildLinuxProject.sh
rename to CMake/CMake.1.6.0/AutoBuild/BuildLinuxProject.sh
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildVS2017INtimeProject.cmd b/CMake/CMake.1.6.0/AutoBuild/BuildVS2017INtimeProject.cmd
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildVS2017INtimeProject.cmd
rename to CMake/CMake.1.6.0/AutoBuild/BuildVS2017INtimeProject.cmd
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildVS2017Project.cmd b/CMake/CMake.1.6.0/AutoBuild/BuildVS2017Project.cmd
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/BuildVS2017Project.cmd
rename to CMake/CMake.1.6.0/AutoBuild/BuildVS2017Project.cmd
diff --git a/LSFramework/CMake/CMake.1.6.0/AutoBuild/RunUnitTest.sh b/CMake/CMake.1.6.0/AutoBuild/RunUnitTest.sh
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/AutoBuild/RunUnitTest.sh
rename to CMake/CMake.1.6.0/AutoBuild/RunUnitTest.sh
diff --git a/LSFramework/CMake/CMake.1.6.0/CMake.1.6.0.nupkg b/CMake/CMake.1.6.0/CMake.1.6.0.nupkg
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/CMake.1.6.0.nupkg
rename to CMake/CMake.1.6.0/CMake.1.6.0.nupkg
diff --git a/LSFramework/CMake/CMake.1.6.0/CMakeCore.cmake b/CMake/CMake.1.6.0/CMakeCore.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/CMakeCore.cmake
rename to CMake/CMake.1.6.0/CMakeCore.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/CMakeMacros.cmake b/CMake/CMake.1.6.0/CMakeMacros.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/CMakeMacros.cmake
rename to CMake/CMake.1.6.0/CMakeMacros.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/CMakeSettings.cmake b/CMake/CMake.1.6.0/CMakeSettings.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/CMakeSettings.cmake
rename to CMake/CMake.1.6.0/CMakeSettings.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Includes/TsepVersion.h b/CMake/CMake.1.6.0/Includes/TsepVersion.h
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Includes/TsepVersion.h
rename to CMake/CMake.1.6.0/Includes/TsepVersion.h
diff --git a/LSFramework/CMake/CMake.1.6.0/RuleSets/TsepNativeRecommendedRules.ruleset b/CMake/CMake.1.6.0/RuleSets/TsepNativeRecommendedRules.ruleset
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/RuleSets/TsepNativeRecommendedRules.ruleset
rename to CMake/CMake.1.6.0/RuleSets/TsepNativeRecommendedRules.ruleset
diff --git a/LSFramework/CMake/CMake.1.6.0/RuleSets/TsepPropertySheet.props b/CMake/CMake.1.6.0/RuleSets/TsepPropertySheet.props
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/RuleSets/TsepPropertySheet.props
rename to CMake/CMake.1.6.0/RuleSets/TsepPropertySheet.props
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMake.nuspec.Template b/CMake/CMake.1.6.0/Templates/CMake.nuspec.Template
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMake.nuspec.Template
rename to CMake/CMake.1.6.0/Templates/CMake.nuspec.Template
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Console.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.Console.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Console.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.Console.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Dll.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.Dll.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Dll.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.Dll.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Gui.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.Gui.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Gui.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.Gui.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Lib.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.Lib.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Lib.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.Lib.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Nexus.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.Nexus.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Nexus.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.Nexus.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Project.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.Project.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.Project.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.Project.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.UnitTests.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.UnitTests.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.UnitTests.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.UnitTests.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.VS_CodeAnalyzer.Template.cmake b/CMake/CMake.1.6.0/Templates/CMakeLists.VS_CodeAnalyzer.Template.cmake
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/CMakeLists.VS_CodeAnalyzer.Template.cmake
rename to CMake/CMake.1.6.0/Templates/CMakeLists.VS_CodeAnalyzer.Template.cmake
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/LinuxGenerateProject.Template.sh b/CMake/CMake.1.6.0/Templates/LinuxGenerateProject.Template.sh
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/LinuxGenerateProject.Template.sh
rename to CMake/CMake.1.6.0/Templates/LinuxGenerateProject.Template.sh
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/ProjektName.Exports.Template.h b/CMake/CMake.1.6.0/Templates/ProjektName.Exports.Template.h
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/ProjektName.Exports.Template.h
rename to CMake/CMake.1.6.0/Templates/ProjektName.Exports.Template.h
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/Translation.Template.ts b/CMake/CMake.1.6.0/Templates/Translation.Template.ts
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/Translation.Template.ts
rename to CMake/CMake.1.6.0/Templates/Translation.Template.ts
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/Translations.Template.qrc b/CMake/CMake.1.6.0/Templates/Translations.Template.qrc
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/Translations.Template.qrc
rename to CMake/CMake.1.6.0/Templates/Translations.Template.qrc
diff --git a/LSFramework/CMake/CMake.1.6.0/Templates/VSGenerateProject.cmd.Template b/CMake/CMake.1.6.0/Templates/VSGenerateProject.cmd.Template
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Templates/VSGenerateProject.cmd.Template
rename to CMake/CMake.1.6.0/Templates/VSGenerateProject.cmd.Template
diff --git a/LSFramework/CMake/CMake.1.6.0/Versions/Win32/DefaultAppVersion.rc b/CMake/CMake.1.6.0/Versions/Win32/DefaultAppVersion.rc
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Versions/Win32/DefaultAppVersion.rc
rename to CMake/CMake.1.6.0/Versions/Win32/DefaultAppVersion.rc
diff --git a/LSFramework/CMake/CMake.1.6.0/Versions/Win32/DefaultDllVersion.rc b/CMake/CMake.1.6.0/Versions/Win32/DefaultDllVersion.rc
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Versions/Win32/DefaultDllVersion.rc
rename to CMake/CMake.1.6.0/Versions/Win32/DefaultDllVersion.rc
diff --git a/LSFramework/CMake/CMake.1.6.0/Versions/Win32/TSEP.ico b/CMake/CMake.1.6.0/Versions/Win32/TSEP.ico
similarity index 100%
rename from LSFramework/CMake/CMake.1.6.0/Versions/Win32/TSEP.ico
rename to CMake/CMake.1.6.0/Versions/Win32/TSEP.ico
diff --git a/LSFramework.sln b/LSFramework.sln
deleted file mode 100644
index 9d54065..0000000
--- a/LSFramework.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28307.1778
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LSFramework", "LSFramework\LSFramework.vcxproj", "{5FE98B77-3558-4384-BDAF-82AC8B69B752}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Debug|x64.ActiveCfg = Debug|x64
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Debug|x64.Build.0 = Debug|x64
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Debug|x86.ActiveCfg = Debug|Win32
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Debug|x86.Build.0 = Debug|Win32
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Release|x64.ActiveCfg = Release|x64
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Release|x64.Build.0 = Release|x64
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Release|x86.ActiveCfg = Release|Win32
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {CDE2A97D-BF32-4748-9A47-B8D0E10D3A9D}
- EndGlobalSection
-EndGlobal
diff --git a/LSFramework/LSFramework.vcxproj b/LSFramework/LSFramework.vcxproj
deleted file mode 100644
index 70660bc..0000000
--- a/LSFramework/LSFramework.vcxproj
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 15.0
- {5FE98B77-3558-4384-BDAF-82AC8B69B752}
- Win32Proj
- String
- 10.0
- LSFramework
-
-
-
- Application
- true
- v142
- Unicode
-
-
- Application
- false
- v142
- true
- Unicode
-
-
- Application
- true
- v142
- Unicode
-
-
- Application
- false
- v142
- true
- Unicode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
-
-
-
- Level3
- Disabled
- true
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
-
-
-
-
-
-
- Level3
- Disabled
- true
- _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
-
-
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- true
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
- true
- true
-
-
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/LSFramework/LSFramework.vcxproj.user b/LSFramework/LSFramework.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/LSFramework/LSFramework.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/LSFramework/LSVector.h b/LSFramework/LSVector.h
deleted file mode 100644
index 31a297a..0000000
--- a/LSFramework/LSVector.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#pragma once
-#include
-#include "LSMacros.h"
-
-template
-
-class LSVector
-{
-public:
- LSVector(size_t zSize = 1)
- {
- m_pData = new T[zSize];
- m_zCapacity = zSize;
- }
-
- ~LSVector()
- {
-
- }
-
- T& PushBack(T obj)
- {
- }
-
- T& PopBack()
- {
- }
-
- T& Insert(const size_t zPos)
- {
-
- }
-
- T& Remove(const size_t zPos)
- {
-
- }
-
- T& At(const size_t zPos)
- {
- return m_pData[zPos];
- }
-
- void Reserve(const size_t zSize)
- {
- T* pOld = m_pData;
- m_pData = new T[zSize];
-
- memmove_s(m_pData, zSize, pOld, m_zSize);
- m_zSize = zSize;
- m_zCapacity = zSize;
-
- DELETE_ARRAY(pOld);
- }
-
- void Clear()
- {
- DELETE_ARRAY(m_pData)
- }
-
- size_t Size() const
- {
- return m_zSize;
- }
-
- size_t Capacity() const
- {
- return m_zCapacity;
- }
-
- T* Data() const
- {
- return m_pData;
- }
-
- LSVector& operator=(const LSVector oRhs)
- {
-
- }
-
- LSVector& operator[](const size_t _Pos)
- {
-
- }
-
-private:
-
- std::vector s;
- T* m_pData = nullptr;
- size_t m_zSize = 0;
- size_t m_zCapacity = 0;
-};
\ No newline at end of file
diff --git a/Software/CMakeLists.txt b/Software/CMakeLists.txt
new file mode 100644
index 0000000..88b3ce3
--- /dev/null
+++ b/Software/CMakeLists.txt
@@ -0,0 +1,57 @@
+###########################################################################################
+#
+# (c) Technical Software Engineering Plazotta 2021
+#
+# CMAKE project main file / LSFramework
+#
+#-----------------------------------------------------------------------------------------
+# Define project specific requirements
+#
+# Minimum CMAKE version for this project
+#
+cmake_minimum_required (VERSION 3.23.0)
+#
+# Name of the project
+set(MAIN_PROJECT_NAME LSFramework)
+project(${MAIN_PROJECT_NAME})
+#
+#-----------------------------------------------------------------------------------------
+# Include project specific definitions -> Generated file
+#
+include(Project.conf.cmake)
+#
+#-----------------------------------------------------------------------------------------
+# Include cmake settings and macros
+#
+include(${TSEP_PROJECT_CMAKE}/CMakeMacros.cmake)
+include(${TSEP_PROJECT_CMAKE}/CMakeSettings.cmake)
+#
+#-----------------------------------------------------------------------------------------
+# google test framework -> enable if used
+#
+#TSEP_USE_GOOGLE_TESTING()
+#
+#-----------------------------------------------------------------------------------------
+# Current project description
+#
+set(TSEP_PROJECT "Framework")
+#
+#-----------------------------------------------------------------------------------------
+# Allow project folder structure
+#
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+#
+#-----------------------------------------------------------------------------------------
+# Define projects for building
+#
+add_subdirectory("Framework")
+#
+#-----------------------------------------------------------------------------------------
+# Define projects for managing and distributing
+#
+# NEXUS Upload (Only windows)
+#
+IF(WIN32)
+
+ENDIF()
+#
diff --git a/Software/Framework/CMakeLists.txt b/Software/Framework/CMakeLists.txt
new file mode 100644
index 0000000..b6edbf9
--- /dev/null
+++ b/Software/Framework/CMakeLists.txt
@@ -0,0 +1,109 @@
+###########################################################################################
+#
+# (c) Technical Software Engineering Plazotta 2021
+#
+# CMAKE project file / @Add your project name@
+#
+#
+#-----------------------------------------------------------------------------------------
+# Define project specific requirements
+#
+# Project name, output file name, project description
+#
+set(PROJECT_NAME LSFramework)
+set(PROJECT_OUTPUT_NAME LSFramework)
+set(PROJECT_DESCRIPTION "LSFramework")
+#
+#-----------------------------------------------------------------------------------------
+# Define group file names
+#
+# SOURCE FILES
+#
+set(SOURCE_FILES
+ src/Timer.cpp
+ src/LSString.cpp
+)
+#
+# HEADER FILES
+#
+set(HEADER_FILES
+ src/LSFramework.Exports.h
+ src/LSMacros.h
+ src/Timer.h
+ src/CJsonDocument.h
+ src/CJsonNode.h
+ src/CJsonArray.h
+ src/CJsonObject.h
+ src/LSString.h
+ src/LSList.h
+ src/LSListItem.h
+ src/LSVector.h
+)
+#
+#-----------------------------------------------------------------------------------------
+# Define solution folders for group files
+#
+source_group("Source Files" FILES ${SOURCE_FILES})
+source_group("Header Files" FILES ${HEADER_FILES})
+#
+#-----------------------------------------------------------------------------------------
+# DLL definitions
+#
+# Setup shared library version
+#
+TSEP_SETUP_DLL_VERSION(${PROJECT_DESCRIPTION})
+#
+# Create shared library target
+#
+add_library(${PROJECT_NAME} SHARED
+ ${SOURCE_FILES}
+ ${HEADER_FILES}
+ ${TSEP_DLL_VERSION_RC}
+)
+#
+# Add alias for the project
+#
+add_library(LS::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
+#
+# Setup TSEP OS specific settings for the project
+#
+TSEP_ADD_OS_SPECIFIC_SETTINGS()
+#
+# Setup output name
+#
+set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_OUTPUT_NAME})
+#
+# Use VS Code Analysis for the project
+#
+TSEP_USE_CODE_ANALYSIS(${PROJECT_NAME})
+#
+# Define Export Headers
+#
+TSEP_ADD_EXPORT_HEADER("${HEADER_FILES}")
+#
+# Include files, add your own includes and for the export
+#
+target_include_directories(${PROJECT_NAME}
+ PUBLIC
+ $
+ $
+ #PRIVATE
+ # include paths, which will not be exported
+)
+#
+# Add used libs
+#
+#target_link_libraries(${PROJECT_NAME}
+# PUBLIC
+# /- Add your additional libraries -/
+#)
+#
+# Create an Export directory with the defined data
+#
+TSEP_CREATE_EXPORT()
+#
+#
+# Create links to necessary dependency libraries
+#
+TSEP_GENERATE_DEPENDENCY_LINKS()
+#
diff --git a/LSFramework/CJsonArray.h b/Software/Framework/src/CJsonArray.h
similarity index 100%
rename from LSFramework/CJsonArray.h
rename to Software/Framework/src/CJsonArray.h
diff --git a/LSFramework/CJsonDocument.h b/Software/Framework/src/CJsonDocument.h
similarity index 100%
rename from LSFramework/CJsonDocument.h
rename to Software/Framework/src/CJsonDocument.h
diff --git a/LSFramework/CJsonNode.h b/Software/Framework/src/CJsonNode.h
similarity index 100%
rename from LSFramework/CJsonNode.h
rename to Software/Framework/src/CJsonNode.h
diff --git a/LSFramework/CJsonObject.h b/Software/Framework/src/CJsonObject.h
similarity index 100%
rename from LSFramework/CJsonObject.h
rename to Software/Framework/src/CJsonObject.h
diff --git a/Software/Framework/src/LSFramework.Exports.h b/Software/Framework/src/LSFramework.Exports.h
new file mode 100644
index 0000000..0d9b601
--- /dev/null
+++ b/Software/Framework/src/LSFramework.Exports.h
@@ -0,0 +1,47 @@
+/**
+* @page @Add your project name@
+*
+* @author TSEP
+*
+* @copyright (c) Technical Software Engineering Plazotta 2021
+*
+*/
+/**
+* @file @Add your project name@.Exports.h
+* @brief Definition of export declarations for this library
+*
+**************************************************************************/
+//TSEP_Pragma.UnitTest.Skip
+#pragma once
+
+// Note:
+// "_EXPORTS" preprocessor define is defined by CMake when compiling
+
+/*------------------------------------------------------------------------------
+// OPERATING SYSTEM : WIN32
+//----------------------------------------------------------------------------*/
+#ifdef _WIN32
+
+/// @cond Exclude this macro from doxygen
+#ifdef LSFramework_EXPORTS
+#define LSFRAMEWORK_API __declspec(dllexport)
+#else
+#define LSFRAMEWORK_API __declspec(dllimport)
+#endif
+/// @endcond
+
+#endif
+
+/*------------------------------------------------------------------------------
+// OPERATING SYSTEM : LINUX
+//----------------------------------------------------------------------------*/
+#ifdef __linux__
+
+#ifdef LSFRAMEWORK_EXPORTS
+#define LSFRAMEWORK_API __attribute__((visibility("default")))
+#else
+#define LSFRAMEWORK_API
+#endif
+
+#endif // __linux__
+
diff --git a/LSFramework/LSList.h b/Software/Framework/src/LSList.h
similarity index 96%
rename from LSFramework/LSList.h
rename to Software/Framework/src/LSList.h
index 25eed2b..dab1500 100644
--- a/LSFramework/LSList.h
+++ b/Software/Framework/src/LSList.h
@@ -1,10 +1,11 @@
#pragma once
+#include "LSFramework.Exports.h"
#include "LSMacros.h"
#include "LSListItem.h"
template
-class LSList
+class LSFRAMEWORK_API LSList
{
public:
LSList()
@@ -101,6 +102,5 @@ public:
private:
LSListItem* m_pFirst = nullptr;
LSListItem* m_pLast = nullptr;
-
size_t m_zSize = 0;
};
\ No newline at end of file
diff --git a/LSFramework/LSListItem.h b/Software/Framework/src/LSListItem.h
similarity index 100%
rename from LSFramework/LSListItem.h
rename to Software/Framework/src/LSListItem.h
diff --git a/LSFramework/LSMacros.h b/Software/Framework/src/LSMacros.h
similarity index 100%
rename from LSFramework/LSMacros.h
rename to Software/Framework/src/LSMacros.h
diff --git a/LSFramework/LSString.cpp b/Software/Framework/src/LSString.cpp
similarity index 94%
rename from LSFramework/LSString.cpp
rename to Software/Framework/src/LSString.cpp
index 6a8185b..a80d57e 100644
--- a/LSFramework/LSString.cpp
+++ b/Software/Framework/src/LSString.cpp
@@ -86,12 +86,12 @@ bool LSString::RemoveAt(size_t uiPos, size_t uiSize)
size_t LSString::StringLength(const char* pChar) const
{
if (!pChar) return 0;
- size_t zRet = 0;
- while (*(pChar + zRet) != 0x0)
+ const char* pStart = pChar;
+ while (*pChar != 0x0)
{
- zRet++;
+ pChar++;
}
- return zRet;
+ return pChar - pStart;
}
//-----------------------------------------------------------------------------------------------------------------------------
@@ -110,10 +110,10 @@ int LSString::Find(const char * pData, size_t uiOffset, size_t uiLength) const
//-----------------------------------------------------------------------------------------------------------------------------
void LSString::IncreaseCapacity(size_t uiNewLength)
{
- m_uiCapacity = (m_uiCapacity + uiNewLength) * c_uiCapacityIncreaseFactor;
+ m_uiCapacity = uiNewLength * c_uiCapacityIncreaseFactor;
char* pNew = new char[m_uiCapacity + 1];
memset(pNew, 0, m_uiCapacity + 1);
- memcpy(pNew, m_pData, m_zSize);
+ memmove(pNew, m_pData, m_zSize);
DELETE_ARRAY(m_pData);
m_pData = pNew;
}
\ No newline at end of file
diff --git a/LSFramework/LSString.h b/Software/Framework/src/LSString.h
similarity index 98%
rename from LSFramework/LSString.h
rename to Software/Framework/src/LSString.h
index beb9be6..6bab27e 100644
--- a/LSFramework/LSString.h
+++ b/Software/Framework/src/LSString.h
@@ -1,8 +1,10 @@
#pragma once
-#include
+#include "LSFramework.Exports.h"
#include "LSMacros.h"
-class LSString
+#include
+
+class LSFRAMEWORK_API LSString
{
public:
// - Constructor
diff --git a/Software/Framework/src/LSVector.h b/Software/Framework/src/LSVector.h
new file mode 100644
index 0000000..7c4b3f0
--- /dev/null
+++ b/Software/Framework/src/LSVector.h
@@ -0,0 +1,131 @@
+#pragma once
+#include "LSFramework.Exports.h"
+#include "LSMacros.h"
+
+#include
+
+template
+
+class LSFRAMEWORK_API LSVector
+{
+public:
+
+ LSVector()
+ {
+ }
+
+ LSVector(size_t zSize)
+ {
+ m_pData = new T[zSize];
+ m_zCapacity = zSize;
+ }
+
+ LSVector(const LSVector& oRhs)
+ : m_pData(oRhs.m_pData)
+ , m_zSize(oRhs.m_zSize)
+ , m_zCapacity(oRhs.m_zCapacity)
+ {
+ }
+
+ ~LSVector()
+ {
+ DELETE_ARRAY(m_pData)
+ }
+
+ T& PushBack(T oNewobj)
+ {
+ return Assign(oNewobj);
+ }
+
+ T& Assign(T oNewobj)
+ {
+ if (m_zSize == m_zCapacity)
+ {
+ m_zCapacity *= c_dCapacityIncreaseFactor;
+ T* pNew = new T[m_zCapacity];
+ memmove(pNew, m_pData, m_zSize);
+ DELETE_ARRAY(m_pData);
+ m_pData = pNew;
+ }
+ m_zSize += 1;
+ m_pData[m_zSize] = oNewobj;
+ return m_pData[m_zSize];
+ }
+
+ T& Insert(T oNewobj, const size_t zPos)
+ {
+ if (zPos == m_zCapacity)
+ {
+ return Assign(oNewobj);
+ }
+ else
+ {
+ m_pData[zPos] = oNewobj;
+ return m_pData[zPos];
+ }
+ }
+
+ void PopBack()
+ {
+ Remove(m_zSize);
+ }
+
+ void Remove(const size_t zPos)
+ {
+ memset(m_pData[zPos], 0, sizeof(T));
+ }
+
+ T& At(const size_t zPos)
+ {
+ return m_pData[zPos];
+ }
+
+ void Reserve(const size_t zNewCapacity)
+ {
+ if (zNewCapacity < m_zCapacity) return;
+ T* pOld = m_pData;
+ m_pData = new T[zNewCapacity];
+ memmove_s(m_pData, zNewCapacity, pOld, m_zSize);
+ m_zCapacity = zNewCapacity;
+ DELETE_ARRAY(pOld);
+ }
+
+ void Clear()
+ {
+ DELETE_ARRAY(m_pData)
+ }
+
+ size_t Size() const
+ {
+ return m_zSize;
+ }
+
+ size_t Capacity() const
+ {
+ return m_zCapacity;
+ }
+
+ T* Data() const
+ {
+ return m_pData;
+ }
+
+ LSVector operator=(const LSVector oRhs)
+ {
+ LSVector vTemp();
+ vTemp.m_pData = oRhs.m_pData;
+ }
+
+ T& operator[](const size_t _Pos)
+ {
+ m_pData + _Pos * sizeof(T);
+ }
+
+private:
+
+ std::vector s;
+ T* m_pData = nullptr;
+ size_t m_zSize = 0;
+ size_t m_zCapacity = 0;
+ const float c_dCapacityIncreaseFactor = 1.5;
+};
\ No newline at end of file
diff --git a/LSFramework/Timer.cpp b/Software/Framework/src/Timer.cpp
similarity index 100%
rename from LSFramework/Timer.cpp
rename to Software/Framework/src/Timer.cpp
diff --git a/LSFramework/Timer.h b/Software/Framework/src/Timer.h
similarity index 78%
rename from LSFramework/Timer.h
rename to Software/Framework/src/Timer.h
index ef50ae5..eb0dead 100644
--- a/LSFramework/Timer.h
+++ b/Software/Framework/src/Timer.h
@@ -1,8 +1,10 @@
#pragma once
-#include
+#include "LSFramework.Exports.h"
#include "LSString.h"
-class Timer
+#include
+
+class LSFRAMEWORK_API Timer
{
public:
Timer(LSString sEndString = "");
diff --git a/LSFramework/main.cpp b/Software/Framework/src/main.cpp
similarity index 100%
rename from LSFramework/main.cpp
rename to Software/Framework/src/main.cpp
diff --git a/Software/Project.conf.cmake b/Software/Project.conf.cmake
new file mode 100644
index 0000000..6ebf4ba
--- /dev/null
+++ b/Software/Project.conf.cmake
@@ -0,0 +1,50 @@
+###########################################################################################
+#
+# (c) Technical Software Engineering Plazotta 2022
+#
+# CMAKE project configuration file
+#
+# -- DO NOT EDIT, will be generated automatically --
+#
+#-----------------------------------------------------------------------------------------
+# Define user specific elements for all tools and components
+#
+IF(WIN32)
+set (TSEP_STORAGE_PATH "E:/TsepStorage")
+ELSE()
+set (TSEP_STORAGE_PATH /opt/tsep-storage)
+ENDIF()
+set (TSEP_PRODUCT_GROUP "Development")
+set (TSEP_PRODUCT_NAME "LSFramework")
+set (TSEP_PRODUCT_DESCRIPTION "TSEP Core Framework")
+set (TSEP_PRODUCT_VERSION "1,5,100")
+set (TSEP_VERSION "1.5.100")
+set (TSEP_VERSION_MAJOR 1)
+set (TSEP_VERSION_MINOR 5)
+set (TSEP_VERSION_PATCH 100)
+set (TSEP_NEXUS_VERSION "01.05.100")
+set (TSEP_UPDATE_IN_NEXUS "true")
+set (TSEP_COPYRIGHT_STRING "Copyright Technical Software Engineering Plazotta 2022")
+set (TSEP_COMPANY_LONGNAME "Technical Software Engineering Plazotta")
+set (TSEP_NEXUS_URL "https://srv-nexus-3.tsep.local/repository")
+set (TSEP_NEXUS_GUID "53ec8373-e298-31ed-bd2f-c21204d48a32")
+#
+#-----------------------------------------------------------------------------------------
+# Define component specific private elements
+#
+set (TSEP_PROJECT_CMAKE "${TSEP_STORAGE_PATH}/CMake/CMake.1.5.1")
+set (TSEP_PROJECT_GOOGLE.TEST "${TSEP_STORAGE_PATH}/Google.Test/Google.Test.1.10.1")
+set (TSEP_PROJECT_INTIME "${TSEP_STORAGE_PATH}/INtime/INtime.6.4.5")
+
+
+#-----------------------------------------------------------------------------------------
+# Include the cmake definition for basic compiler and os defines
+#
+include(${TSEP_PROJECT_CMAKE}/CMakeCore.cmake)
+#
+#
+#-----------------------------------------------------------------------------------------
+# Define component specific public elements
+#
+set (TSEP_PROJECT_FRAMEWORK.CORE "${TSEP_STORAGE_PATH}/Framework.Core/Framework.Core.1.5.100/bin/${TSEP_CMAKE_GENERATOR}/cmake")
+
diff --git a/LSFramework/VSGenerateProject.cmd b/Software/VSGenerateProject.cmd
similarity index 92%
rename from LSFramework/VSGenerateProject.cmd
rename to Software/VSGenerateProject.cmd
index 0c0d8f7..bad4b45 100644
--- a/LSFramework/VSGenerateProject.cmd
+++ b/Software/VSGenerateProject.cmd
@@ -4,7 +4,7 @@ setlocal
rem define build parameters
set ARCHITECTURE=x64
set VISUAL_STUDIO=msvc2019
-set GENERATOR=Visual Studio 16 2019 Win64
+set GENERATOR=Visual Studio 16 2019
rem concatenate build directory
set BUILDRESULTS=%~dp0\..\BuildResults\%VISUAL_STUDIO%_%ARCHITECTURE%