Browse Source

add IProcessor and ProcessorBase

willi 5 years ago
parent
commit
c7865b6757

+ 185 - 450
.idea/workspace.xml

@@ -2,10 +2,10 @@
 <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="mdd_lib" />
+      <config projectName="mdd" targetName="auslegung_test" />
+      <config projectName="mdd" targetName="gtest_main" />
     </generated>
   </component>
   <component name="CMakeSettings">
@@ -15,257 +15,20 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="4ddbafad-b85e-492e-80ec-3c73ef45688f" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/lib/include/IType.h" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/lib/include/ModuleMath.h" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/lib/src/ModuleMath.cpp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/lib/test/test_ModuleMath.cpp" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/lib/include/HandlerModule.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/lib/include/Input.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/lib/include/ProcessorBase.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/lib/src/ProcessorBase.cpp" afterDir="false" />
       <change afterPath="$PROJECT_DIR$/thirdparty/json/single_include/json.hpp" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" 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$/lib/include/IModule.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/IModule.h" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/lib/include/IOutput.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/IOutput.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/include/IProcessor.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/IProcessor.h" afterDir="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/Output.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/Output.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/Output.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/Output.cpp" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/lib/test/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/lib/test/CMakeLists.txt" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/lib/test/test_TestClass.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/.gitattributes" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/.gitignore" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/.gitmodules" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/.travis.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/CHANGELOG.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/CMakeModules/FindGTestSrc.cmake" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/RapidJSON.pc.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/RapidJSONConfig.cmake.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/RapidJSONConfigVersion.cmake.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/appveyor.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/abcde.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/glossary.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/menu.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/readme.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/sample.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/webapp.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/data/widget.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf16be.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf16bebom.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf16le.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf16lebom.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf32be.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf32bebom.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf32le.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf32lebom.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf8.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/encodings/utf8bom.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail1.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail10.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail11.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail12.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail13.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail14.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail15.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail16.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail17.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail18.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail19.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail2.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail20.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail21.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail22.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail23.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail24.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail25.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail26.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail27.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail28.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail29.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail3.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail30.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail31.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail32.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail33.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail4.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail5.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail6.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail7.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail8.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/fail9.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/pass1.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/pass2.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/pass3.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/jsonchecker/readme.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/booleans.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/floats.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/guids.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/integers.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/mixed.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/nulls.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/paragraphs.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/bin/types/readme.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/contrib/natvis/LICENSE" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/contrib/natvis/README.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/contrib/natvis/rapidjson.natvis" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/Doxyfile.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/Doxyfile.zh-cn.in" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/architecture.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/architecture.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/insituparsing.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/insituparsing.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/iterative-parser-states-diagram.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/iterative-parser-states-diagram.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/makefile" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/move1.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/move1.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/move2.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/move2.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/move3.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/move3.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/normalparsing.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/normalparsing.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/simpledom.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/simpledom.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/tutorial.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/tutorial.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/utilityclass.dot" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/diagram/utilityclass.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/dom.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/dom.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/encoding.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/encoding.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/faq.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/faq.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/features.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/features.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/internals.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/internals.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/logo/rapidjson.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/logo/rapidjson.svg" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/misc/DoxygenLayout.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/misc/doxygenextra.css" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/misc/footer.html" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/misc/header.html" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/npm.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/performance.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/performance.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/pointer.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/pointer.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/sax.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/sax.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/schema.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/schema.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/stream.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/stream.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/tutorial.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/doc/tutorial.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/docker/debian/Dockerfile" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/archiver/archiver.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/archiver/archiver.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/archiver/archivertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/capitalize/capitalize.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/condense/condense.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/filterkey/filterkey.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/filterkeydom/filterkeydom.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/jsonx/jsonx.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/lookaheadparser/lookaheadparser.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/messagereader/messagereader.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/parsebyparts/parsebyparts.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/pretty/pretty.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/prettyauto/prettyauto.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/schemavalidator/schemavalidator.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/serialize/serialize.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/simpledom/simpledom.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/simplepullreader/simplepullreader.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/simplereader/simplereader.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/simplewriter/simplewriter.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/sortkeys/sortkeys.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/example/tutorial/tutorial.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/allocators.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/cursorstreamwrapper.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/document.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/encodedstream.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/encodings.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/error/en.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/error/error.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/filereadstream.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/filewritestream.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/fwd.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/biginteger.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/clzll.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/diyfp.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/dtoa.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/ieee754.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/itoa.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/meta.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/pow10.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/regex.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/stack.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/strfunc.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/strtod.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/internal/swap.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/istreamwrapper.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/memorybuffer.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/memorystream.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/msinttypes/inttypes.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/msinttypes/stdint.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/ostreamwrapper.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/pointer.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/prettywriter.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/rapidjson.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/reader.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/schema.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/stream.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/stringbuffer.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include/rapidjson/writer.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/include_dirs.js" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/library.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/license.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/package.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/rapidjson.autopkg" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/readme.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/readme.zh-cn.md" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/misctest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/perftest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/perftest.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/platformtest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/rapidjsontest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/perftest/schematest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/CMakeLists.txt" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/allocatorstest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/bigintegertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/cursorstreamwrappertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/documenttest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/dtoatest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/encodedstreamtest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/encodingstest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/filestreamtest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/fwdtest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/istreamwrappertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/itoatest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/jsoncheckertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/namespacetest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/ostreamwrappertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/pointertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/prettywritertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/readertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/regextest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/schematest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/simdtest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/strfunctest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/stringbuffertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/strtodtest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/unittest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/unittest.h" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/valuetest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/unittest/writertest.cpp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/test/valgrind.supp" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/thirdparty/rapidjson/travis-doxygen.sh" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/include/ModuleMath.h" beforeDir="false" afterPath="$PROJECT_DIR$/lib/include/ModuleMath.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/src/ModuleMath.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/ModuleMath.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/lib/test/test_ModuleMath.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/lib/test/test_ModuleMath.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/thirdparty/json" beforeDir="false" afterPath="$PROJECT_DIR$/thirdparty/json" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/cmake-build-debug/" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -280,85 +43,43 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" />
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <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>
-              <caret line="18" column="23" lean-forward="true" selection-start-line="18" selection-start-column="23" selection-end-line="18" selection-end-column="23" />
-              <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/src/ModuleMath.cpp">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="390">
-              <caret line="80" column="2" selection-start-line="80" selection-start-column="2" selection-end-line="80" selection-end-column="2" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/include/Output.h">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/lib/include/ProcessorBase.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="225">
-              <caret line="15" column="25" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" />
+            <state relative-caret-position="255">
+              <caret line="17" column="55" lean-forward="true" selection-start-line="17" selection-start-column="55" selection-end-line="17" selection-end-column="55" />
               <folding>
