willi před 5 roky
rodič
revize
bfe6907609

+ 2 - 1
.gitignore

@@ -1,2 +1,3 @@
 *install*
-*build*
+*build*
+.idea

+ 183 - 234
.idea/workspace.xml

@@ -2,9 +2,9 @@
 <project version="4">
   <component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true">
     <generated>
-      <config projectName="mdd" targetName="auslegung_test" />
-      <config projectName="mdd" targetName="gtest_main" />
       <config projectName="mdd" targetName="gtest" />
+      <config projectName="mdd" targetName="gtest_main" />
+      <config projectName="mdd" targetName="auslegung_test" />
       <config projectName="mdd" targetName="mdd_lib" />
     </generated>
   </component>
@@ -15,106 +15,14 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="4ddbafad-b85e-492e-80ec-3c73ef45688f" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/lib/include/ModuleHTTP.h" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/lib/src/ModuleHTTP.cpp" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/lib/test/test_ModuleHTTP.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/CMakeLists.txt" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/lib/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/lib/CMakeLists.txt" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/.gitignore" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/.hgignore" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/.travis.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/CNAME" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/Readme.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/_config.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/appveyor.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/conanfile.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/doc/AUTHORS" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/doc/LICENSE" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/doc/README.win32" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/doc/TODO" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/doc/guide.pdf" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/doc/guide.tex" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/README" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example00.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example01.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example02.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example03.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example04.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example05.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example06.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example07.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example08.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example09.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example10.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example11.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example12.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example13.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example14.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example15.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example16.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example17.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example18.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example19.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example20.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example21.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example22.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example23.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/examples/example24.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/extras/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/extras/curlpp-config.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/extras/curlpp.m4" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/extras/curlpp.pc.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/extras/curlpp.spec.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Easy.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Easy.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Exception.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Form.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Info.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Info.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Infos.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Multi.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Option.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Option.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/OptionBase.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Options.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/Types.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/cURLpp.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/CurlHandle.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/CurlHandle.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/OptionContainer.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/OptionContainer.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/OptionContainerType.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/OptionList.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/OptionSetter.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/OptionSetter.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/curlpp/internal/SList.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/EmptyType.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/NonCopyable.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/NullType.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/SmartPtr.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/ThreadingFactoryMutex.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/ThreadingFactoryMutex.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/ThreadingSingle.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/ThreadingSingle.inl" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/TypeList.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/TypeTrait.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/include/utilspp/clone_ptr.hpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/Easy.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/Exception.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/Form.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/Info.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/Multi.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/OptionBase.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/Options.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/cURLpp.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/internal/CurlHandle.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/internal/OptionList.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/internal/OptionSetter.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/curlpp/src/curlpp/internal/SList.cpp" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/include/ModuleBase.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/ModuleBase.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/include/ModuleHTTP.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/ModuleHTTP.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/src/ModuleBase.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/ModuleBase.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/src/ModuleHTTP.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/ModuleHTTP.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/test/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/lib/test/CMakeLists.txt" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/cmake-build-debug/" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -133,90 +41,114 @@
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/test/test_ProcessorManual.cpp">
+        <entry file="file://$PROJECT_DIR$/lib/include/ModuleHTTP.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="15">
-              <caret line="55" column="31" selection-start-line="55" selection-start-column="31" selection-end-line="55" selection-end-column="31" />
+            <state relative-caret-position="165">
+              <caret line="11" column="27" selection-start-line="11" selection-start-column="27" selection-end-line="11" selection-end-column="27" />
               <folding>
