Browse Source

Improved StateConnection class

- replaced atomic type with primitive type
- replaced "primitive" types with state machine types
pcmattulat 3 years ago
parent
commit
2ffc313206
2 changed files with 8 additions and 4 deletions
  1. 5 1
      source/logic/StateConnection.cpp
  2. 3 3
      source/logic/StateConnection.hpp

+ 5 - 1
source/logic/StateConnection.cpp

@@ -9,12 +9,16 @@
 
 #include "StateConnection.hpp"
 
-ls_std::StateConnection::StateConnection(ls_std::StateConnectionId _connectionId, ls_std::StateId _stateId) :
+ls_std::StateConnection::StateConnection(ls_std::StateConnectionId _connectionId, ls_std::StateId _stateId, std::memory_order _order = std::memory_order_seq_cst) :
 Class("StateConnection"),
+condition(this->condition.load(_order)),
 connectionId(std::move(_connectionId)),
 stateId(std::move(_stateId))
 {}
 
+ls_std::StateConnection::StateConnection() : Class("StateConnection")
+{}
+
 ls_std::StateConnectionId ls_std::StateConnection::getConnectionId() {
   return this->connectionId;
 }

+ 3 - 3
source/logic/StateConnection.hpp

@@ -11,7 +11,6 @@
 #define LS_STD_STATE_CONNECTION_HPP
 
 #include <memory>
-#include <atomic>
 #include "../base/Class.hpp"
 #include "StateMachineTypes.hpp"
 
@@ -19,7 +18,8 @@ namespace ls_std {
   class StateConnection : public Class {
     public:
 
-      explicit StateConnection(StateConnectionId _connectionId, StateId _stateId);
+      explicit StateConnection(StateConnectionId _connectionId, StateId _stateId, std::memory_order _order);
+      StateConnection();
       ~StateConnection() = default;
 
       StateConnectionId getConnectionId();
@@ -29,7 +29,7 @@ namespace ls_std {
 
     private:
 
-      std::atomic<bool> condition {};
+      bool condition {};
       StateConnectionId connectionId {};
       StateId stateId {};
   };