-                <element signature="e#42#62#0" expanded="true" />
+                <element signature="e#57#75#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/src/Output.cpp">
+        <entry file="file://$PROJECT_DIR$/lib/include/IProcessor.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="135">
-              <caret line="9" column="24" selection-start-line="9" selection-start-column="24" selection-end-line="9" selection-end-column="24" />
+            <state relative-caret-position="150">
+              <caret line="10" column="55" selection-start-line="10" selection-start-column="55" selection-end-line="10" selection-end-column="55" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/thirdparty/json/single_include/nlohmann/json.hpp">
+        <entry file="file://$PROJECT_DIR$/lib/src/ProcessorBase.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="158">
-              <caret line="16616" selection-start-line="16616" selection-end-line="16616" />
+            <state relative-caret-position="75">
+              <caret line="5" column="66" lean-forward="true" selection-start-line="5" selection-start-column="66" selection-end-line="5" selection-end-column="66" />
             </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/include/ModuleBase.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="280">
-              <caret line="19" column="21" selection-start-line="19" selection-start-column="21" selection-end-line="19" selection-end-column="21" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/include/IOutput.h">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="165">
-              <caret line="11" column="28" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
-              <folding>
-                <element signature="e#44#63#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/lib/test/test_ModuleMath.cpp">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="315">
-              <caret line="21" column="1" lean-forward="true" selection-start-line="21" selection-start-column="1" selection-end-line="21" selection-end-column="1" />
+            <state relative-caret-position="105">
+              <caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
               <folding>
-                <element signature="e#0#24#0" expanded="true" />
+                <element signature="e#51#69#0" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -398,29 +119,35 @@
         <option value="$PROJECT_DIR$/lib/include/BaseModule.h" />
         <option value="$PROJECT_DIR$/lib/include/Data.h" />
         <option value="$PROJECT_DIR$/lib/include/IData.h" />
-        <option value="$PROJECT_DIR$/lib/CMakeLists.txt" />
         <option value="$PROJECT_DIR$/lib/include/IType.h" />
         <option value="$PROJECT_DIR$/thirdparty/json/single_include/json.hpp" />
         <option value="$PROJECT_DIR$/CMakeLists.txt" />
-        <option value="$PROJECT_DIR$/lib/include/IModule.h" />
-        <option value="$PROJECT_DIR$/lib/include/ModuleMath.h" />
         <option value="$PROJECT_DIR$/lib/test/CMakeLists.txt" />
         <option value="$PROJECT_DIR$/lib/include/IOutput.h" />
         <option value="$PROJECT_DIR$/lib/include/Output.h" />
         <option value="$PROJECT_DIR$/lib/src/Output.cpp" />
         <option value="$PROJECT_DIR$/lib/src/ModuleBase.cpp" />
-        <option value="$PROJECT_DIR$/lib/include/ModuleBase.h" />
+        <option value="$PROJECT_DIR$/lib/include/ModuleMath.h" />
         <option value="$PROJECT_DIR$/lib/src/ModuleMath.cpp" />
         <option value="$PROJECT_DIR$/lib/test/test_ModuleMath.cpp" />
+        <option value="$PROJECT_DIR$/lib/src/ProcessorBase.h.cpp" />
+        <option value="$PROJECT_DIR$/lib/include/Input.h" />
+        <option value="$PROJECT_DIR$/lib/include/ModuleHandler.h" />
+        <option value="$PROJECT_DIR$/lib/CMakeLists.txt" />
+        <option value="$PROJECT_DIR$/lib/include/HandlerModule.h" />
+        <option value="$PROJECT_DIR$/lib/include/IModule.h" />
+        <option value="$PROJECT_DIR$/lib/include/ModuleBase.h" />
+        <option value="$PROJECT_DIR$/lib/include/ProcessorBase.h" />
+        <option value="$PROJECT_DIR$/lib/include/IProcessor.h" />
+        <option value="$PROJECT_DIR$/lib/src/ProcessorBase.cpp" />
       </list>
     </option>
   </component>
   <component name="OCResolveContextSettings">