-                <element signature="e#0#24#0" expanded="true" />
-                <element signature="e#70#98#0" expanded="true" />
+                <element signature="e#51#74#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/CMakeLists.txt">
+        <entry file="file://$PROJECT_DIR$/lib/include/ModuleMath.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="255">
-              <caret line="17" column="21" selection-start-line="17" selection-start-column="21" selection-end-line="17" selection-end-column="21" />
+            <state relative-caret-position="510">
+              <caret line="34" column="22" selection-start-line="34" selection-start-column="22" selection-end-line="34" selection-end-column="22" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/include/ModuleHTTP.h">
+        <entry file="file://$PROJECT_DIR$/lib/src/ModuleMath.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="135">
-              <caret line="9" column="16" selection-start-line="9" selection-start-column="16" selection-end-line="9" selection-end-column="16" />
+            <state relative-caret-position="180">
+              <caret line="12" column="10" selection-start-line="8" selection-start-column="8" selection-end-line="12" selection-end-column="10" />
+              <folding>
+                <element signature="e#0#23#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/include/ModuleMath.h">
+        <entry file="file://$PROJECT_DIR$/lib/src/ModuleHTTP.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="510">
-              <caret line="34" column="21" selection-start-line="34" selection-start-column="21" selection-end-line="34" selection-end-column="21" />
+            <state relative-caret-position="270">
+              <caret line="18" column="35" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" />
+              <folding>
+                <element signature="e#0#23#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/lib/src/ModuleHTTP.cpp">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/lib/test/test_ModuleHTTP.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="75">
-              <caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" />
+            <state relative-caret-position="288">
+              <caret line="32" column="69" selection-start-line="32" selection-start-column="69" selection-end-line="32" selection-end-column="69" />
               <folding>
-                <element signature="e#0#23#0" expanded="true" />
+                <element signature="e#0#24#0" expanded="true" />
+                <element signature="e#91#119#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/.gitignore">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="30">
+              <caret line="2" column="5" lean-forward="true" selection-start-line="2" selection-start-column="5" selection-end-line="2" selection-end-column="5" />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/CMakeLists.txt">
+        <entry file="file://$PROJECT_DIR$/lib/test/CMakeLists.txt">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="525">
-              <caret line="35" selection-start-line="35" selection-end-line="35" />
+            <state relative-caret-position="30">
+              <caret line="2" column="27" selection-start-line="2" selection-start-column="27" selection-end-line="2" selection-end-column="27" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/include/ModuleBase.h">
+        <entry file="file://$PROJECT_DIR$/lib/include/IInput.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="105">
-              <caret line="8" column="32" selection-start-line="8" selection-start-column="32" selection-end-line="8" selection-end-column="32" />
+            <state relative-caret-position="135">
+              <caret line="9" column="22" selection-start-line="9" selection-start-column="22" selection-end-line="9" selection-end-column="22" />
               <folding>
-                <element signature="e#51#69#0" expanded="true" />
+                <element signature="e#43#63#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/include/IModule.h">
+        <entry file="file://$PROJECT_DIR$/lib/include/ModuleBase.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="180">
-              <caret line="12" column="10" selection-start-line="12" selection-start-column="10" selection-end-line="12" selection-end-column="10" />
+            <state relative-caret-position="375">
+              <caret line="25" column="29" selection-start-line="25" selection-start-column="29" selection-end-line="25" selection-end-column="29" />
               <folding>
-                <element signature="e#45#65#0" expanded="true" />
+                <element signature="e#51#69#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/lib/src/ModuleBase.cpp">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="1515">
+              <caret line="101" column="19" selection-start-line="101" selection-start-column="19" selection-end-line="101" selection-end-column="19" />
+            </state>
+          </provider>
+        </entry>
+      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -231,6 +163,7 @@
     <findStrings>
       <find>output</find>
       <find>Gener</find>
+      <find>st</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -244,7 +177,6 @@
         <option value="$PROJECT_DIR$/lib/src/TestClass.cpp" />
         <option value="$PROJECT_DIR$/cmake/auslegung-config.cmake" />
         <option value="$PROJECT_DIR$/lib/test/test_TestClass.cpp" />
-        <option value="$PROJECT_DIR$/.gitignore" />
         <option value="$PROJECT_DIR$/lib/include/IListener.h" />
         <option value="$PROJECT_DIR$/README.MD" />
         <option value="$PROJECT_DIR$/lib/include/IValue.h" />
@@ -261,7 +193,6 @@
         <option value="$PROJECT_DIR$/lib/include/ModulePass.h" />
         <option value="$PROJECT_DIR$/lib/src/ModulePass.cpp" />
         <option value="$PROJECT_DIR$/lib/include/ModuleSwitch.h" />
-        <option value="$PROJECT_DIR$/lib/test/CMakeLists.txt" />
         <option value="$PROJECT_DIR$/lib/include/ModuleMath.h" />
         <option value="$PROJECT_DIR$/lib/include/UniqueBase.h" />
         <option value="$PROJECT_DIR$/lib/src/UniqueBase.cpp" />
