Переглянути джерело

Added state machine types

- added state machine types for better abstraction
- improved State class by using Id type
pcmattulat 3 роки тому
батько
коміт
90ee3ea74b

+ 2 - 1
CMakeLists.txt

@@ -97,7 +97,8 @@ set(SOURCE_FILES
         ${CMAKE_CURRENT_SOURCE_DIR}/source/logic/State.hpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/logic/State.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/logic/StateConnection.hpp
-        ${CMAKE_CURRENT_SOURCE_DIR}/source/logic/StateConnection.cpp)
+        ${CMAKE_CURRENT_SOURCE_DIR}/source/logic/StateConnection.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/source/logic/StateMachineTypes.hpp)
 
 set(TEST_FILES
         ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/boxing/IntegerTest.cpp

+ 1 - 1
source/logic/State.cpp

@@ -25,7 +25,7 @@ bool ls_std::State::addStateConnection(const std::string& _connectionId, const s
   return added;
 }
 
-std::unordered_map<std::string, std::shared_ptr<ls_std::State>> ls_std::State::getConnectedStates()
+std::unordered_map<ls_std::StateConnectionId, std::shared_ptr<ls_std::State>> ls_std::State::getConnectedStates()
 {
   return this->connectedStates;
 }

+ 2 - 1
source/logic/State.hpp

@@ -13,6 +13,7 @@
 #include <memory>
 #include <unordered_map>
 #include "../base/Class.hpp"
+#include "StateMachineTypes.hpp"
 
 namespace ls_std {
   class State : public Class {
@@ -22,7 +23,7 @@ namespace ls_std {
       ~State() = default;
 
       bool addStateConnection(const std::string& _connectionId, const std::shared_ptr<State>& _connectedState);
-      std::unordered_map<std::string, std::shared_ptr<State>> getConnectedStates();
+      std::unordered_map<StateConnectionId, std::shared_ptr<State>> getConnectedStates();
       std::string getId();
 
     private:

+ 20 - 0
source/logic/StateMachineTypes.hpp

@@ -0,0 +1,20 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2020-09-10
+ * Changed:         2020-09-10
+ *
+ * */
+
+#ifndef LS_STD_STATE_MACHINE_TYPES_HPP
+#define LS_STD_STATE_MACHINE_TYPES_HPP
+
+#include <string>
+
+namespace ls_std {
+  using StateConnectionId = std::string;
+  using StateId = std::string;
+}
+
+#endif