-    <option name="configuration" value="0-auslegung_test" />
+    <option name="configuration" value="0-mdd_lib" />
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="320" />
-    <option name="y" value="1248" />
+    <option name="x" value="327" />
     <option name="width" value="1440" />
     <option name="height" value="927" />
   </component>
@@ -463,19 +190,6 @@
               <item name="lib" type="462c0819:PsiDirectoryNode" />
               <item name="src" 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="lib" type="462c0819:PsiDirectoryNode" />
-              <item name="test" 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" />
-            </path>
           </expand>
           <select />
         </subPane>
@@ -513,26 +227,26 @@
       </list>
     </option>
   </component>
-  <component name="RunManager" selected="Google Test.ModuleMath.ARRAYINT_PLUS_ARRAYInt">
+  <component name="RunManager" selected="Google Test.ModuleMath">
     <configuration name="All in auslegung_test" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_MODE="SUITE_TEST">
       <method v="2">
         <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
         <option name="BeforeTestRunTask" enabled="true" />
       </method>
     </configuration>
-    <configuration name="ModuleMath" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" temporary="true" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_PATTERN="ModuleMath.*:ModuleMath/*.*:*/ModuleMath.*/*:*/ModuleMath/*.*" TEST_MODE="PATTERN">
+    <configuration name="ModuleMath" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" temporary="true" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_PATTERN="ModuleMath.*:ModuleMath/*.*:*/ModuleMath.*/*:*/ModuleMath/*.*" TEST_MODE="PATTERN">
       <method v="2">
         <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
         <option name="BeforeTestRunTask" enabled="true" />
       </method>
     </configuration>
-    <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" temporary="true" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_CLASS="ModuleMath" TEST_METHOD="ARRAYINT_PLUS_ARRAYInt" TEST_MODE="SUITE_TEST">
+    <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" temporary="true" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_CLASS="ModuleMath" TEST_METHOD="ARRAYINT_PLUS_ARRAYInt" TEST_MODE="SUITE_TEST">
       <method v="2">
         <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
         <option name="BeforeTestRunTask" enabled="true" />
       </method>
     </configuration>
-    <configuration name="ModuleMath.add" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" temporary="true" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_CLASS="ModuleMath" TEST_METHOD="add" TEST_MODE="SUITE_TEST">
+    <configuration name="ModuleMath.add" type="CMakeGoogleTestRunConfigurationType" factoryName="Google Test" temporary="true" nameIsGenerated="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="mdd" TARGET_NAME="auslegung_test" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="mdd" RUN_TARGET_NAME="auslegung_test" TEST_CLASS="ModuleMath" TEST_METHOD="add" TEST_MODE="SUITE_TEST">
       <method v="2">
         <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
         <option name="BeforeTestRunTask" enabled="true" />
@@ -570,8 +284,8 @@
     </list>
     <recent_temporary>
       <list>
-        <item itemvalue="Google Test.ModuleMath.ARRAYINT_PLUS_ARRAYInt" />
         <item itemvalue="Google Test.ModuleMath" />
+        <item itemvalue="Google Test.ModuleMath.ARRAYINT_PLUS_ARRAYInt" />
         <item itemvalue="Google Test.ModuleMath.add" />
       </list>
     </recent_temporary>
@@ -599,44 +313,46 @@
       <workItem from="1588692367897" duration="1201000" />
       <workItem from="1588786717088" duration="4579000" />
       <workItem from="1588791515004" duration="3084000" />
-      <workItem from="1588794698644" duration="6728000" />
+      <workItem from="1588794698644" duration="7128000" />
+      <workItem from="1589382925743" duration="20440000" />
+      <workItem from="1589404518690" duration="4148000" />
     </task>
     <servers />
   </component>
   <component name="TestHistory">
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 29m 13s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="All_in_auslegung_test - 2020.05.13 at 19h 37m 15s.xml">
+      <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 31m 40s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="All_in_auslegung_test - 2020.05.13 at 19h 38m 56s.xml">
+      <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 35m 28s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="All_in_auslegung_test - 2020.05.13 at 19h 43m 46s.xml">
+      <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 38m 36s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="All_in_auslegung_test - 2020.05.13 at 19h 45m 12s.xml">
+      <configuration name="All in auslegung_test" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 38m 39s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="ModuleMath - 2020.05.13 at 19h 45m 27s.xml">
+      <configuration name="ModuleMath" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 41m 10s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="ModuleMath - 2020.05.13 at 19h 45m 46s.xml">
+      <configuration name="ModuleMath" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 41m 27s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="ModuleMath - 2020.05.13 at 19h 47m 13s.xml">
+      <configuration name="ModuleMath" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 41m 53s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="ModuleMath - 2020.05.13 at 19h 51m 06s.xml">
+      <configuration name="ModuleMath" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 42m 11s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="ModuleMath - 2020.05.13 at 19h 52m 44s.xml">
+      <configuration name="ModuleMath" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
-    <history-entry file="ModuleMath_ARRAYINT_PLUS_ARRAYInt - 2020.05.06 at 23h 43m 13s.xml">
-      <configuration name="ModuleMath.ARRAYINT_PLUS_ARRAYInt" configurationId="CMakeGoogleTestRunConfigurationType" />
+    <history-entry file="ModuleMath - 2020.05.13 at 19h 58m 50s.xml">
+      <configuration name="ModuleMath" configurationId="CMakeGoogleTestRunConfigurationType" />
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="58249000" />
+    <option name="totallyTimeSpent" value="83237000" />
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -648,47 +364,47 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="0" y="1105" width="1920" height="1006" extended-state="6" />
+    <frame x="0" y="-2" width="1920" height="1082" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.21344717" />
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.21771611" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.29874572" />
-      <window_info active="true" anchor="bottom" id="Debug" order="3" visible="true" weight="0.3990878" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.2980063" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.39874083" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" weight="0.32984293" />
+      <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.3249715" />
-      <window_info anchor="bottom" id="Terminal" order="9" weight="0.30220357" />
+      <window_info active="true" anchor="bottom" id="Messages" order="8" visible="true" weight="0.32423925" />
+      <window_info anchor="bottom" id="Terminal" order="9" weight="0.27806926" />
       <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.32984293" />
+      <window_info anchor="bottom" id="CMake" order="12" weight="0.32948583" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
       <window_info anchor="right" id="Database" order="3" />
     </layout>
     <layout-to-restore>
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21344717" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21771611" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.32948583" />
-      <window_info anchor="bottom" id="Debug" order="3" visible="true" weight="0.39979014" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.2980063" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.39874083" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" weight="0.32984293" />
+      <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.32738718" />
-      <window_info anchor="bottom" id="Terminal" order="9" weight="0.30220357" />
+      <window_info anchor="bottom" id="Messages" order="8" weight="0.32423925" />
+      <window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.27806926" />
       <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.32984293" />
+      <window_info anchor="bottom" id="CMake" order="12" weight="0.32948583" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -698,27 +414,6 @@
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
   </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_ModuleMath.cpp</url>
-          <line>16</line>
-          <option name="timeStamp" value="8" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
-          <url>file://$PROJECT_DIR$/lib/src/ModuleMath.cpp</url>
-          <line>64</line>
-          <option name="timeStamp" value="9" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
-          <url>file://$PROJECT_DIR$/lib/src/ModuleMath.cpp</url>
-          <line>83</line>
-          <option name="timeStamp" value="15" />
-        </line-breakpoint>
-      </breakpoints>
-    </breakpoint-manager>
-  </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/cmake/auslegung-config.cmake">
       <provider selected="true" editor-type-id="text-editor">
@@ -735,14 +430,6 @@
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/lib/src/TestClass.cpp" />
-    <entry file="file://$PROJECT_DIR$/lib/README.MD">
-      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
-        <state split_layout="SPLIT">
-          <first_editor />
-          <second_editor />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/install/mdd-config.cmake">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
@@ -814,135 +501,183 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/IType.h">
+    <entry file="file://$PROJECT_DIR$/lib/test/CMakeLists.txt">
       <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="30">
+          <caret line="2" column="31" selection-start-line="2" selection-start-column="31" selection-end-line="2" selection-end-column="31" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/IProcessor.h">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://$PROJECT_DIR$/lib/test/test_TestClass.cpp" />
+    <entry file="file://$PROJECT_DIR$/lib/src/Output.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="135">
+          <caret line="9" column="24" selection-start-line="9" selection-start-column="24" selection-end-line="9" selection-end-column="24" />
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/CMakeLists.txt">
+    <entry file="file://$PROJECT_DIR$/thirdparty/json/README.md">
+      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
+        <state split_layout="SPLIT">
+          <first_editor />
+          <second_editor />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file:///usr/include/c++/7/bits/vector.tcc">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="225">
-          <caret line="15" column="79" selection-start-line="15" selection-start-column="79" selection-end-line="15" selection-end-column="79" />
+        <state relative-caret-position="164">
+          <caret line="68" selection-start-line="68" selection-end-line="68" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/CMakeLists.txt">
+    <entry file="file://$PROJECT_DIR$/thirdparty/json/single_include/nlohmann/json.hpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="225">
-          <caret line="15" column="26" selection-start-line="15" selection-start-column="26" selection-end-line="15" selection-end-column="26" />
+        <state relative-caret-position="163">
+          <caret line="14988" selection-start-line="14988" selection-end-line="14988" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/IModule.h">
+    <entry file="file://$PROJECT_DIR$/lib/test/test_ModuleMath.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="345">
-          <caret line="23" column="27" selection-start-line="23" selection-start-column="27" selection-end-line="23" selection-end-column="36" />
+        <state relative-caret-position="651">
+          <caret line="69" lean-forward="true" selection-start-line="69" selection-end-line="69" />
           <folding>
-            <element signature="e#45#65#0" expanded="true" />
+            <element signature="e#0#24#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/test/CMakeLists.txt">
+    <entry file="file://$PROJECT_DIR$/CMakeLists.txt">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="30">
-          <caret line="2" column="31" selection-start-line="2" selection-start-column="31" selection-end-line="2" selection-end-column="31" />
+        <state relative-caret-position="180">
+          <caret line="12" column="70" lean-forward="true" selection-start-line="12" selection-start-column="70" selection-end-line="12" selection-end-column="70" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/test/test_TestClass.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state>
-          <caret selection-end-line="7" selection-end-column="1" />
+    <entry file="file://$PROJECT_DIR$/lib/README.MD">
+      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
+        <state split_layout="SPLIT">
+          <first_editor />
+          <second_editor />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/ModuleBase.h">
+    <entry file="file://$PROJECT_DIR$/lib/include/IOutput.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="386">
-          <caret line="30" column="27" lean-forward="true" selection-start-line="30" selection-start-column="27" selection-end-line="30" selection-end-column="27" />
+        <state relative-caret-position="75">
+          <caret line="5" selection-start-line="5" selection-end-line="21" selection-end-column="1" />
           <folding>
-            <element signature="e#51#68#0" expanded="true" />
+            <element signature="e#44#63#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/ModuleMath.h">
+    <entry file="file://$PROJECT_DIR$/lib/include/Input.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="280">
-          <caret line="19" column="21" selection-start-line="19" selection-start-column="21" selection-end-line="19" selection-end-column="21" />
+        <state relative-caret-position="150">
+          <caret line="10" column="25" lean-forward="true" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" />
+          <folding>
+            <element signature="e#41#58#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/IOutput.h">
+    <entry file="file://$PROJECT_DIR$/lib/include/Output.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="165">
-          <caret line="11" column="28" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
+        <state relative-caret-position="255">
+          <caret line="17" column="33" lean-forward="true" selection-start-line="17" selection-start-column="33" selection-end-line="17" selection-end-column="33" />
           <folding>
-            <element signature="e#44#63#0" expanded="true" />
+            <element signature="e#42#62#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/src/Output.cpp">
+    <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="24" selection-start-line="9" selection-start-column="24" selection-end-line="9" selection-end-column="24" />
+        <state relative-caret-position="1666">
+          <caret line="201" column="26" lean-forward="true" selection-start-line="201" selection-start-column="26" selection-end-line="201" selection-end-column="26" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/thirdparty/json/single_include/nlohmann/json.hpp">
+    <entry file="file://$PROJECT_DIR$/lib/CMakeLists.txt">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="158">
-          <caret line="16616" selection-start-line="16616" selection-end-line="16616" />
+        <state relative-caret-position="165">
+          <caret line="11" column="28" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/lib/src/ModuleBase.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state>
-          <caret line="18" column="23" lean-forward="true" selection-start-line="18" selection-start-column="23" selection-end-line="18" selection-end-column="23" />
+        <state relative-caret-position="376">
+          <caret line="43" column="8" selection-start-line="43" selection-start-column="8" selection-end-line="47" selection-end-column="19" />
           <folding>
             <element signature="e#0#23#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file:///usr/include/c++/7/bits/vector.tcc">
+    <entry file="file://$PROJECT_DIR$/lib/include/HandlerModule.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-93">
-          <caret line="68" selection-start-line="68" selection-end-line="68" />
+        <state relative-caret-position="105">
+          <caret line="7" column="17" selection-start-line="7" selection-start-column="4" selection-end-line="7" selection-end-column="17" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/include/Output.h">
+    <entry file="file://$PROJECT_DIR$/lib/include/IModule.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="225">
-          <caret line="15" column="25" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" />
+          <caret line="15" column="59" lean-forward="true" selection-start-line="15" selection-start-column="59" selection-end-line="15" selection-end-column="59" />
           <folding>
-            <element signature="e#42#62#0" expanded="true" />
+            <element signature="e#45#65#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/src/ModuleMath.cpp">
+    <entry file="file://$PROJECT_DIR$/lib/include/IType.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="390">
-          <caret line="80" column="2" selection-start-line="80" selection-start-column="2" selection-end-line="80" selection-end-column="2" />
+        <state relative-caret-position="75">
+          <caret line="5" selection-start-line="5" selection-end-line="5" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/test/test_ModuleMath.cpp">
+    <entry file="file://$PROJECT_DIR$/lib/include/ModuleMath.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="195">
+          <caret line="13" column="12" selection-start-line="13" selection-start-column="12" selection-end-line="13" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/include/ModuleBase.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="315">
-          <caret line="21" column="1" lean-forward="true" selection-start-line="21" selection-start-column="1" selection-end-line="21" selection-end-column="1" />
+        <state relative-caret-position="105">
+          <caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
           <folding>
-            <element signature="e#0#24#0" expanded="true" />
+            <element signature="e#51#69#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/src/ProcessorBase.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="75">
+          <caret line="5" column="66" lean-forward="true" selection-start-line="5" selection-start-column="66" selection-end-line="5" selection-end-column="66" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/include/IProcessor.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="150">
+          <caret line="10" column="55" selection-start-line="10" selection-start-column="55" selection-end-line="10" selection-end-column="55" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/include/ProcessorBase.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="255">
+          <caret line="17" column="55" lean-forward="true" selection-start-line="17" selection-start-column="55" selection-end-line="17" selection-end-column="55" />
+          <folding>
+            <element signature="e#57#75#0" expanded="true" />
           </folding>
         </state>
       </provider>

+ 4 - 0
lib/CMakeLists.txt

@@ -4,17 +4,21 @@ cmake_minimum_required(VERSION 3.8.0)
 project(mdd_lib)
 
 add_library(${PROJECT_NAME} STATIC
+        include/HandlerModule
         include/IListener.h
         include/IModule.h
+        include/Input.h
         include/IOutput.h
         include/IProcessor.h
         include/ModuleBase.h
         include/ModuleMath.h
         include/Output.h
+        include/ProcessorBase.h
 
         src/ModuleBase.cpp
         src/ModuleMath.cpp
         src/Output.cpp
+        src/ProcessorBase.cpp
         )
 
 target_include_directories(${PROJECT_NAME} PUBLIC

+ 14 - 0
lib/include/HandlerModule.h

@@ -0,0 +1,14 @@
+#ifndef MDD_HANDLERMODULE_H
+#define MDD_HANDLERMODULE_H
+
+struct HandlerModule{
+public:
+    int moduleHandler;
+    int accessHandler;
+    HandlerModule(int module, int access){
+        moduleHandler = module;
+        accessHandler = access;
+    }
+};
+
+#endif //MDD_MODULEHANDLER_H

+ 3 - 0
lib/include/IModule.h

@@ -13,6 +13,9 @@ namespace mdd {
     public:
         virtual bool connectInput(int handle, std::shared_ptr<IOutput> output) = 0;
 
+        virtual json& setInputDefaultValue(int handle) = 0;
+        virtual const json& getInputValue(int handle) = 0;
+
         virtual std::vector<std::string> getInputs() = 0;
 
         virtual std::vector<std::string> getOutputs() = 0;

+ 11 - 4
lib/include/IProcessor.h

@@ -1,8 +1,15 @@
-//
-// Created by willi on 25.04.20.
-//
-
 #ifndef MDD_IPROCESSOR_H
 #define MDD_IPROCESSOR_H
 
+#include "IModule.h"
+
+namespace mdd
+{
+
+    class IProcessor: public  IModule{
+    public:
+        virtual int  addModule(std::shared_ptr<IModule> module) = 0;
+    };
+}
+
 #endif //MDD_IPROCESSOR_H

+ 22 - 0
lib/include/Input.h

@@ -0,0 +1,22 @@
+#ifndef MDD_INPUT_H
+#define MDD_INPUT_H
+
+#include <string>
+#include <functional>
+#include "Output.h"
+#include <bits/shared_ptr.h>
+
+namespace mdd {
+    struct Input {
+        std::string type;
+        json value;
+        std::function<bool(const json &)> verification;
+        std::shared_ptr <IOutput> output;
+
+        Input(const std::string &type, const json &default_value,
+              const std::function<bool(const json &)> &verification = [](
+                      const json &) { return true; });
+    };
+}
+
+#endif //MDD_INPUT_H

+ 4 - 16
lib/include/ModuleBase.h

@@ -1,22 +1,10 @@
 #ifndef MDD_BASEMODULE_H
 #define MDD_BASEMODULE_H
 
-#include <string>
-#include <functional>
+#include "Input.h"
 #include "IModule.h"
-#include "Output.h"
-#include <bits/shared_ptr.h>
+
 namespace mdd {
-    struct Input {
-        std::string type;
-        json value;
-        std::function<bool(const json&)> verification;
-        std::shared_ptr<IOutput> output;
-
-        Input(const std::string& type, const json& default_value,
-              const std::function<bool(const json&)>& verification = [](
-                      const json&) { return true; });
-    };
 
 class ModuleBase : public  IModule{
     private:
@@ -28,8 +16,8 @@ class ModuleBase : public  IModule{
                      const std::function<bool(const json&)>& verification = [](
                              const json&) { return true; });
 
-        json& setInputDefaultValue(int handle);
-        const json& getInputValue(int handle);
+        json& setInputDefaultValue(int handle) override;
+        const json& getInputValue(int handle) override;
 
         bool connectInput(int handle, std::shared_ptr<IOutput> output) override;
 

+ 7 - 4
lib/include/ModuleMath.h

@@ -5,16 +5,19 @@
 namespace mdd {
     enum MathOperation {
         ADD = 1,
-        SUBSTRACT = 2,
-        MULTIPLIKATION = 3,
-        DIVISION = 4
+        SUBTRACT = 2,
+        MULTIPLY = 3,
+        DIVIDE = 4
     };
 
     class ModuleMath : public ModuleBase {
     private:
         MathOperation _operation;
 
-        json&& add(const json &val1, const json &val2);
+        json add(const json &val1, const json &val2);
+        json subtract(const json &val1, const json &val2);
+        json multiply(const json &val1, const json &val2);
+        json divide(const json &val1, const json &val2);
 
     public:
         explicit ModuleMath(MathOperation operation = ADD);

+ 26 - 0
lib/include/ProcessorBase.h

@@ -0,0 +1,26 @@
+#ifndef MDD_PROCESSORBASE_H
+#define MDD_PROCESSORBASE_H
+
+#include "Input.h"
+#include "IProcessor.h"
+#include "HandlerModule.h"
+
+
+namespace mdd {
+    class ProcessorBase : IProcessor{
+        std::vector<HandlerModule> _inputs;
+        std::vector<HandlerModule> _outputs;
+        std::vector<std::shared_ptr<IModule>> _modules;
+    public:
+        int addModule(std::shared_ptr<IModule> module) override ;
+        int addInput(int moduleHandler, int inputHandler);
+        json& setInputDefaultValue(int handle) override;
+        const json& getInputValue(int handle) override;
+        bool connectInput(int handle, std::shared_ptr<IOutput> output) override;
+        std::vector<std::string> getInputs() override;
+        std::vector<std::string> getOutputs() override;
+        std::shared_ptr<IOutput> getOutput(int handle) override;
+        int addOutput(int moduleHandler, int outputHandler);
+    };
+}
+#endif

+ 147 - 15
lib/src/ModuleMath.cpp

@@ -14,7 +14,7 @@ namespace mdd {
         addOutput("Value", default_val);
     }
 
-    json&& ModuleMath::add(const json &val1, const json &val2) {
+    json ModuleMath::add(const json &val1, const json &val2) {
         json ret = json::array();
         if (val1.is_array()) {
             for (int i = 0; i < val1.size(); i++) {
@@ -54,35 +54,163 @@ namespace mdd {
 
             }
         }
-        return std::move(ret);
+        return ret;
+    }
+
+    json ModuleMath::subtract(const json &val1, const json &val2){
+        json ret = json::array();
+        if (val1.is_array()) {
+            for (int i = 0; i < val1.size(); i++) {
+                if (val2.is_array()) {
+                    if (val1.size() == val2.size()) {
+                        ret.push_back(subtract(val1[i],val2[i]));
+                    }
+                } else {
+                    ret.push_back(subtract(val1[i],val2));
+                }
+            }
+
+        } else {
+            if (val2.is_array()) {
+                for (int i = 0; i < val2.size(); i++) {
+                    ret.push_back(subtract(val1,val2[i]));
+                }
+            } else {
+                if (val1.is_number() && val2.is_number()) {
+                    if (val1.is_number_float()) {
+                        if (val2.is_number_float()) {
+                            ret = val1.get<float>() - val2.get<float>();
+                        } else {
+                            ret = val1.get<float>() - val2.get<int>();
+                        }
+                    } else {
+                        if (val2.is_number_float()) {
+                            ret = val1.get<int>() - val2.get<float>();
+                        } else {
+                            ret = val1.get<int>() - val2.get<int>();
+                        }
+                    }
+
+                } else {
+
+                }
+
+            }
+        }
+        return ret;
+    }
+
+    json ModuleMath::multiply(const json &val1, const json &val2){
+        json ret = json::array();
+        if (val1.is_array()) {
+            for (int i = 0; i < val1.size(); i++) {
+                if (val2.is_array()) {
+                    if (val1.size() == val2.size()) {
+                        ret.push_back(multiply(val1[i],val2[i]));
+                    }
+                } else {
+                    ret.push_back(multiply(val1[i],val2));
+                }
+            }
+
+        } else {
+            if (val2.is_array()) {
+                for (int i = 0; i < val2.size(); i++) {
+                    ret.push_back(multiply(val1,val2[i]));
+                }
+            } else {
+                if (val1.is_number() && val2.is_number()) {
+                    if (val1.is_number_float()) {
+                        if (val2.is_number_float()) {
+                            ret = val1.get<float>() * val2.get<float>();
+                        } else {
+                            ret = val1.get<float>() * val2.get<int>();
+                        }
+                    } else {
+                        if (val2.is_number_float()) {
+                            ret = val1.get<int>() * val2.get<float>();
+                        } else {
+                            ret = val1.get<int>() * val2.get<int>();
+                        }
+                    }
+
+                } else {
+
+                }
+
+            }
+        }
+        return ret;
+    }
+
+    json ModuleMath::divide(const json &val1, const json &val2){
+        json ret = json::array();
+        if (val1.is_array()) {
+            for (int i = 0; i < val1.size(); i++) {
+                if (val2.is_array()) {
+                    if (val1.size() == val2.size()) {
+                        ret.push_back(divide(val1[i],val2[i]));
+                    }
+                } else {
+                    ret.push_back(divide(val1[i],val2));
+                }
+            }
+
+        } else {
+            if (val2.is_array()) {
+                for (int i = 0; i < val2.size(); i++) {
+                    ret.push_back(divide(val1,val2[i]));
+                }
+            } else {
+                if (val1.is_number() && val2.is_number()) {
+                    if (val1.is_number_float()) {
+                        if (val2.is_number_float()) {
+                            ret = val1.get<float>() / val2.get<float>();
+                        } else {
+                            ret = val1.get<float>() / val2.get<int>();
+                        }
+                    } else {
+                        if (val2.is_number_float()) {
+                            ret = val1.get<int>() / val2.get<float>();
+                        } else {
+                            ret = val1.get<int>()*1.0 / val2.get<int>();
+                        }
+                    }
+
+                } else {
+
+                }
+
+            }
+        }
+        return ret;
     }
 
     void ModuleMath::update() {
         json ret = getOutput(0)->getValue()["value"];
-        /*
+
         switch (_operation) {
             case ADD:
                 ret = add(getInputValue(0)["value"], getInputValue(1)["value"]);
                 break;
 
-            case SUBSTRACT:
-
+            case SUBTRACT:
+                ret = subtract(getInputValue(0)["value"], getInputValue(1)["value"]);
                 break;
 
 
-            case MULTIPLIKATION:
-
+            case MULTIPLY:
+                ret = multiply(getInputValue(0)["value"], getInputValue(1)["value"]);
                 break;
 
-            case DIVISION:
-
+            case DIVIDE:
+                ret = divide(getInputValue(0)["value"], getInputValue(1)["value"]);
                 break;
         }
-*/
-        //if (ret != getOutput(0)->getValue()["value"]) {
-            //setOutputValue(0).erase("value");
-            //setOutputValue(0) = ret;
-        //}
+
+        if (ret.dump() != getOutput(0)->getValue()["value"].dump()) {
+            setOutputValue(0)["value"] = ret ;
+        }
     }
 
 