@@ -278,8 +209,6 @@
         <option value="$PROJECT_DIR$/lib/test/test_ModuleMath.cpp" />
         <option value="$PROJECT_DIR$/lib/src/Input.cpp" />
         <option value="$PROJECT_DIR$/lib/test/test_ModuleSwitch.cpp" />
-        <option value="$PROJECT_DIR$/lib/include/ModuleBase.h" />
-        <option value="$PROJECT_DIR$/lib/src/ModuleBase.cpp" />
         <option value="$PROJECT_DIR$/lib/src/ProcessorBase.cpp" />
         <option value="$PROJECT_DIR$/lib/include/ProcessorBase.h" />
         <option value="$PROJECT_DIR$/lib/src/ModuleMath.cpp" />
@@ -287,19 +216,24 @@
         <option value="$PROJECT_DIR$/lib/src/ProcessorManual.cpp" />
         <option value="$PROJECT_DIR$/lib/test/test_ProcessorManual.cpp" />
         <option value="$PROJECT_DIR$/lib/CMakeLists.txt" />
-        <option value="$PROJECT_DIR$/lib/include/ModuleHTTP.h" />
         <option value="$PROJECT_DIR$/CMakeLists.txt" />
+        <option value="$PROJECT_DIR$/lib/src/ModuleBase.cpp" />
+        <option value="$PROJECT_DIR$/lib/include/ModuleBase.h" />
+        <option value="$PROJECT_DIR$/lib/test/CMakeLists.txt" />
+        <option value="$PROJECT_DIR$/lib/include/ModuleHTTP.h" />
         <option value="$PROJECT_DIR$/lib/src/ModuleHTTP.cpp" />
+        <option value="$PROJECT_DIR$/lib/test/test_ModuleHTTP.cpp" />
+        <option value="$PROJECT_DIR$/.gitignore" />
       </list>
     </option>
   </component>
   <component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
   <component name="OCResolveContextSettings">
-    <option name="configuration" value="0-mdd_lib" />
+    <option name="configuration" value="0-auslegung_test" />
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="406" />
-    <option name="y" value="115" />
+    <option name="x" value="182" />
+    <option name="y" value="57" />
     <option name="width" value="1440" />
     <option name="height" value="927" />
   </component>
@@ -309,7 +243,6 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -355,32 +288,22 @@
               <item name="master_thesis_ws" type="462c0819:PsiDirectoryNode" />
               <item name="thirdparty" type="462c0819:PsiDirectoryNode" />
             </path>
-            <path>
-              <item name="mdd" type="b2602c69:ProjectViewProjectNode" />
-              <item name="master_thesis_ws" type="47feb1d3:ProjectViewModuleNode" />
-              <item name="master_thesis_ws" type="462c0819:PsiDirectoryNode" />
-              <item name="thirdparty" type="462c0819:PsiDirectoryNode" />
-              <item name="cpp-httplib" type="462c0819:PsiDirectoryNode" />
-            </path>
           </expand>
           <select />
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/lib/test" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="settings.editor.selected.configurable" value="CMakeSettings" />
   </component>
   <component name="RecentsManager">
-    <key name="CopyFile.RECENT_KEYS">
-      <recent name="$PROJECT_DIR$/lib/test" />
-      <recent name="$PROJECT_DIR$/lib" />
-    </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="$PROJECT_DIR$/lib/src" />
       <recent name="$PROJECT_DIR$" />
@@ -388,6 +311,10 @@
       <recent name="$PROJECT_DIR$/lib/includes" />
       <recent name="$PROJECT_DIR$/lib" />
     </key>
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/lib/test" />
+      <recent name="$PROJECT_DIR$/lib" />
+    </key>
   </component>
   <component name="RunDashboard">
     <option name="ruleStates">
@@ -447,14 +374,14 @@
       </method>
     </configuration>
     <list>
-      <item itemvalue="CMake Application.auslegung_test" />
-      <item itemvalue="CMake Application.gtest" />
-      <item itemvalue="CMake Application.gtest_main" />
-      <item itemvalue="CMake Application.mdd_lib" />
       <item itemvalue="Google Test.All in auslegung_test" />
       <item itemvalue="Google Test.ModuleMath" />
       <item itemvalue="Google Test.ModuleMath.ARRAYINT_PLUS_ARRAYInt" />
       <item itemvalue="Google Test.ModuleMath.add" />
+      <item itemvalue="CMake Application.auslegung_test" />
+      <item itemvalue="CMake Application.gtest" />
+      <item itemvalue="CMake Application.gtest_main" />
+      <item itemvalue="CMake Application.mdd_lib" />
     </list>
     <recent_temporary>
       <list>
@@ -499,44 +426,47 @@
       <workItem from="1590139016676" duration="24307000" />
       <workItem from="1590401033286" duration="1155000" />
       <workItem from="1590443025824" duration="116000" />
-      <workItem from="1590444664396" duration="2078000" />
+      <workItem from="1590444664396" duration="2281000" />
+      <workItem from="1590483561193" duration="9644000" />
+      <workItem from="1590496125616" duration="6000" />
+      <workItem from="1590497401566" duration="17000" />
     </task>
     <servers />
   </component>
   <component name="TestHistory">
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 20m 38s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 39m 32s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 21m 22s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 39m 56s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 26m 53s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 40m 22s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 26m 54s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 44m 45s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 29m 21s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 50m 27s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 30m 15s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 51m 05s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 31m 15s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 52m 08s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 53m 35s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 52m 38s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 57m 55s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 13h 53m 24s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="All_in_auslegung_test - 2020.05.25 at 23h 58m 46s.xml">
+    <history-entry file="All_in_auslegung_test - 2020.05.26 at 14h 00m 28s.xml">
       <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="157954000" />
+    <option name="totallyTimeSpent" value="167824000" />
   </component>
   <component name="TodoView" selected-index="2">
     <todo-panel id="selected-file">
@@ -551,7 +481,7 @@
     <frame x="0" y="-2" width="1920" height="1082" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49921754" visible="true" weight="0.24813233" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49921754" visible="true" weight="0.2561366" />
       <window_info id="Structure" order="1" sideWeight="0.5007825" side_tool="true" weight="0.22572039" />
       <window_info id="Favorites" order="2" sideWeight="0.5007825" side_tool="true" weight="0.22572039" />
       <window_info anchor="bottom" id="Message" order="0" />
@@ -563,7 +493,7 @@
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32948583" />
       <window_info anchor="bottom" id="Database Changes" order="7" />
       <window_info anchor="bottom" id="Messages" order="8" weight="0.32423925" />
-      <window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.25393495" />
+      <window_info anchor="bottom" id="Terminal" order="9" weight="0.25393495" />
       <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
       <window_info anchor="bottom" id="Version Control" order="11" weight="0.32948583" />
       <window_info anchor="bottom" id="CMake" order="12" weight="0.32948583" />
@@ -631,6 +561,20 @@
     </option>
   </component>
   <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
+          <url>file://$PROJECT_DIR$/lib/test/test_ModuleHTTP.cpp</url>
+          <line>50</line>
+          <option name="timeStamp" value="1" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
+          <url>file://$PROJECT_DIR$/lib/src/ModuleHTTP.cpp</url>
+          <line>18</line>
+          <option name="timeStamp" value="3" />
+        </line-breakpoint>
+      </breakpoints>
+    </breakpoint-manager>
     <watches-manager>
       <configuration name="CMakeRunConfiguration">
         <watch expression="this-&gt;_inputs[0].output.get()" />
@@ -638,7 +582,6 @@
     </watches-manager>
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/lib/include/IData.h" />
     <entry file="file:///usr/include/c++/7/bits/shared_ptr_base.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="293">
@@ -647,13 +590,6 @@
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/document.h" />
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="15">
-          <caret line="1" column="7" selection-start-line="1" selection-start-column="7" selection-end-line="1" selection-end-column="7" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/thirdparty/json/CMakeLists.txt">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-315" />
@@ -696,13 +632,6 @@
     <entry file="file://$PROJECT_DIR$/lib/src/ModulePass.cpp" />
     <entry file="file://$PROJECT_DIR$/lib/src/UniqueBase.cpp" />
     <entry file="file://$PROJECT_DIR$/lib/include/UniqueBase.h" />