@@ -102,4 +230,8 @@ namespace mdd {
  *          etc.
  *
  */
-}
+}
+
+//gdb
+//catch throw
+//run

+ 52 - 0
lib/src/ProcessorBase.cpp

@@ -0,0 +1,52 @@
+#include "ProcessorBase.h"
+
+
+
+namespace mdd{
+    int ProcessorBase::addModule(std::shared_ptr<IModule> module){
+        _modules.emplace_back(module);
+        return _modules.size()-1;
+    }
+
+    int ProcessorBase::addInput(int moduleHandler, int inputHandler){
+        _inputs.emplace_back(HandlerModule(moduleHandler, inputHandler));
+        return _inputs.size()-1;
+    }
+
+    json& ProcessorBase::setInputDefaultValue(int handle){
+        _modules[_inputs[handle].moduleHandler]->setInputDefaultValue(_inputs[handle].accessHandler);
+    }
+
+    const json& ProcessorBase::getInputValue(int handle){
+        _modules[_inputs[handle].moduleHandler]->getInputValue(_inputs[handle].accessHandler);
+    }
+
+    bool ProcessorBase::connectInput(int handle, std::shared_ptr<IOutput> output){
+        return _modules[_inputs[handle].moduleHandler]->connectInput(_inputs[handle].accessHandler, output);
+    }
+
+    std::vector<std::string> ProcessorBase::getInputs(){
+        std::vector<std::string> ret;
+        for (auto &input  : _inputs) {
+            ret.push_back(_modules[input.moduleHandler]->getOutput(input.accessHandler)->getType());
+        }
+        return ret;
+    }
+
+    std::vector<std::string> ProcessorBase::getOutputs(){
+        std::vector<std::string> ret;
+        for (auto &output  : _outputs) {
+            ret.push_back(_modules[output.moduleHandler]->getOutput(output.accessHandler)->getType());
+        }
+        return ret;
+    }
+
+    std::shared_ptr<IOutput> ProcessorBase::getOutput(int handle){
+        _modules[_outputs[handle].moduleHandler]->getOutput(_outputs[handle].accessHandler);
+    }
+
+    int ProcessorBase::addOutput(int moduleHandler, int outputHandler){
+        _outputs.emplace_back(HandlerModule(moduleHandler, outputHandler));
+        return _outputs.size()-1;
+    }
+}