-    <entry file="file://$PROJECT_DIR$/lib/test/CMakeLists.txt">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="135">
-          <caret line="9" column="7" lean-forward="true" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="7" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/lib/include/IType.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="75">
@@ -806,16 +735,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/IInput.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="165">
-          <caret line="11" column="26" selection-start-line="11" selection-start-column="26" selection-end-line="11" selection-end-column="26" />
-          <folding>
-            <element signature="e#43#63#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/lib/src/Input.cpp">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="750">
@@ -854,16 +773,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/src/ModuleMath.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="240">
-          <caret line="16" column="24" selection-start-line="16" selection-start-column="24" selection-end-line="16" selection-end-column="24" />
-          <folding>
-            <element signature="e#0#23#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/lib/src/ModuleSwitch.cpp">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
@@ -895,13 +804,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/src/ModuleBase.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="750">
-          <caret line="50" column="34" selection-start-line="50" selection-start-column="34" selection-end-line="50" selection-end-column="34" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/lib/src/ProcessorManual.cpp">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="390">
@@ -912,9 +814,11 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/thirdparty/curl/README" />
+    <entry file="file://$PROJECT_DIR$/thirdparty/curl/CMakeLists.txt" />
     <entry file="file://$PROJECT_DIR$/lib/test/test_ProcessorManual.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="15">
+        <state relative-caret-position="825">
           <caret line="55" column="31" selection-start-line="55" selection-start-column="31" selection-end-line="55" selection-end-column="31" />
           <folding>
             <element signature="e#0#24#0" expanded="true" />
@@ -923,14 +827,18 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/thirdparty/curl/README">
+    <entry file="file://$PROJECT_DIR$/CMakeLists.txt">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-261" />
+        <state relative-caret-position="255">
+          <caret line="17" column="21" selection-start-line="17" selection-start-column="21" selection-end-line="17" selection-end-column="21" />
+        </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/thirdparty/curl/CMakeLists.txt">
+    <entry file="file://$PROJECT_DIR$/lib/CMakeLists.txt">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-630" />
+        <state relative-caret-position="525">
+          <caret line="35" selection-start-line="35" selection-end-line="35" />
+        </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/lib/include/IModule.h">
@@ -943,12 +851,12 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/ModuleBase.h">
+    <entry file="file://$PROJECT_DIR$/lib/include/ModuleHTTP.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="105">
-          <caret line="8" column="32" selection-start-line="8" selection-start-column="32" selection-end-line="8" selection-end-column="32" />
+        <state relative-caret-position="165">
+          <caret line="11" column="27" selection-start-line="11" selection-start-column="27" selection-end-line="11" selection-end-column="27" />
           <folding>
-            <element signature="e#51#69#0" expanded="true" />
+            <element signature="e#51#74#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -956,40 +864,81 @@
     <entry file="file://$PROJECT_DIR$/lib/include/ModuleMath.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="510">
-          <caret line="34" column="21" selection-start-line="34" selection-start-column="21" selection-end-line="34" selection-end-column="21" />
+          <caret line="34" column="22" selection-start-line="34" selection-start-column="22" selection-end-line="34" selection-end-column="22" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/ModuleHTTP.h">
+    <entry file="file://$PROJECT_DIR$/lib/src/ModuleMath.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="180">
+          <caret line="12" column="10" selection-start-line="8" selection-start-column="8" selection-end-line="12" selection-end-column="10" />
+          <folding>
+            <element signature="e#0#23#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/src/ModuleHTTP.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="270">
+          <caret line="18" column="35" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" />
+          <folding>
+            <element signature="e#0#23#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/test/CMakeLists.txt">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="30">
+          <caret line="2" column="27" selection-start-line="2" selection-start-column="27" selection-end-line="2" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/include/IInput.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="135">
-          <caret line="9" column="16" selection-start-line="9" selection-start-column="16" selection-end-line="9" selection-end-column="16" />
+          <caret line="9" column="22" selection-start-line="9" selection-start-column="22" selection-end-line="9" selection-end-column="22" />
+          <folding>
+            <element signature="e#43#63#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/CMakeLists.txt">
+    <entry file="file://$PROJECT_DIR$/lib/include/ModuleBase.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="525">
-          <caret line="35" selection-start-line="35" selection-end-line="35" />
+        <state relative-caret-position="375">
+          <caret line="25" column="29" selection-start-line="25" selection-start-column="29" selection-end-line="25" selection-end-column="29" />
+          <folding>
+            <element signature="e#51#69#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/CMakeLists.txt">
+    <entry file="file://$PROJECT_DIR$/lib/src/ModuleBase.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="255">
-          <caret line="17" column="21" selection-start-line="17" selection-start-column="21" selection-end-line="17" selection-end-column="21" />
+        <state relative-caret-position="1515">
+          <caret line="101" column="19" selection-start-line="101" selection-start-column="19" selection-end-line="101" selection-end-column="19" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/src/ModuleHTTP.cpp">
+    <entry file="file://$PROJECT_DIR$/lib/test/test_ModuleHTTP.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="75">
-          <caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" />
+        <state relative-caret-position="288">
+          <caret line="32" column="69" selection-start-line="32" selection-start-column="69" selection-end-line="32" selection-end-column="69" />
           <folding>