+ 72 - 4
lib/test/test_ModuleMath.cpp

@@ -3,20 +3,88 @@
 //#define private public
 #include <ModuleMath.h>
 
+//cd cmake-build-debug/lib/test
+//gtb auslegung_test
+//catch throw
+//run
+
 
 using namespace mdd;
-TEST(ModuleMath, INT_PLUS_Int){
+TEST(ModuleMath, INT_PLUS_INT){
     ModuleMath test = ModuleMath();
     test.update();
 
     EXPECT_EQ(test.getOutput(0)->getValue()["value"].get<int>(), 2);
 }
 
-TEST(ModuleMath, ARRAYINT_PLUS_ARRAYInt){
+TEST(ModuleMath, FLOAT_PLUS_FLOAT){
+    ModuleMath test = ModuleMath();
+    test.setInputDefaultValue(0)["value"] = 1.25;
+    test.setInputDefaultValue(1)["value"] = 3.125;
+    test.update();
+
+    EXPECT_FLOAT_EQ(test.getOutput(0)->getValue()["value"], 4.375);
+}
+
+TEST(ModuleMath, FLOAT_PLUS_FLOAT_HARDER){
+    ModuleMath test = ModuleMath();
+    test.setInputDefaultValue(0)["value"] = 2.2;
+    test.setInputDefaultValue(1)["value"] = -3.4;
+    test.update();
+
+    EXPECT_FLOAT_EQ(test.getOutput(0)->getValue()["value"], -1.2);
+}
+
+TEST(ModuleMath, ARRAY_PLUS_ARRAY){
+    ModuleMath test = ModuleMath();
+    test.setInputDefaultValue(0)["value"] = {1,2.5,3.75,45};
+    test.setInputDefaultValue(1)["value"] = {10,31,23,23};
+    test.update();
+
+    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "[11,33.5,26.75,68]");
+}
+
+TEST(ModuleMath, INT_PLUS_ARRAY){
     ModuleMath test = ModuleMath();
-    test.setInputDefaultValue(0)["value"] = {1,2,3,45};
+    test.setInputDefaultValue(0)["value"] = 2.5;
     test.setInputDefaultValue(1)["value"] = {10,31,23,23};
     test.update();
 
-    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "{11,33,26,68}");
+    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "[12.5,33.5,25.5,25.5]");
+}
+
+TEST(ModuleMath, ARRAY_PLUS_INT){
+    ModuleMath test = ModuleMath();
+    test.setInputDefaultValue(0)["value"] = {10,31,23,23};
+    test.setInputDefaultValue(1)["value"] = 2.5;
+    test.update();
+
+    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "[12.5,33.5,25.5,25.5]");
+}
+
+TEST(ModuleMath, ARRAY_MINUS_ARRAY){
+    ModuleMath test = ModuleMath(SUBTRACT);
+    test.setInputDefaultValue(0)["value"] = {10,31,3,45};
+    test.setInputDefaultValue(1)["value"] = {1,2.5,23,23};
+    test.update();
+
+    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "[9,28.5,-20,22]");
+}
+
+TEST(ModuleMath, ARRAY_MAL_ARRAY){
+    ModuleMath test = ModuleMath(MULTIPLY);
+    test.setInputDefaultValue(0)["value"] = {10,30,-3.5,45};
+    test.setInputDefaultValue(1)["value"] = {1,2.5,2.25,20};
+    test.update();
+
+    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "[10,75.0,-7.875,900]");
+}
+
+TEST(ModuleMath, ARRAY_DURCH_ARRAY){
+    ModuleMath test = ModuleMath(DIVIDE);
+    test.setInputDefaultValue(0)["value"] = {10,30,-3.5,45};
+    test.setInputDefaultValue(1)["value"] = {4,2.5,2,20};
+    test.update();
+
+    EXPECT_EQ(test.getOutput(0)->getValue()["value"].dump(), "[2.5,12.0,-1.75,2.25]");
 }