-            <element signature="e#0#23#0" expanded="true" />
+            <element signature="e#0#24#0" expanded="true" />
+            <element signature="e#91#119#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/.gitignore">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="30">
+          <caret line="2" column="5" lean-forward="true" selection-start-line="2" selection-start-column="5" selection-end-line="2" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>

+ 8 - 0
lib/include/ModuleBase.h

@@ -22,6 +22,14 @@ class ModuleBase : public  IModule{
                                  const json&) { return true; });
         int addOutput(const std::string& type, const json& initial);
 
+        int pop_backInput();
+        int pop_backOutput();
+
+        int clearInput();
+        int clearOutput();
+
+        int eraseInput(int index);
+        int eraseOutput(int index);
 
     public:
         std::vector<std::string> getInputs() override;

+ 10 - 0
lib/include/ModuleHTTP.h

@@ -2,9 +2,19 @@
 #define MDD_MODULEHTTP_H
 
 #include "ModuleBase.h"
+#include <httplib.h>
+
+using namespace httplib;
 
 namespace mdd{
     class ModuleHTTP : public ModuleBase{
+    private:
+        std::string _fname;
+        std::string _id;
+        int _port;
+    protected:
+        void updateLayout();
+
     public:
         ModuleHTTP(std::string fname, std::string id, int port);
         bool update() override;

+ 27 - 0
lib/src/ModuleBase.cpp

@@ -84,6 +84,33 @@ namespace mdd {
         return  _outputs.size()-1;
     }
 
+    int ModuleBase::pop_backInput(){
+        _inputs.pop_back();
+        return _inputs.size();
+    }
+    int ModuleBase::pop_backOutput(){
+        _outputs.pop_back();
+        return _outputs.size();
+    }
+
+    int ModuleBase::clearInput(){
+        _inputs.clear();
+        return _inputs.size();
+    }
+    int ModuleBase::clearOutput(){
+        _outputs.clear();
+        return _outputs.size();
+    }
+
+    int ModuleBase::eraseInput(int index){
+        _inputs.erase(_inputs.begin()+index);
+        return _inputs.size();
+    }
+    int ModuleBase::eraseOutput(int index){
+        _outputs.erase(_outputs.begin()+index);
+        return _outputs.size();
+    }
+
     std::string ModuleBase::getID(){
         return _prefix + "/" + _type + std::to_string(_appendix);
     }

+ 93 - 1
lib/src/ModuleHTTP.cpp

@@ -1,8 +1,100 @@
 #include "ModuleHTTP.h"
 #include <httplib.h>
+#include <iostream>
+
+using namespace httplib;
 
 namespace mdd{
-    bool ModuleHTTP::update() {
 
+    void ModuleHTTP::updateLayout(){
+        Client cli(_id, _port);
+
+        std::string body;
+        auto res = cli.Get("/inputs",
+                           [&](const char *data, size_t data_length) {
+                               body.append(data, data_length);
+                               return true;
+                           });
+        //assert(res->body.empty());
+        std::cout<<body<<std::endl;
+        json inputs = json::parse(body);
+
+        if(getInputs().size() != inputs.size()){
+            while(getInputs().size()>inputs.size()){
+                pop_backInput();
+            }
+
+            int diff =inputs.size()-getInputs().size();
+            auto veri = [](const json& val){
+                if(val.find("value")==val.end())
+                    return false;
+                return true;
+            };
+            while(diff > 0){
+                int index=inputs.size()-diff;
+                addInput(inputs[index]["type"],inputs[index]["value"], veri);
+                diff =inputs.size()-getInputs().size();
+            }
+        }
+
+        for(size_t i=0; i < inputs.size(); i++){
+            getInput(i)->setType(inputs[i]["type"].get<std::string>());
+            getInput(i)->setAppendix(i);
+            getInput(i)->setDefaultValue()=inputs[i]["value"];
+        }
+
+        res = cli.Get("/outputs",
+                           [&](const char *data, size_t data_length) {
+                               body.append(data, data_length);
+                               return true;
+                           });
+
+        //assert(res->body.empty());
+
+        json outputs = json::parse(body);
+
+        if(getOutputs().size() != outputs.size()){
+            while(getOutputs().size()>outputs.size()){
+                pop_backOutput();
+            }
+
+            int diff =outputs.size()-getOutputs().size();
+            auto veri = [](const json& val){
+                if(val.find("value")==val.end())
+                    return false;
+                return true;
+            };
+            while(diff > 0){
+                int index=outputs.size()-diff;
+                addInput(outputs[index]["type"],outputs[index]["value"], veri);
+                diff =outputs.size()-getOutputs().size();
+            }
+        }
+
+        for(size_t i=0; i < outputs.size(); i++){
+            getOutput(i)->setType(outputs[i]["type"].get<std::string>());
+            getOutput(i)->setAppendix(i);
+            getOutput(i)->getValueInternal() = outputs[i]["value"];
+        }
+    }
+
+    ModuleHTTP::ModuleHTTP(std::string fname, std::string id, int port):
+        _fname(fname),
+        _id(id),
+        _port(port)
+    {
+        updateLayout();
+    }
+
+    bool ModuleHTTP::update() {
+        updateLayout();
+        /*Client cli(_id, _port);
+        std::string outputs;
+        auto res = cli.Get("/update",
+                      [&](const char *data, size_t data_length) {
+                          outputs.append(data, data_length);
+                          return true;
+                      });
+                      */
     }
 }

+ 1 - 0
lib/test/CMakeLists.txt

@@ -1,5 +1,6 @@
 if(EXISTS /usr/src/gtest)
     add_executable(auslegung_test
+            test_ModuleHTTP
             test_ModuleMath.cpp
             test_ModuleSwitch.cpp
             test_ProcessorManual.cpp

+ 68 - 0
lib/test/test_ModuleHTTP.cpp

@@ -0,0 +1,68 @@
+#include <gtest/gtest.h>
+#include <json.hpp>
+#include <httplib.h>
+//#define private public
+#include <ProcessorManual.h>
+#include <ModuleHTTP.h>
+#include <ModuleMath.h>
+#include <ModuleSwitch.h>
+#include <math.h>
+
+
+using namespace mdd;
+using namespace httplib;
+TEST(ModuleHTTP, updateLayout_create){
+    Server svr;
+
+    svr.Get("/inputs", [](const Request& req, Response& res) {
+        json input_body;
+        for (int i = 0; i < 5; ++i) {
+            json entity;
+            entity["type"] = "INPUT";
+            entity["value"] = i;
+            input_body.push_back(entity);
+        }
+        std::cout<<"RECIVED: /inputs" <<std::endl;
+        res.set_content(input_body.dump(), "application/json");
+        auto data = new std::string(input_body.dump());
+
+        res.set_content_provider(
+                data->size(), // Content length
+                [data](size_t offset, size_t length, DataSink &sink) {
+                    const auto &d = *data;
+                    sink.write(&d[offset], std::min(length, length));
+                    return true; // return 'false' if you want to cancel the process.
+                },
+                [data] { delete data; });
+    });
+
+    svr.Get("/outputs", [](const Request& req, Response& res) {
+        json output_body;
+        for (int i = 0; i < 3; ++i) {
+            json entity;
+            entity["type"] = "OUTPUT";
+            entity["value"] = i*2;
+            output_body.push_back(entity);
+        }
+        std::cout<<"RECIVED: /outputs" <<std::endl;
+        res.set_content(output_body.dump(), "application/json");
+    });
+
+    svr.listen("localhost",123);
+    ModuleHTTP module("","localhost",123);
+
+    auto inputs_types = module.getInputs();
+    auto inputs_ids = module.getInputIDs();
+    for(int i = 0; i < 5; ++i){
+        EXPECT_EQ(inputs_types[i], "INPUT");
+        EXPECT_EQ(module.getInput(inputs_ids[1])->getValue()["value"].get<int>(), i);
+    }
+
+    auto outputs_types = module.getOutputs();
+    auto outputs_ids = module.getOutputIDs();
+    for(int i = 0; i < 5; ++i){
+        EXPECT_EQ(outputs_types[i], "OUTPUT");
+        EXPECT_EQ(module.getOutput(outputs_ids[1])->getValue()["value"].get<int>(), i*2);
+    }
+
+}