From f5e9d63e0bbe14e6b8d95c1ab0a6b0167882a51a Mon Sep 17 00:00:00 2001 From: Fabian Vu <Fabian.Vu@hhu.de> Date: Wed, 30 Oct 2024 19:52:24 +0100 Subject: [PATCH] Update C++ benchmark files --- .../C++/CAN_BUS_tlc.cpp | 1674 +++++------ .../C++/Cruise_finite1_deterministic_MC.cpp | 1344 ++++----- .../C++/LandingGear_R6.cpp | 2242 ++++++-------- .../C++/Lift_MC_Large.cpp | 58 +- .../model_checking_opreuse/C++/Makefile | 14 +- .../C++/QueensWithEvents_4.cpp | 124 +- ...rain_1_beebook_deterministic_MC_POR_v3.cpp | 992 +++--- .../model_checking_opreuse/C++/nota_v2.cpp | 1888 ++++++------ .../C++/obsw_M001_1.cpp | 2676 ++++++++--------- .../C++/obsw_M001_2.cpp | 2676 ++++++++--------- .../C++/prob_oneway8seq.cpp | 261 +- .../model_checking_opreuse/C++/rether.cpp | 1020 +++---- .../C++/sort_m2_data1000_MC.cpp | 116 +- 13 files changed, 6855 insertions(+), 8230 deletions(-) diff --git a/benchmarks/model_checking_opreuse/C++/CAN_BUS_tlc.cpp b/benchmarks/model_checking_opreuse/C++/CAN_BUS_tlc.cpp index e235207e3..15d841ba3 100644 --- a/benchmarks/model_checking_opreuse/C++/CAN_BUS_tlc.cpp +++ b/benchmarks/model_checking_opreuse/C++/CAN_BUS_tlc.cpp @@ -6213,33 +6213,29 @@ class ModelChecker { if(isCaching) { CAN_BUS_tlc::_ProjectionRead__tr_T1Evaluate read__tr_T1Evaluate_state = state._projected_state_for__tr_T1Evaluate(); bool _trid_1 = false; - auto _obj__trid_1_ptr = _OpCache_tr_T1Evaluate.find(read__tr_T1Evaluate_state); - if(_obj__trid_1_ptr == _OpCache_tr_T1Evaluate.end()) { - _trid_1 = state._tr_T1Evaluate(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T1Evaluate_lock(_ProjectionRead__tr_T1Evaluate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T1Evaluate_lock(_ProjectionRead__tr_T1Evaluate_mutex); + auto _obj__trid_1_ptr = _OpCache_tr_T1Evaluate.find(read__tr_T1Evaluate_state); + if(_obj__trid_1_ptr == _OpCache_tr_T1Evaluate.end()) { + _trid_1 = state._tr_T1Evaluate(); _OpCache_tr_T1Evaluate.insert({read__tr_T1Evaluate_state, _trid_1}); + } else { + _trid_1 = _obj__trid_1_ptr->second; } - } else { - _trid_1 = _obj__trid_1_ptr->second; } if(_trid_1) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T1Evaluate readState = state._projected_state_for_T1Evaluate(); - - auto _OpCache_with_parameter_T1Evaluate_ptr = _OpCache_T1Evaluate.find(_trid_1); - if(_OpCache_with_parameter_T1Evaluate_ptr == _OpCache_T1Evaluate.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T1Evaluate_lock(_ProjectionRead_T1Evaluate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T1Evaluate_lock(_ProjectionRead_T1Evaluate_mutex); + auto _OpCache_with_parameter_T1Evaluate_ptr = _OpCache_T1Evaluate.find(_trid_1); + if(_OpCache_with_parameter_T1Evaluate_ptr == _OpCache_T1Evaluate.end()) { copiedState.T1Evaluate(); CAN_BUS_tlc::_ProjectionWrite_T1Evaluate writeState = copiedState._update_for_T1Evaluate(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Evaluate, CAN_BUS_tlc::_ProjectionWrite_T1Evaluate, CAN_BUS_tlc::_ProjectionRead_T1Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Evaluate::HashEqual> _OpCache_with_parameter_T1Evaluate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Evaluate, CAN_BUS_tlc::_ProjectionWrite_T1Evaluate, CAN_BUS_tlc::_ProjectionRead_T1Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Evaluate::HashEqual>(); _OpCache_with_parameter_T1Evaluate.insert({readState, writeState}); _OpCache_T1Evaluate.insert({_trid_1, _OpCache_with_parameter_T1Evaluate}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T1Evaluate_lock(_ProjectionRead_T1Evaluate_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Evaluate, CAN_BUS_tlc::_ProjectionWrite_T1Evaluate, CAN_BUS_tlc::_ProjectionRead_T1Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Evaluate::HashEqual> _OpCache_with_parameter_T1Evaluate = _OpCache_with_parameter_T1Evaluate_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T1Evaluate.find(readState); if(writeState_ptr != _OpCache_with_parameter_T1Evaluate.end()) { @@ -6252,7 +6248,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T1Evaluate"; result.insert(copiedState); { @@ -6261,303 +6256,269 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_T1Calculate read__tr_T1Calculate_state = state._projected_state_for__tr_T1Calculate(); - auto _trid_2_ptr = _OpCache_tr_T1Calculate.find(read__tr_T1Calculate_state); - if(_trid_2_ptr == _OpCache_tr_T1Calculate.end()) { - BSet<BInteger> _trid_2 = state._tr_T1Calculate(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T1Calculate_lock(_ProjectionRead__tr_T1Calculate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T1Calculate_lock(_ProjectionRead__tr_T1Calculate_mutex); + auto _trid_2_ptr = _OpCache_tr_T1Calculate.find(read__tr_T1Calculate_state); + if(_trid_2_ptr == _OpCache_tr_T1Calculate.end()) { + BSet<BInteger> _trid_2 = state._tr_T1Calculate(); _OpCache_tr_T1Calculate.insert({read__tr_T1Calculate_state, _trid_2}); - } - for(const BInteger& param : _trid_2) { - BInteger _tmp_1 = param; + for(const BInteger& param : _trid_2) { + BInteger _tmp_1 = param; - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T1Calculate readState = state._projected_state_for_T1Calculate(); - - auto _OpCache_with_parameter_T1Calculate_ptr = _OpCache_T1Calculate.find(param); - if(_OpCache_with_parameter_T1Calculate_ptr == _OpCache_T1Calculate.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T1Calculate_lock(_ProjectionRead_T1Calculate_mutex); - copiedState.T1Calculate(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = copiedState._update_for_T1Calculate(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual>(); - _OpCache_with_parameter_T1Calculate.insert({readState, writeState}); - _OpCache_T1Calculate.insert({param, _OpCache_with_parameter_T1Calculate}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T1Calculate readState = state._projected_state_for_T1Calculate(); { std::unique_lock<std::mutex> _ProjectionRead_T1Calculate_lock(_ProjectionRead_T1Calculate_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = _OpCache_with_parameter_T1Calculate_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T1Calculate.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T1Calculate.end()) { - CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = writeState_ptr->second; - copiedState._apply_update_for_T1Calculate(writeState); - } else { + auto _OpCache_with_parameter_T1Calculate_ptr = _OpCache_T1Calculate.find(param); + if(_OpCache_with_parameter_T1Calculate_ptr == _OpCache_T1Calculate.end()) { copiedState.T1Calculate(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = copiedState._update_for_T1Calculate(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual>(); _OpCache_with_parameter_T1Calculate.insert({readState, writeState}); + _OpCache_T1Calculate.insert({param, _OpCache_with_parameter_T1Calculate}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = _OpCache_with_parameter_T1Calculate_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T1Calculate.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T1Calculate.end()) { + CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = writeState_ptr->second; + copiedState._apply_update_for_T1Calculate(writeState); + } else { + copiedState.T1Calculate(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = copiedState._update_for_T1Calculate(); + _OpCache_with_parameter_T1Calculate.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T1Calculate"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BInteger> _trid_2 = _trid_2_ptr->second; - for(const BInteger& param : _trid_2) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T1Calculate readState = state._projected_state_for_T1Calculate(); - - auto _OpCache_with_parameter_T1Calculate_ptr = _OpCache_T1Calculate.find(param); - if(_OpCache_with_parameter_T1Calculate_ptr == _OpCache_T1Calculate.end()) { + copiedState.stateAccessedVia = "T1Calculate"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T1Calculate_lock(_ProjectionRead_T1Calculate_mutex); - copiedState.T1Calculate(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = copiedState._update_for_T1Calculate(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual>(); - _OpCache_with_parameter_T1Calculate.insert({readState, writeState}); - _OpCache_T1Calculate.insert({param, _OpCache_with_parameter_T1Calculate}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BInteger> _trid_2 = _trid_2_ptr->second; + for(const BInteger& param : _trid_2) { + BInteger _tmp_1 = param; + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T1Calculate readState = state._projected_state_for_T1Calculate(); { std::unique_lock<std::mutex> _ProjectionRead_T1Calculate_lock(_ProjectionRead_T1Calculate_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = _OpCache_with_parameter_T1Calculate_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T1Calculate.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T1Calculate.end()) { - CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = writeState_ptr->second; - copiedState._apply_update_for_T1Calculate(writeState); - } else { + auto _OpCache_with_parameter_T1Calculate_ptr = _OpCache_T1Calculate.find(param); + if(_OpCache_with_parameter_T1Calculate_ptr == _OpCache_T1Calculate.end()) { copiedState.T1Calculate(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = copiedState._update_for_T1Calculate(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual>(); _OpCache_with_parameter_T1Calculate.insert({readState, writeState}); + _OpCache_T1Calculate.insert({param, _OpCache_with_parameter_T1Calculate}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Calculate, CAN_BUS_tlc::_ProjectionWrite_T1Calculate, CAN_BUS_tlc::_ProjectionRead_T1Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T1Calculate::HashEqual> _OpCache_with_parameter_T1Calculate = _OpCache_with_parameter_T1Calculate_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T1Calculate.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T1Calculate.end()) { + CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = writeState_ptr->second; + copiedState._apply_update_for_T1Calculate(writeState); + } else { + copiedState.T1Calculate(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T1Calculate writeState = copiedState._update_for_T1Calculate(); + _OpCache_with_parameter_T1Calculate.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T1Calculate"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T1Calculate"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T1SendResult read__tr_T1SendResult_state = state._projected_state_for__tr_T1SendResult(); - auto _trid_3_ptr = _OpCache_tr_T1SendResult.find(read__tr_T1SendResult_state); - if(_trid_3_ptr == _OpCache_tr_T1SendResult.end()) { - BSet<BTuple<BInteger, BInteger >> _trid_3 = state._tr_T1SendResult(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T1SendResult_lock(_ProjectionRead__tr_T1SendResult_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T1SendResult_lock(_ProjectionRead__tr_T1SendResult_mutex); + auto _trid_3_ptr = _OpCache_tr_T1SendResult.find(read__tr_T1SendResult_state); + if(_trid_3_ptr == _OpCache_tr_T1SendResult.end()) { + BSet<BTuple<BInteger, BInteger >> _trid_3 = state._tr_T1SendResult(); _OpCache_tr_T1SendResult.insert({read__tr_T1SendResult_state, _trid_3}); - } - for(const BTuple<BInteger, BInteger >& param : _trid_3) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); + for(const BTuple<BInteger, BInteger >& param : _trid_3) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T1SendResult readState = state._projected_state_for_T1SendResult(); - - auto _OpCache_with_parameter_T1SendResult_ptr = _OpCache_T1SendResult.find(param); - if(_OpCache_with_parameter_T1SendResult_ptr == _OpCache_T1SendResult.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T1SendResult_lock(_ProjectionRead_T1SendResult_mutex); - copiedState.T1SendResult(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = copiedState._update_for_T1SendResult(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual>(); - _OpCache_with_parameter_T1SendResult.insert({readState, writeState}); - _OpCache_T1SendResult.insert({param, _OpCache_with_parameter_T1SendResult}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T1SendResult readState = state._projected_state_for_T1SendResult(); { std::unique_lock<std::mutex> _ProjectionRead_T1SendResult_lock(_ProjectionRead_T1SendResult_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = _OpCache_with_parameter_T1SendResult_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T1SendResult.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T1SendResult.end()) { - CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = writeState_ptr->second; - copiedState._apply_update_for_T1SendResult(writeState); - } else { + auto _OpCache_with_parameter_T1SendResult_ptr = _OpCache_T1SendResult.find(param); + if(_OpCache_with_parameter_T1SendResult_ptr == _OpCache_T1SendResult.end()) { copiedState.T1SendResult(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = copiedState._update_for_T1SendResult(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual>(); _OpCache_with_parameter_T1SendResult.insert({readState, writeState}); + _OpCache_T1SendResult.insert({param, _OpCache_with_parameter_T1SendResult}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = _OpCache_with_parameter_T1SendResult_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T1SendResult.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T1SendResult.end()) { + CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = writeState_ptr->second; + copiedState._apply_update_for_T1SendResult(writeState); + } else { + copiedState.T1SendResult(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = copiedState._update_for_T1SendResult(); + _OpCache_with_parameter_T1SendResult.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T1SendResult"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BInteger, BInteger >> _trid_3 = _trid_3_ptr->second; - for(const BTuple<BInteger, BInteger >& param : _trid_3) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T1SendResult readState = state._projected_state_for_T1SendResult(); - - auto _OpCache_with_parameter_T1SendResult_ptr = _OpCache_T1SendResult.find(param); - if(_OpCache_with_parameter_T1SendResult_ptr == _OpCache_T1SendResult.end()) { + copiedState.stateAccessedVia = "T1SendResult"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T1SendResult_lock(_ProjectionRead_T1SendResult_mutex); - copiedState.T1SendResult(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = copiedState._update_for_T1SendResult(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual>(); - _OpCache_with_parameter_T1SendResult.insert({readState, writeState}); - _OpCache_T1SendResult.insert({param, _OpCache_with_parameter_T1SendResult}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BInteger, BInteger >> _trid_3 = _trid_3_ptr->second; + for(const BTuple<BInteger, BInteger >& param : _trid_3) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T1SendResult readState = state._projected_state_for_T1SendResult(); { std::unique_lock<std::mutex> _ProjectionRead_T1SendResult_lock(_ProjectionRead_T1SendResult_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = _OpCache_with_parameter_T1SendResult_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T1SendResult.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T1SendResult.end()) { - CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = writeState_ptr->second; - copiedState._apply_update_for_T1SendResult(writeState); - } else { + auto _OpCache_with_parameter_T1SendResult_ptr = _OpCache_T1SendResult.find(param); + if(_OpCache_with_parameter_T1SendResult_ptr == _OpCache_T1SendResult.end()) { copiedState.T1SendResult(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = copiedState._update_for_T1SendResult(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual>(); _OpCache_with_parameter_T1SendResult.insert({readState, writeState}); + _OpCache_T1SendResult.insert({param, _OpCache_with_parameter_T1SendResult}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1SendResult, CAN_BUS_tlc::_ProjectionWrite_T1SendResult, CAN_BUS_tlc::_ProjectionRead_T1SendResult::Hash, CAN_BUS_tlc::_ProjectionRead_T1SendResult::HashEqual> _OpCache_with_parameter_T1SendResult = _OpCache_with_parameter_T1SendResult_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T1SendResult.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T1SendResult.end()) { + CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = writeState_ptr->second; + copiedState._apply_update_for_T1SendResult(writeState); + } else { + copiedState.T1SendResult(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T1SendResult writeState = copiedState._update_for_T1SendResult(); + _OpCache_with_parameter_T1SendResult.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T1SendResult"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T1SendResult"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T1Wait read__tr_T1Wait_state = state._projected_state_for__tr_T1Wait(); - auto _trid_4_ptr = _OpCache_tr_T1Wait.find(read__tr_T1Wait_state); - if(_trid_4_ptr == _OpCache_tr_T1Wait.end()) { - BSet<BInteger> _trid_4 = state._tr_T1Wait(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T1Wait_lock(_ProjectionRead__tr_T1Wait_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T1Wait_lock(_ProjectionRead__tr_T1Wait_mutex); + auto _trid_4_ptr = _OpCache_tr_T1Wait.find(read__tr_T1Wait_state); + if(_trid_4_ptr == _OpCache_tr_T1Wait.end()) { + BSet<BInteger> _trid_4 = state._tr_T1Wait(); _OpCache_tr_T1Wait.insert({read__tr_T1Wait_state, _trid_4}); - } - for(const BInteger& param : _trid_4) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T1Wait readState = state._projected_state_for_T1Wait(); + for(const BInteger& param : _trid_4) { + BInteger _tmp_1 = param; - auto _OpCache_with_parameter_T1Wait_ptr = _OpCache_T1Wait.find(param); - if(_OpCache_with_parameter_T1Wait_ptr == _OpCache_T1Wait.end()) { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T1Wait readState = state._projected_state_for_T1Wait(); { std::unique_lock<std::mutex> _ProjectionRead_T1Wait_lock(_ProjectionRead_T1Wait_mutex); - copiedState.T1Wait(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = copiedState._update_for_T1Wait(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual>(); - _OpCache_with_parameter_T1Wait.insert({readState, writeState}); - _OpCache_T1Wait.insert({param, _OpCache_with_parameter_T1Wait}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T1Wait_lock(_ProjectionRead_T1Wait_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = _OpCache_with_parameter_T1Wait_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T1Wait.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T1Wait.end()) { - CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = writeState_ptr->second; - copiedState._apply_update_for_T1Wait(writeState); - } else { + auto _OpCache_with_parameter_T1Wait_ptr = _OpCache_T1Wait.find(param); + if(_OpCache_with_parameter_T1Wait_ptr == _OpCache_T1Wait.end()) { copiedState.T1Wait(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = copiedState._update_for_T1Wait(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual>(); _OpCache_with_parameter_T1Wait.insert({readState, writeState}); + _OpCache_T1Wait.insert({param, _OpCache_with_parameter_T1Wait}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = _OpCache_with_parameter_T1Wait_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T1Wait.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T1Wait.end()) { + CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = writeState_ptr->second; + copiedState._apply_update_for_T1Wait(writeState); + } else { + copiedState.T1Wait(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = copiedState._update_for_T1Wait(); + _OpCache_with_parameter_T1Wait.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T1Wait"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BInteger> _trid_4 = _trid_4_ptr->second; - for(const BInteger& param : _trid_4) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T1Wait readState = state._projected_state_for_T1Wait(); - - auto _OpCache_with_parameter_T1Wait_ptr = _OpCache_T1Wait.find(param); - if(_OpCache_with_parameter_T1Wait_ptr == _OpCache_T1Wait.end()) { + copiedState.stateAccessedVia = "T1Wait"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T1Wait_lock(_ProjectionRead_T1Wait_mutex); - copiedState.T1Wait(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = copiedState._update_for_T1Wait(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual>(); - _OpCache_with_parameter_T1Wait.insert({readState, writeState}); - _OpCache_T1Wait.insert({param, _OpCache_with_parameter_T1Wait}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BInteger> _trid_4 = _trid_4_ptr->second; + for(const BInteger& param : _trid_4) { + BInteger _tmp_1 = param; + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T1Wait readState = state._projected_state_for_T1Wait(); { std::unique_lock<std::mutex> _ProjectionRead_T1Wait_lock(_ProjectionRead_T1Wait_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = _OpCache_with_parameter_T1Wait_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T1Wait.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T1Wait.end()) { - CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = writeState_ptr->second; - copiedState._apply_update_for_T1Wait(writeState); - } else { + auto _OpCache_with_parameter_T1Wait_ptr = _OpCache_T1Wait.find(param); + if(_OpCache_with_parameter_T1Wait_ptr == _OpCache_T1Wait.end()) { copiedState.T1Wait(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = copiedState._update_for_T1Wait(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual>(); _OpCache_with_parameter_T1Wait.insert({readState, writeState}); + _OpCache_T1Wait.insert({param, _OpCache_with_parameter_T1Wait}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T1Wait, CAN_BUS_tlc::_ProjectionWrite_T1Wait, CAN_BUS_tlc::_ProjectionRead_T1Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T1Wait::HashEqual> _OpCache_with_parameter_T1Wait = _OpCache_with_parameter_T1Wait_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T1Wait.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T1Wait.end()) { + CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = writeState_ptr->second; + copiedState._apply_update_for_T1Wait(writeState); + } else { + copiedState.T1Wait(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T1Wait writeState = copiedState._update_for_T1Wait(); + _OpCache_with_parameter_T1Wait.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T1Wait"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T1Wait"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T2Evaluate read__tr_T2Evaluate_state = state._projected_state_for__tr_T2Evaluate(); bool _trid_5 = false; - auto _obj__trid_5_ptr = _OpCache_tr_T2Evaluate.find(read__tr_T2Evaluate_state); - if(_obj__trid_5_ptr == _OpCache_tr_T2Evaluate.end()) { - _trid_5 = state._tr_T2Evaluate(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2Evaluate_lock(_ProjectionRead__tr_T2Evaluate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2Evaluate_lock(_ProjectionRead__tr_T2Evaluate_mutex); + auto _obj__trid_5_ptr = _OpCache_tr_T2Evaluate.find(read__tr_T2Evaluate_state); + if(_obj__trid_5_ptr == _OpCache_tr_T2Evaluate.end()) { + _trid_5 = state._tr_T2Evaluate(); _OpCache_tr_T2Evaluate.insert({read__tr_T2Evaluate_state, _trid_5}); + } else { + _trid_5 = _obj__trid_5_ptr->second; } - } else { - _trid_5 = _obj__trid_5_ptr->second; } if(_trid_5) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T2Evaluate readState = state._projected_state_for_T2Evaluate(); - - auto _OpCache_with_parameter_T2Evaluate_ptr = _OpCache_T2Evaluate.find(_trid_5); - if(_OpCache_with_parameter_T2Evaluate_ptr == _OpCache_T2Evaluate.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Evaluate_lock(_ProjectionRead_T2Evaluate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T2Evaluate_lock(_ProjectionRead_T2Evaluate_mutex); + auto _OpCache_with_parameter_T2Evaluate_ptr = _OpCache_T2Evaluate.find(_trid_5); + if(_OpCache_with_parameter_T2Evaluate_ptr == _OpCache_T2Evaluate.end()) { copiedState.T2Evaluate(); CAN_BUS_tlc::_ProjectionWrite_T2Evaluate writeState = copiedState._update_for_T2Evaluate(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Evaluate, CAN_BUS_tlc::_ProjectionWrite_T2Evaluate, CAN_BUS_tlc::_ProjectionRead_T2Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T2Evaluate::HashEqual> _OpCache_with_parameter_T2Evaluate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Evaluate, CAN_BUS_tlc::_ProjectionWrite_T2Evaluate, CAN_BUS_tlc::_ProjectionRead_T2Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T2Evaluate::HashEqual>(); _OpCache_with_parameter_T2Evaluate.insert({readState, writeState}); _OpCache_T2Evaluate.insert({_trid_5, _OpCache_with_parameter_T2Evaluate}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Evaluate_lock(_ProjectionRead_T2Evaluate_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Evaluate, CAN_BUS_tlc::_ProjectionWrite_T2Evaluate, CAN_BUS_tlc::_ProjectionRead_T2Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T2Evaluate::HashEqual> _OpCache_with_parameter_T2Evaluate = _OpCache_with_parameter_T2Evaluate_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T2Evaluate.find(readState); if(writeState_ptr != _OpCache_with_parameter_T2Evaluate.end()) { @@ -6570,7 +6531,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T2Evaluate"; result.insert(copiedState); { @@ -6579,125 +6539,111 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_T2ReadBus read__tr_T2ReadBus_state = state._projected_state_for__tr_T2ReadBus(); - auto _trid_6_ptr = _OpCache_tr_T2ReadBus.find(read__tr_T2ReadBus_state); - if(_trid_6_ptr == _OpCache_tr_T2ReadBus.end()) { - BSet<BTuple<BInteger, BInteger >> _trid_6 = state._tr_T2ReadBus(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2ReadBus_lock(_ProjectionRead__tr_T2ReadBus_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2ReadBus_lock(_ProjectionRead__tr_T2ReadBus_mutex); + auto _trid_6_ptr = _OpCache_tr_T2ReadBus.find(read__tr_T2ReadBus_state); + if(_trid_6_ptr == _OpCache_tr_T2ReadBus.end()) { + BSet<BTuple<BInteger, BInteger >> _trid_6 = state._tr_T2ReadBus(); _OpCache_tr_T2ReadBus.insert({read__tr_T2ReadBus_state, _trid_6}); - } - for(const BTuple<BInteger, BInteger >& param : _trid_6) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2ReadBus readState = state._projected_state_for_T2ReadBus(); + for(const BTuple<BInteger, BInteger >& param : _trid_6) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_T2ReadBus_ptr = _OpCache_T2ReadBus.find(param); - if(_OpCache_with_parameter_T2ReadBus_ptr == _OpCache_T2ReadBus.end()) { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2ReadBus readState = state._projected_state_for_T2ReadBus(); { std::unique_lock<std::mutex> _ProjectionRead_T2ReadBus_lock(_ProjectionRead_T2ReadBus_mutex); - copiedState.T2ReadBus(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = copiedState._update_for_T2ReadBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual>(); - _OpCache_with_parameter_T2ReadBus.insert({readState, writeState}); - _OpCache_T2ReadBus.insert({param, _OpCache_with_parameter_T2ReadBus}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2ReadBus_lock(_ProjectionRead_T2ReadBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = _OpCache_with_parameter_T2ReadBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2ReadBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2ReadBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T2ReadBus(writeState); - } else { + auto _OpCache_with_parameter_T2ReadBus_ptr = _OpCache_T2ReadBus.find(param); + if(_OpCache_with_parameter_T2ReadBus_ptr == _OpCache_T2ReadBus.end()) { copiedState.T2ReadBus(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = copiedState._update_for_T2ReadBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual>(); _OpCache_with_parameter_T2ReadBus.insert({readState, writeState}); + _OpCache_T2ReadBus.insert({param, _OpCache_with_parameter_T2ReadBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = _OpCache_with_parameter_T2ReadBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2ReadBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2ReadBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T2ReadBus(writeState); + } else { + copiedState.T2ReadBus(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = copiedState._update_for_T2ReadBus(); + _OpCache_with_parameter_T2ReadBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2ReadBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BInteger, BInteger >> _trid_6 = _trid_6_ptr->second; - for(const BTuple<BInteger, BInteger >& param : _trid_6) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2ReadBus readState = state._projected_state_for_T2ReadBus(); - - auto _OpCache_with_parameter_T2ReadBus_ptr = _OpCache_T2ReadBus.find(param); - if(_OpCache_with_parameter_T2ReadBus_ptr == _OpCache_T2ReadBus.end()) { + copiedState.stateAccessedVia = "T2ReadBus"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T2ReadBus_lock(_ProjectionRead_T2ReadBus_mutex); - copiedState.T2ReadBus(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = copiedState._update_for_T2ReadBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual>(); - _OpCache_with_parameter_T2ReadBus.insert({readState, writeState}); - _OpCache_T2ReadBus.insert({param, _OpCache_with_parameter_T2ReadBus}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BInteger, BInteger >> _trid_6 = _trid_6_ptr->second; + for(const BTuple<BInteger, BInteger >& param : _trid_6) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2ReadBus readState = state._projected_state_for_T2ReadBus(); { std::unique_lock<std::mutex> _ProjectionRead_T2ReadBus_lock(_ProjectionRead_T2ReadBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = _OpCache_with_parameter_T2ReadBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2ReadBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2ReadBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T2ReadBus(writeState); - } else { + auto _OpCache_with_parameter_T2ReadBus_ptr = _OpCache_T2ReadBus.find(param); + if(_OpCache_with_parameter_T2ReadBus_ptr == _OpCache_T2ReadBus.end()) { copiedState.T2ReadBus(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = copiedState._update_for_T2ReadBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual>(); _OpCache_with_parameter_T2ReadBus.insert({readState, writeState}); + _OpCache_T2ReadBus.insert({param, _OpCache_with_parameter_T2ReadBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReadBus, CAN_BUS_tlc::_ProjectionWrite_T2ReadBus, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReadBus::HashEqual> _OpCache_with_parameter_T2ReadBus = _OpCache_with_parameter_T2ReadBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2ReadBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2ReadBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T2ReadBus(writeState); + } else { + copiedState.T2ReadBus(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2ReadBus writeState = copiedState._update_for_T2ReadBus(); + _OpCache_with_parameter_T2ReadBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2ReadBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T2ReadBus"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T2Reset read__tr_T2Reset_state = state._projected_state_for__tr_T2Reset(); bool _trid_7 = false; - auto _obj__trid_7_ptr = _OpCache_tr_T2Reset.find(read__tr_T2Reset_state); - if(_obj__trid_7_ptr == _OpCache_tr_T2Reset.end()) { - _trid_7 = state._tr_T2Reset(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2Reset_lock(_ProjectionRead__tr_T2Reset_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2Reset_lock(_ProjectionRead__tr_T2Reset_mutex); + auto _obj__trid_7_ptr = _OpCache_tr_T2Reset.find(read__tr_T2Reset_state); + if(_obj__trid_7_ptr == _OpCache_tr_T2Reset.end()) { + _trid_7 = state._tr_T2Reset(); _OpCache_tr_T2Reset.insert({read__tr_T2Reset_state, _trid_7}); + } else { + _trid_7 = _obj__trid_7_ptr->second; } - } else { - _trid_7 = _obj__trid_7_ptr->second; } if(_trid_7) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T2Reset readState = state._projected_state_for_T2Reset(); - - auto _OpCache_with_parameter_T2Reset_ptr = _OpCache_T2Reset.find(_trid_7); - if(_OpCache_with_parameter_T2Reset_ptr == _OpCache_T2Reset.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Reset_lock(_ProjectionRead_T2Reset_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T2Reset_lock(_ProjectionRead_T2Reset_mutex); + auto _OpCache_with_parameter_T2Reset_ptr = _OpCache_T2Reset.find(_trid_7); + if(_OpCache_with_parameter_T2Reset_ptr == _OpCache_T2Reset.end()) { copiedState.T2Reset(); CAN_BUS_tlc::_ProjectionWrite_T2Reset writeState = copiedState._update_for_T2Reset(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Reset, CAN_BUS_tlc::_ProjectionWrite_T2Reset, CAN_BUS_tlc::_ProjectionRead_T2Reset::Hash, CAN_BUS_tlc::_ProjectionRead_T2Reset::HashEqual> _OpCache_with_parameter_T2Reset = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Reset, CAN_BUS_tlc::_ProjectionWrite_T2Reset, CAN_BUS_tlc::_ProjectionRead_T2Reset::Hash, CAN_BUS_tlc::_ProjectionRead_T2Reset::HashEqual>(); _OpCache_with_parameter_T2Reset.insert({readState, writeState}); _OpCache_T2Reset.insert({_trid_7, _OpCache_with_parameter_T2Reset}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Reset_lock(_ProjectionRead_T2Reset_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Reset, CAN_BUS_tlc::_ProjectionWrite_T2Reset, CAN_BUS_tlc::_ProjectionRead_T2Reset::Hash, CAN_BUS_tlc::_ProjectionRead_T2Reset::HashEqual> _OpCache_with_parameter_T2Reset = _OpCache_with_parameter_T2Reset_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T2Reset.find(readState); if(writeState_ptr != _OpCache_with_parameter_T2Reset.end()) { @@ -6710,7 +6656,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T2Reset"; result.insert(copiedState); { @@ -6720,33 +6665,29 @@ class ModelChecker { } CAN_BUS_tlc::_ProjectionRead__tr_T2Complete read__tr_T2Complete_state = state._projected_state_for__tr_T2Complete(); bool _trid_8 = false; - auto _obj__trid_8_ptr = _OpCache_tr_T2Complete.find(read__tr_T2Complete_state); - if(_obj__trid_8_ptr == _OpCache_tr_T2Complete.end()) { - _trid_8 = state._tr_T2Complete(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2Complete_lock(_ProjectionRead__tr_T2Complete_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2Complete_lock(_ProjectionRead__tr_T2Complete_mutex); + auto _obj__trid_8_ptr = _OpCache_tr_T2Complete.find(read__tr_T2Complete_state); + if(_obj__trid_8_ptr == _OpCache_tr_T2Complete.end()) { + _trid_8 = state._tr_T2Complete(); _OpCache_tr_T2Complete.insert({read__tr_T2Complete_state, _trid_8}); + } else { + _trid_8 = _obj__trid_8_ptr->second; } - } else { - _trid_8 = _obj__trid_8_ptr->second; } if(_trid_8) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T2Complete readState = state._projected_state_for_T2Complete(); - - auto _OpCache_with_parameter_T2Complete_ptr = _OpCache_T2Complete.find(_trid_8); - if(_OpCache_with_parameter_T2Complete_ptr == _OpCache_T2Complete.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Complete_lock(_ProjectionRead_T2Complete_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T2Complete_lock(_ProjectionRead_T2Complete_mutex); + auto _OpCache_with_parameter_T2Complete_ptr = _OpCache_T2Complete.find(_trid_8); + if(_OpCache_with_parameter_T2Complete_ptr == _OpCache_T2Complete.end()) { copiedState.T2Complete(); CAN_BUS_tlc::_ProjectionWrite_T2Complete writeState = copiedState._update_for_T2Complete(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Complete, CAN_BUS_tlc::_ProjectionWrite_T2Complete, CAN_BUS_tlc::_ProjectionRead_T2Complete::Hash, CAN_BUS_tlc::_ProjectionRead_T2Complete::HashEqual> _OpCache_with_parameter_T2Complete = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Complete, CAN_BUS_tlc::_ProjectionWrite_T2Complete, CAN_BUS_tlc::_ProjectionRead_T2Complete::Hash, CAN_BUS_tlc::_ProjectionRead_T2Complete::HashEqual>(); _OpCache_with_parameter_T2Complete.insert({readState, writeState}); _OpCache_T2Complete.insert({_trid_8, _OpCache_with_parameter_T2Complete}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Complete_lock(_ProjectionRead_T2Complete_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Complete, CAN_BUS_tlc::_ProjectionWrite_T2Complete, CAN_BUS_tlc::_ProjectionRead_T2Complete::Hash, CAN_BUS_tlc::_ProjectionRead_T2Complete::HashEqual> _OpCache_with_parameter_T2Complete = _OpCache_with_parameter_T2Complete_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T2Complete.find(readState); if(writeState_ptr != _OpCache_with_parameter_T2Complete.end()) { @@ -6759,7 +6700,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T2Complete"; result.insert(copiedState); { @@ -6768,123 +6708,109 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_T2ReleaseBus read__tr_T2ReleaseBus_state = state._projected_state_for__tr_T2ReleaseBus(); - auto _trid_9_ptr = _OpCache_tr_T2ReleaseBus.find(read__tr_T2ReleaseBus_state); - if(_trid_9_ptr == _OpCache_tr_T2ReleaseBus.end()) { - BSet<BInteger> _trid_9 = state._tr_T2ReleaseBus(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2ReleaseBus_lock(_ProjectionRead__tr_T2ReleaseBus_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2ReleaseBus_lock(_ProjectionRead__tr_T2ReleaseBus_mutex); + auto _trid_9_ptr = _OpCache_tr_T2ReleaseBus.find(read__tr_T2ReleaseBus_state); + if(_trid_9_ptr == _OpCache_tr_T2ReleaseBus.end()) { + BSet<BInteger> _trid_9 = state._tr_T2ReleaseBus(); _OpCache_tr_T2ReleaseBus.insert({read__tr_T2ReleaseBus_state, _trid_9}); - } - for(const BInteger& param : _trid_9) { - BInteger _tmp_1 = param; + for(const BInteger& param : _trid_9) { + BInteger _tmp_1 = param; - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus readState = state._projected_state_for_T2ReleaseBus(); - - auto _OpCache_with_parameter_T2ReleaseBus_ptr = _OpCache_T2ReleaseBus.find(param); - if(_OpCache_with_parameter_T2ReleaseBus_ptr == _OpCache_T2ReleaseBus.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T2ReleaseBus_lock(_ProjectionRead_T2ReleaseBus_mutex); - copiedState.T2ReleaseBus(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = copiedState._update_for_T2ReleaseBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual>(); - _OpCache_with_parameter_T2ReleaseBus.insert({readState, writeState}); - _OpCache_T2ReleaseBus.insert({param, _OpCache_with_parameter_T2ReleaseBus}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus readState = state._projected_state_for_T2ReleaseBus(); { std::unique_lock<std::mutex> _ProjectionRead_T2ReleaseBus_lock(_ProjectionRead_T2ReleaseBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = _OpCache_with_parameter_T2ReleaseBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2ReleaseBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2ReleaseBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T2ReleaseBus(writeState); - } else { + auto _OpCache_with_parameter_T2ReleaseBus_ptr = _OpCache_T2ReleaseBus.find(param); + if(_OpCache_with_parameter_T2ReleaseBus_ptr == _OpCache_T2ReleaseBus.end()) { copiedState.T2ReleaseBus(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = copiedState._update_for_T2ReleaseBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual>(); _OpCache_with_parameter_T2ReleaseBus.insert({readState, writeState}); + _OpCache_T2ReleaseBus.insert({param, _OpCache_with_parameter_T2ReleaseBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = _OpCache_with_parameter_T2ReleaseBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2ReleaseBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2ReleaseBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T2ReleaseBus(writeState); + } else { + copiedState.T2ReleaseBus(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = copiedState._update_for_T2ReleaseBus(); + _OpCache_with_parameter_T2ReleaseBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2ReleaseBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BInteger> _trid_9 = _trid_9_ptr->second; - for(const BInteger& param : _trid_9) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus readState = state._projected_state_for_T2ReleaseBus(); - - auto _OpCache_with_parameter_T2ReleaseBus_ptr = _OpCache_T2ReleaseBus.find(param); - if(_OpCache_with_parameter_T2ReleaseBus_ptr == _OpCache_T2ReleaseBus.end()) { + copiedState.stateAccessedVia = "T2ReleaseBus"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T2ReleaseBus_lock(_ProjectionRead_T2ReleaseBus_mutex); - copiedState.T2ReleaseBus(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = copiedState._update_for_T2ReleaseBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual>(); - _OpCache_with_parameter_T2ReleaseBus.insert({readState, writeState}); - _OpCache_T2ReleaseBus.insert({param, _OpCache_with_parameter_T2ReleaseBus}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BInteger> _trid_9 = _trid_9_ptr->second; + for(const BInteger& param : _trid_9) { + BInteger _tmp_1 = param; + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus readState = state._projected_state_for_T2ReleaseBus(); { std::unique_lock<std::mutex> _ProjectionRead_T2ReleaseBus_lock(_ProjectionRead_T2ReleaseBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = _OpCache_with_parameter_T2ReleaseBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2ReleaseBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2ReleaseBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T2ReleaseBus(writeState); - } else { + auto _OpCache_with_parameter_T2ReleaseBus_ptr = _OpCache_T2ReleaseBus.find(param); + if(_OpCache_with_parameter_T2ReleaseBus_ptr == _OpCache_T2ReleaseBus.end()) { copiedState.T2ReleaseBus(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = copiedState._update_for_T2ReleaseBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual>(); _OpCache_with_parameter_T2ReleaseBus.insert({readState, writeState}); + _OpCache_T2ReleaseBus.insert({param, _OpCache_with_parameter_T2ReleaseBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2ReleaseBus::HashEqual> _OpCache_with_parameter_T2ReleaseBus = _OpCache_with_parameter_T2ReleaseBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2ReleaseBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2ReleaseBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T2ReleaseBus(writeState); + } else { + copiedState.T2ReleaseBus(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2ReleaseBus writeState = copiedState._update_for_T2ReleaseBus(); + _OpCache_with_parameter_T2ReleaseBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2ReleaseBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T2ReleaseBus"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T2Calculate read__tr_T2Calculate_state = state._projected_state_for__tr_T2Calculate(); bool _trid_10 = false; - auto _obj__trid_10_ptr = _OpCache_tr_T2Calculate.find(read__tr_T2Calculate_state); - if(_obj__trid_10_ptr == _OpCache_tr_T2Calculate.end()) { - _trid_10 = state._tr_T2Calculate(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2Calculate_lock(_ProjectionRead__tr_T2Calculate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2Calculate_lock(_ProjectionRead__tr_T2Calculate_mutex); + auto _obj__trid_10_ptr = _OpCache_tr_T2Calculate.find(read__tr_T2Calculate_state); + if(_obj__trid_10_ptr == _OpCache_tr_T2Calculate.end()) { + _trid_10 = state._tr_T2Calculate(); _OpCache_tr_T2Calculate.insert({read__tr_T2Calculate_state, _trid_10}); + } else { + _trid_10 = _obj__trid_10_ptr->second; } - } else { - _trid_10 = _obj__trid_10_ptr->second; } if(_trid_10) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T2Calculate readState = state._projected_state_for_T2Calculate(); - - auto _OpCache_with_parameter_T2Calculate_ptr = _OpCache_T2Calculate.find(_trid_10); - if(_OpCache_with_parameter_T2Calculate_ptr == _OpCache_T2Calculate.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Calculate_lock(_ProjectionRead_T2Calculate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T2Calculate_lock(_ProjectionRead_T2Calculate_mutex); + auto _OpCache_with_parameter_T2Calculate_ptr = _OpCache_T2Calculate.find(_trid_10); + if(_OpCache_with_parameter_T2Calculate_ptr == _OpCache_T2Calculate.end()) { copiedState.T2Calculate(); CAN_BUS_tlc::_ProjectionWrite_T2Calculate writeState = copiedState._update_for_T2Calculate(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Calculate, CAN_BUS_tlc::_ProjectionWrite_T2Calculate, CAN_BUS_tlc::_ProjectionRead_T2Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T2Calculate::HashEqual> _OpCache_with_parameter_T2Calculate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Calculate, CAN_BUS_tlc::_ProjectionWrite_T2Calculate, CAN_BUS_tlc::_ProjectionRead_T2Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T2Calculate::HashEqual>(); _OpCache_with_parameter_T2Calculate.insert({readState, writeState}); _OpCache_T2Calculate.insert({_trid_10, _OpCache_with_parameter_T2Calculate}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Calculate_lock(_ProjectionRead_T2Calculate_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Calculate, CAN_BUS_tlc::_ProjectionWrite_T2Calculate, CAN_BUS_tlc::_ProjectionRead_T2Calculate::Hash, CAN_BUS_tlc::_ProjectionRead_T2Calculate::HashEqual> _OpCache_with_parameter_T2Calculate = _OpCache_with_parameter_T2Calculate_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T2Calculate.find(readState); if(writeState_ptr != _OpCache_with_parameter_T2Calculate.end()) { @@ -6897,7 +6823,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T2Calculate"; result.insert(copiedState); { @@ -6906,214 +6831,190 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_T2WriteBus read__tr_T2WriteBus_state = state._projected_state_for__tr_T2WriteBus(); - auto _trid_11_ptr = _OpCache_tr_T2WriteBus.find(read__tr_T2WriteBus_state); - if(_trid_11_ptr == _OpCache_tr_T2WriteBus.end()) { - BSet<BTuple<BInteger, BInteger >> _trid_11 = state._tr_T2WriteBus(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2WriteBus_lock(_ProjectionRead__tr_T2WriteBus_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2WriteBus_lock(_ProjectionRead__tr_T2WriteBus_mutex); + auto _trid_11_ptr = _OpCache_tr_T2WriteBus.find(read__tr_T2WriteBus_state); + if(_trid_11_ptr == _OpCache_tr_T2WriteBus.end()) { + BSet<BTuple<BInteger, BInteger >> _trid_11 = state._tr_T2WriteBus(); _OpCache_tr_T2WriteBus.insert({read__tr_T2WriteBus_state, _trid_11}); - } - for(const BTuple<BInteger, BInteger >& param : _trid_11) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2WriteBus readState = state._projected_state_for_T2WriteBus(); + for(const BTuple<BInteger, BInteger >& param : _trid_11) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_T2WriteBus_ptr = _OpCache_T2WriteBus.find(param); - if(_OpCache_with_parameter_T2WriteBus_ptr == _OpCache_T2WriteBus.end()) { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2WriteBus readState = state._projected_state_for_T2WriteBus(); { std::unique_lock<std::mutex> _ProjectionRead_T2WriteBus_lock(_ProjectionRead_T2WriteBus_mutex); - copiedState.T2WriteBus(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = copiedState._update_for_T2WriteBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual>(); - _OpCache_with_parameter_T2WriteBus.insert({readState, writeState}); - _OpCache_T2WriteBus.insert({param, _OpCache_with_parameter_T2WriteBus}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2WriteBus_lock(_ProjectionRead_T2WriteBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = _OpCache_with_parameter_T2WriteBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2WriteBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2WriteBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T2WriteBus(writeState); - } else { + auto _OpCache_with_parameter_T2WriteBus_ptr = _OpCache_T2WriteBus.find(param); + if(_OpCache_with_parameter_T2WriteBus_ptr == _OpCache_T2WriteBus.end()) { copiedState.T2WriteBus(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = copiedState._update_for_T2WriteBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual>(); _OpCache_with_parameter_T2WriteBus.insert({readState, writeState}); + _OpCache_T2WriteBus.insert({param, _OpCache_with_parameter_T2WriteBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = _OpCache_with_parameter_T2WriteBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2WriteBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2WriteBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T2WriteBus(writeState); + } else { + copiedState.T2WriteBus(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = copiedState._update_for_T2WriteBus(); + _OpCache_with_parameter_T2WriteBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2WriteBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BInteger, BInteger >> _trid_11 = _trid_11_ptr->second; - for(const BTuple<BInteger, BInteger >& param : _trid_11) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2WriteBus readState = state._projected_state_for_T2WriteBus(); - - auto _OpCache_with_parameter_T2WriteBus_ptr = _OpCache_T2WriteBus.find(param); - if(_OpCache_with_parameter_T2WriteBus_ptr == _OpCache_T2WriteBus.end()) { + copiedState.stateAccessedVia = "T2WriteBus"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T2WriteBus_lock(_ProjectionRead_T2WriteBus_mutex); - copiedState.T2WriteBus(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = copiedState._update_for_T2WriteBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual>(); - _OpCache_with_parameter_T2WriteBus.insert({readState, writeState}); - _OpCache_T2WriteBus.insert({param, _OpCache_with_parameter_T2WriteBus}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BInteger, BInteger >> _trid_11 = _trid_11_ptr->second; + for(const BTuple<BInteger, BInteger >& param : _trid_11) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2WriteBus readState = state._projected_state_for_T2WriteBus(); { std::unique_lock<std::mutex> _ProjectionRead_T2WriteBus_lock(_ProjectionRead_T2WriteBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = _OpCache_with_parameter_T2WriteBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2WriteBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2WriteBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T2WriteBus(writeState); - } else { + auto _OpCache_with_parameter_T2WriteBus_ptr = _OpCache_T2WriteBus.find(param); + if(_OpCache_with_parameter_T2WriteBus_ptr == _OpCache_T2WriteBus.end()) { copiedState.T2WriteBus(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = copiedState._update_for_T2WriteBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual>(); _OpCache_with_parameter_T2WriteBus.insert({readState, writeState}); + _OpCache_T2WriteBus.insert({param, _OpCache_with_parameter_T2WriteBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2WriteBus, CAN_BUS_tlc::_ProjectionWrite_T2WriteBus, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::Hash, CAN_BUS_tlc::_ProjectionRead_T2WriteBus::HashEqual> _OpCache_with_parameter_T2WriteBus = _OpCache_with_parameter_T2WriteBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2WriteBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2WriteBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T2WriteBus(writeState); + } else { + copiedState.T2WriteBus(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2WriteBus writeState = copiedState._update_for_T2WriteBus(); + _OpCache_with_parameter_T2WriteBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2WriteBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T2WriteBus"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T2Wait read__tr_T2Wait_state = state._projected_state_for__tr_T2Wait(); - auto _trid_12_ptr = _OpCache_tr_T2Wait.find(read__tr_T2Wait_state); - if(_trid_12_ptr == _OpCache_tr_T2Wait.end()) { - BSet<BInteger> _trid_12 = state._tr_T2Wait(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T2Wait_lock(_ProjectionRead__tr_T2Wait_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T2Wait_lock(_ProjectionRead__tr_T2Wait_mutex); + auto _trid_12_ptr = _OpCache_tr_T2Wait.find(read__tr_T2Wait_state); + if(_trid_12_ptr == _OpCache_tr_T2Wait.end()) { + BSet<BInteger> _trid_12 = state._tr_T2Wait(); _OpCache_tr_T2Wait.insert({read__tr_T2Wait_state, _trid_12}); - } - for(const BInteger& param : _trid_12) { - BInteger _tmp_1 = param; + for(const BInteger& param : _trid_12) { + BInteger _tmp_1 = param; - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2Wait readState = state._projected_state_for_T2Wait(); - - auto _OpCache_with_parameter_T2Wait_ptr = _OpCache_T2Wait.find(param); - if(_OpCache_with_parameter_T2Wait_ptr == _OpCache_T2Wait.end()) { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2Wait readState = state._projected_state_for_T2Wait(); { std::unique_lock<std::mutex> _ProjectionRead_T2Wait_lock(_ProjectionRead_T2Wait_mutex); - copiedState.T2Wait(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = copiedState._update_for_T2Wait(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual>(); - _OpCache_with_parameter_T2Wait.insert({readState, writeState}); - _OpCache_T2Wait.insert({param, _OpCache_with_parameter_T2Wait}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T2Wait_lock(_ProjectionRead_T2Wait_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = _OpCache_with_parameter_T2Wait_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2Wait.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2Wait.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = writeState_ptr->second; - copiedState._apply_update_for_T2Wait(writeState); - } else { + auto _OpCache_with_parameter_T2Wait_ptr = _OpCache_T2Wait.find(param); + if(_OpCache_with_parameter_T2Wait_ptr == _OpCache_T2Wait.end()) { copiedState.T2Wait(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = copiedState._update_for_T2Wait(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual>(); _OpCache_with_parameter_T2Wait.insert({readState, writeState}); + _OpCache_T2Wait.insert({param, _OpCache_with_parameter_T2Wait}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = _OpCache_with_parameter_T2Wait_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2Wait.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2Wait.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = writeState_ptr->second; + copiedState._apply_update_for_T2Wait(writeState); + } else { + copiedState.T2Wait(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = copiedState._update_for_T2Wait(); + _OpCache_with_parameter_T2Wait.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2Wait"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BInteger> _trid_12 = _trid_12_ptr->second; - for(const BInteger& param : _trid_12) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T2Wait readState = state._projected_state_for_T2Wait(); - - auto _OpCache_with_parameter_T2Wait_ptr = _OpCache_T2Wait.find(param); - if(_OpCache_with_parameter_T2Wait_ptr == _OpCache_T2Wait.end()) { + copiedState.stateAccessedVia = "T2Wait"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T2Wait_lock(_ProjectionRead_T2Wait_mutex); - copiedState.T2Wait(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = copiedState._update_for_T2Wait(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual>(); - _OpCache_with_parameter_T2Wait.insert({readState, writeState}); - _OpCache_T2Wait.insert({param, _OpCache_with_parameter_T2Wait}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BInteger> _trid_12 = _trid_12_ptr->second; + for(const BInteger& param : _trid_12) { + BInteger _tmp_1 = param; + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T2Wait readState = state._projected_state_for_T2Wait(); { std::unique_lock<std::mutex> _ProjectionRead_T2Wait_lock(_ProjectionRead_T2Wait_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = _OpCache_with_parameter_T2Wait_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T2Wait.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T2Wait.end()) { - CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = writeState_ptr->second; - copiedState._apply_update_for_T2Wait(writeState); - } else { + auto _OpCache_with_parameter_T2Wait_ptr = _OpCache_T2Wait.find(param); + if(_OpCache_with_parameter_T2Wait_ptr == _OpCache_T2Wait.end()) { copiedState.T2Wait(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = copiedState._update_for_T2Wait(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual>(); _OpCache_with_parameter_T2Wait.insert({readState, writeState}); + _OpCache_T2Wait.insert({param, _OpCache_with_parameter_T2Wait}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T2Wait, CAN_BUS_tlc::_ProjectionWrite_T2Wait, CAN_BUS_tlc::_ProjectionRead_T2Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T2Wait::HashEqual> _OpCache_with_parameter_T2Wait = _OpCache_with_parameter_T2Wait_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T2Wait.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T2Wait.end()) { + CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = writeState_ptr->second; + copiedState._apply_update_for_T2Wait(writeState); + } else { + copiedState.T2Wait(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T2Wait writeState = copiedState._update_for_T2Wait(); + _OpCache_with_parameter_T2Wait.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T2Wait"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T2Wait"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T3Initiate read__tr_T3Initiate_state = state._projected_state_for__tr_T3Initiate(); bool _trid_13 = false; - auto _obj__trid_13_ptr = _OpCache_tr_T3Initiate.find(read__tr_T3Initiate_state); - if(_obj__trid_13_ptr == _OpCache_tr_T3Initiate.end()) { - _trid_13 = state._tr_T3Initiate(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3Initiate_lock(_ProjectionRead__tr_T3Initiate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3Initiate_lock(_ProjectionRead__tr_T3Initiate_mutex); + auto _obj__trid_13_ptr = _OpCache_tr_T3Initiate.find(read__tr_T3Initiate_state); + if(_obj__trid_13_ptr == _OpCache_tr_T3Initiate.end()) { + _trid_13 = state._tr_T3Initiate(); _OpCache_tr_T3Initiate.insert({read__tr_T3Initiate_state, _trid_13}); + } else { + _trid_13 = _obj__trid_13_ptr->second; } - } else { - _trid_13 = _obj__trid_13_ptr->second; } if(_trid_13) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T3Initiate readState = state._projected_state_for_T3Initiate(); - - auto _OpCache_with_parameter_T3Initiate_ptr = _OpCache_T3Initiate.find(_trid_13); - if(_OpCache_with_parameter_T3Initiate_ptr == _OpCache_T3Initiate.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Initiate_lock(_ProjectionRead_T3Initiate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T3Initiate_lock(_ProjectionRead_T3Initiate_mutex); + auto _OpCache_with_parameter_T3Initiate_ptr = _OpCache_T3Initiate.find(_trid_13); + if(_OpCache_with_parameter_T3Initiate_ptr == _OpCache_T3Initiate.end()) { copiedState.T3Initiate(); CAN_BUS_tlc::_ProjectionWrite_T3Initiate writeState = copiedState._update_for_T3Initiate(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Initiate, CAN_BUS_tlc::_ProjectionWrite_T3Initiate, CAN_BUS_tlc::_ProjectionRead_T3Initiate::Hash, CAN_BUS_tlc::_ProjectionRead_T3Initiate::HashEqual> _OpCache_with_parameter_T3Initiate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Initiate, CAN_BUS_tlc::_ProjectionWrite_T3Initiate, CAN_BUS_tlc::_ProjectionRead_T3Initiate::Hash, CAN_BUS_tlc::_ProjectionRead_T3Initiate::HashEqual>(); _OpCache_with_parameter_T3Initiate.insert({readState, writeState}); _OpCache_T3Initiate.insert({_trid_13, _OpCache_with_parameter_T3Initiate}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Initiate_lock(_ProjectionRead_T3Initiate_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Initiate, CAN_BUS_tlc::_ProjectionWrite_T3Initiate, CAN_BUS_tlc::_ProjectionRead_T3Initiate::Hash, CAN_BUS_tlc::_ProjectionRead_T3Initiate::HashEqual> _OpCache_with_parameter_T3Initiate = _OpCache_with_parameter_T3Initiate_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T3Initiate.find(readState); if(writeState_ptr != _OpCache_with_parameter_T3Initiate.end()) { @@ -7126,7 +7027,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T3Initiate"; result.insert(copiedState); { @@ -7136,33 +7036,29 @@ class ModelChecker { } CAN_BUS_tlc::_ProjectionRead__tr_T3Evaluate read__tr_T3Evaluate_state = state._projected_state_for__tr_T3Evaluate(); bool _trid_14 = false; - auto _obj__trid_14_ptr = _OpCache_tr_T3Evaluate.find(read__tr_T3Evaluate_state); - if(_obj__trid_14_ptr == _OpCache_tr_T3Evaluate.end()) { - _trid_14 = state._tr_T3Evaluate(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3Evaluate_lock(_ProjectionRead__tr_T3Evaluate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3Evaluate_lock(_ProjectionRead__tr_T3Evaluate_mutex); + auto _obj__trid_14_ptr = _OpCache_tr_T3Evaluate.find(read__tr_T3Evaluate_state); + if(_obj__trid_14_ptr == _OpCache_tr_T3Evaluate.end()) { + _trid_14 = state._tr_T3Evaluate(); _OpCache_tr_T3Evaluate.insert({read__tr_T3Evaluate_state, _trid_14}); + } else { + _trid_14 = _obj__trid_14_ptr->second; } - } else { - _trid_14 = _obj__trid_14_ptr->second; } if(_trid_14) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T3Evaluate readState = state._projected_state_for_T3Evaluate(); - - auto _OpCache_with_parameter_T3Evaluate_ptr = _OpCache_T3Evaluate.find(_trid_14); - if(_OpCache_with_parameter_T3Evaluate_ptr == _OpCache_T3Evaluate.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Evaluate_lock(_ProjectionRead_T3Evaluate_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T3Evaluate_lock(_ProjectionRead_T3Evaluate_mutex); + auto _OpCache_with_parameter_T3Evaluate_ptr = _OpCache_T3Evaluate.find(_trid_14); + if(_OpCache_with_parameter_T3Evaluate_ptr == _OpCache_T3Evaluate.end()) { copiedState.T3Evaluate(); CAN_BUS_tlc::_ProjectionWrite_T3Evaluate writeState = copiedState._update_for_T3Evaluate(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Evaluate, CAN_BUS_tlc::_ProjectionWrite_T3Evaluate, CAN_BUS_tlc::_ProjectionRead_T3Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T3Evaluate::HashEqual> _OpCache_with_parameter_T3Evaluate = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Evaluate, CAN_BUS_tlc::_ProjectionWrite_T3Evaluate, CAN_BUS_tlc::_ProjectionRead_T3Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T3Evaluate::HashEqual>(); _OpCache_with_parameter_T3Evaluate.insert({readState, writeState}); _OpCache_T3Evaluate.insert({_trid_14, _OpCache_with_parameter_T3Evaluate}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Evaluate_lock(_ProjectionRead_T3Evaluate_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Evaluate, CAN_BUS_tlc::_ProjectionWrite_T3Evaluate, CAN_BUS_tlc::_ProjectionRead_T3Evaluate::Hash, CAN_BUS_tlc::_ProjectionRead_T3Evaluate::HashEqual> _OpCache_with_parameter_T3Evaluate = _OpCache_with_parameter_T3Evaluate_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T3Evaluate.find(readState); if(writeState_ptr != _OpCache_with_parameter_T3Evaluate.end()) { @@ -7175,7 +7071,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T3Evaluate"; result.insert(copiedState); { @@ -7184,216 +7079,192 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_T3writebus read__tr_T3writebus_state = state._projected_state_for__tr_T3writebus(); - auto _trid_15_ptr = _OpCache_tr_T3writebus.find(read__tr_T3writebus_state); - if(_trid_15_ptr == _OpCache_tr_T3writebus.end()) { - BSet<BTuple<BInteger, BInteger >> _trid_15 = state._tr_T3writebus(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3writebus_lock(_ProjectionRead__tr_T3writebus_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3writebus_lock(_ProjectionRead__tr_T3writebus_mutex); + auto _trid_15_ptr = _OpCache_tr_T3writebus.find(read__tr_T3writebus_state); + if(_trid_15_ptr == _OpCache_tr_T3writebus.end()) { + BSet<BTuple<BInteger, BInteger >> _trid_15 = state._tr_T3writebus(); _OpCache_tr_T3writebus.insert({read__tr_T3writebus_state, _trid_15}); - } - for(const BTuple<BInteger, BInteger >& param : _trid_15) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T3writebus readState = state._projected_state_for_T3writebus(); + for(const BTuple<BInteger, BInteger >& param : _trid_15) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_T3writebus_ptr = _OpCache_T3writebus.find(param); - if(_OpCache_with_parameter_T3writebus_ptr == _OpCache_T3writebus.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3writebus_lock(_ProjectionRead_T3writebus_mutex); - copiedState.T3writebus(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = copiedState._update_for_T3writebus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual>(); - _OpCache_with_parameter_T3writebus.insert({readState, writeState}); - _OpCache_T3writebus.insert({param, _OpCache_with_parameter_T3writebus}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T3writebus readState = state._projected_state_for_T3writebus(); { std::unique_lock<std::mutex> _ProjectionRead_T3writebus_lock(_ProjectionRead_T3writebus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = _OpCache_with_parameter_T3writebus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T3writebus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T3writebus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = writeState_ptr->second; - copiedState._apply_update_for_T3writebus(writeState); - } else { + auto _OpCache_with_parameter_T3writebus_ptr = _OpCache_T3writebus.find(param); + if(_OpCache_with_parameter_T3writebus_ptr == _OpCache_T3writebus.end()) { copiedState.T3writebus(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = copiedState._update_for_T3writebus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual>(); _OpCache_with_parameter_T3writebus.insert({readState, writeState}); + _OpCache_T3writebus.insert({param, _OpCache_with_parameter_T3writebus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = _OpCache_with_parameter_T3writebus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T3writebus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T3writebus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = writeState_ptr->second; + copiedState._apply_update_for_T3writebus(writeState); + } else { + copiedState.T3writebus(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = copiedState._update_for_T3writebus(); + _OpCache_with_parameter_T3writebus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T3writebus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BInteger, BInteger >> _trid_15 = _trid_15_ptr->second; - for(const BTuple<BInteger, BInteger >& param : _trid_15) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T3writebus readState = state._projected_state_for_T3writebus(); - - auto _OpCache_with_parameter_T3writebus_ptr = _OpCache_T3writebus.find(param); - if(_OpCache_with_parameter_T3writebus_ptr == _OpCache_T3writebus.end()) { + copiedState.stateAccessedVia = "T3writebus"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T3writebus_lock(_ProjectionRead_T3writebus_mutex); - copiedState.T3writebus(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = copiedState._update_for_T3writebus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual>(); - _OpCache_with_parameter_T3writebus.insert({readState, writeState}); - _OpCache_T3writebus.insert({param, _OpCache_with_parameter_T3writebus}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BInteger, BInteger >> _trid_15 = _trid_15_ptr->second; + for(const BTuple<BInteger, BInteger >& param : _trid_15) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T3writebus readState = state._projected_state_for_T3writebus(); { std::unique_lock<std::mutex> _ProjectionRead_T3writebus_lock(_ProjectionRead_T3writebus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = _OpCache_with_parameter_T3writebus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T3writebus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T3writebus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = writeState_ptr->second; - copiedState._apply_update_for_T3writebus(writeState); - } else { + auto _OpCache_with_parameter_T3writebus_ptr = _OpCache_T3writebus.find(param); + if(_OpCache_with_parameter_T3writebus_ptr == _OpCache_T3writebus.end()) { copiedState.T3writebus(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = copiedState._update_for_T3writebus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual>(); _OpCache_with_parameter_T3writebus.insert({readState, writeState}); + _OpCache_T3writebus.insert({param, _OpCache_with_parameter_T3writebus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3writebus, CAN_BUS_tlc::_ProjectionWrite_T3writebus, CAN_BUS_tlc::_ProjectionRead_T3writebus::Hash, CAN_BUS_tlc::_ProjectionRead_T3writebus::HashEqual> _OpCache_with_parameter_T3writebus = _OpCache_with_parameter_T3writebus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T3writebus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T3writebus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = writeState_ptr->second; + copiedState._apply_update_for_T3writebus(writeState); + } else { + copiedState.T3writebus(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T3writebus writeState = copiedState._update_for_T3writebus(); + _OpCache_with_parameter_T3writebus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T3writebus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T3writebus"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T3Read read__tr_T3Read_state = state._projected_state_for__tr_T3Read(); - auto _trid_16_ptr = _OpCache_tr_T3Read.find(read__tr_T3Read_state); - if(_trid_16_ptr == _OpCache_tr_T3Read.end()) { - BSet<BTuple<BInteger, BInteger >> _trid_16 = state._tr_T3Read(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3Read_lock(_ProjectionRead__tr_T3Read_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3Read_lock(_ProjectionRead__tr_T3Read_mutex); + auto _trid_16_ptr = _OpCache_tr_T3Read.find(read__tr_T3Read_state); + if(_trid_16_ptr == _OpCache_tr_T3Read.end()) { + BSet<BTuple<BInteger, BInteger >> _trid_16 = state._tr_T3Read(); _OpCache_tr_T3Read.insert({read__tr_T3Read_state, _trid_16}); - } - for(const BTuple<BInteger, BInteger >& param : _trid_16) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T3Read readState = state._projected_state_for_T3Read(); + for(const BTuple<BInteger, BInteger >& param : _trid_16) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_T3Read_ptr = _OpCache_T3Read.find(param); - if(_OpCache_with_parameter_T3Read_ptr == _OpCache_T3Read.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Read_lock(_ProjectionRead_T3Read_mutex); - copiedState.T3Read(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = copiedState._update_for_T3Read(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual>(); - _OpCache_with_parameter_T3Read.insert({readState, writeState}); - _OpCache_T3Read.insert({param, _OpCache_with_parameter_T3Read}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T3Read readState = state._projected_state_for_T3Read(); { std::unique_lock<std::mutex> _ProjectionRead_T3Read_lock(_ProjectionRead_T3Read_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = _OpCache_with_parameter_T3Read_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T3Read.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T3Read.end()) { - CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = writeState_ptr->second; - copiedState._apply_update_for_T3Read(writeState); - } else { + auto _OpCache_with_parameter_T3Read_ptr = _OpCache_T3Read.find(param); + if(_OpCache_with_parameter_T3Read_ptr == _OpCache_T3Read.end()) { copiedState.T3Read(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = copiedState._update_for_T3Read(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual>(); _OpCache_with_parameter_T3Read.insert({readState, writeState}); + _OpCache_T3Read.insert({param, _OpCache_with_parameter_T3Read}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = _OpCache_with_parameter_T3Read_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T3Read.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T3Read.end()) { + CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = writeState_ptr->second; + copiedState._apply_update_for_T3Read(writeState); + } else { + copiedState.T3Read(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = copiedState._update_for_T3Read(); + _OpCache_with_parameter_T3Read.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T3Read"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BInteger, BInteger >> _trid_16 = _trid_16_ptr->second; - for(const BTuple<BInteger, BInteger >& param : _trid_16) { - BInteger _tmp_1 = param.projection2(); - BInteger _tmp_2 = param.projection1(); - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T3Read readState = state._projected_state_for_T3Read(); - - auto _OpCache_with_parameter_T3Read_ptr = _OpCache_T3Read.find(param); - if(_OpCache_with_parameter_T3Read_ptr == _OpCache_T3Read.end()) { + copiedState.stateAccessedVia = "T3Read"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T3Read_lock(_ProjectionRead_T3Read_mutex); - copiedState.T3Read(_tmp_2, _tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = copiedState._update_for_T3Read(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual>(); - _OpCache_with_parameter_T3Read.insert({readState, writeState}); - _OpCache_T3Read.insert({param, _OpCache_with_parameter_T3Read}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BInteger, BInteger >> _trid_16 = _trid_16_ptr->second; + for(const BTuple<BInteger, BInteger >& param : _trid_16) { + BInteger _tmp_1 = param.projection2(); + BInteger _tmp_2 = param.projection1(); + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T3Read readState = state._projected_state_for_T3Read(); { std::unique_lock<std::mutex> _ProjectionRead_T3Read_lock(_ProjectionRead_T3Read_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = _OpCache_with_parameter_T3Read_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T3Read.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T3Read.end()) { - CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = writeState_ptr->second; - copiedState._apply_update_for_T3Read(writeState); - } else { + auto _OpCache_with_parameter_T3Read_ptr = _OpCache_T3Read.find(param); + if(_OpCache_with_parameter_T3Read_ptr == _OpCache_T3Read.end()) { copiedState.T3Read(_tmp_2, _tmp_1); CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = copiedState._update_for_T3Read(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual>(); _OpCache_with_parameter_T3Read.insert({readState, writeState}); + _OpCache_T3Read.insert({param, _OpCache_with_parameter_T3Read}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Read, CAN_BUS_tlc::_ProjectionWrite_T3Read, CAN_BUS_tlc::_ProjectionRead_T3Read::Hash, CAN_BUS_tlc::_ProjectionRead_T3Read::HashEqual> _OpCache_with_parameter_T3Read = _OpCache_with_parameter_T3Read_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T3Read.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T3Read.end()) { + CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = writeState_ptr->second; + copiedState._apply_update_for_T3Read(writeState); + } else { + copiedState.T3Read(_tmp_2, _tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T3Read writeState = copiedState._update_for_T3Read(); + _OpCache_with_parameter_T3Read.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T3Read"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T3Read"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T3Poll read__tr_T3Poll_state = state._projected_state_for__tr_T3Poll(); bool _trid_17 = false; - auto _obj__trid_17_ptr = _OpCache_tr_T3Poll.find(read__tr_T3Poll_state); - if(_obj__trid_17_ptr == _OpCache_tr_T3Poll.end()) { - _trid_17 = state._tr_T3Poll(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3Poll_lock(_ProjectionRead__tr_T3Poll_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3Poll_lock(_ProjectionRead__tr_T3Poll_mutex); + auto _obj__trid_17_ptr = _OpCache_tr_T3Poll.find(read__tr_T3Poll_state); + if(_obj__trid_17_ptr == _OpCache_tr_T3Poll.end()) { + _trid_17 = state._tr_T3Poll(); _OpCache_tr_T3Poll.insert({read__tr_T3Poll_state, _trid_17}); + } else { + _trid_17 = _obj__trid_17_ptr->second; } - } else { - _trid_17 = _obj__trid_17_ptr->second; } if(_trid_17) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T3Poll readState = state._projected_state_for_T3Poll(); - - auto _OpCache_with_parameter_T3Poll_ptr = _OpCache_T3Poll.find(_trid_17); - if(_OpCache_with_parameter_T3Poll_ptr == _OpCache_T3Poll.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Poll_lock(_ProjectionRead_T3Poll_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T3Poll_lock(_ProjectionRead_T3Poll_mutex); + auto _OpCache_with_parameter_T3Poll_ptr = _OpCache_T3Poll.find(_trid_17); + if(_OpCache_with_parameter_T3Poll_ptr == _OpCache_T3Poll.end()) { copiedState.T3Poll(); CAN_BUS_tlc::_ProjectionWrite_T3Poll writeState = copiedState._update_for_T3Poll(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Poll, CAN_BUS_tlc::_ProjectionWrite_T3Poll, CAN_BUS_tlc::_ProjectionRead_T3Poll::Hash, CAN_BUS_tlc::_ProjectionRead_T3Poll::HashEqual> _OpCache_with_parameter_T3Poll = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Poll, CAN_BUS_tlc::_ProjectionWrite_T3Poll, CAN_BUS_tlc::_ProjectionRead_T3Poll::Hash, CAN_BUS_tlc::_ProjectionRead_T3Poll::HashEqual>(); _OpCache_with_parameter_T3Poll.insert({readState, writeState}); _OpCache_T3Poll.insert({_trid_17, _OpCache_with_parameter_T3Poll}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Poll_lock(_ProjectionRead_T3Poll_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Poll, CAN_BUS_tlc::_ProjectionWrite_T3Poll, CAN_BUS_tlc::_ProjectionRead_T3Poll::Hash, CAN_BUS_tlc::_ProjectionRead_T3Poll::HashEqual> _OpCache_with_parameter_T3Poll = _OpCache_with_parameter_T3Poll_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T3Poll.find(readState); if(writeState_ptr != _OpCache_with_parameter_T3Poll.end()) { @@ -7406,7 +7277,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T3Poll"; result.insert(copiedState); { @@ -7415,123 +7285,109 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_T3ReleaseBus read__tr_T3ReleaseBus_state = state._projected_state_for__tr_T3ReleaseBus(); - auto _trid_18_ptr = _OpCache_tr_T3ReleaseBus.find(read__tr_T3ReleaseBus_state); - if(_trid_18_ptr == _OpCache_tr_T3ReleaseBus.end()) { - BSet<BInteger> _trid_18 = state._tr_T3ReleaseBus(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3ReleaseBus_lock(_ProjectionRead__tr_T3ReleaseBus_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3ReleaseBus_lock(_ProjectionRead__tr_T3ReleaseBus_mutex); + auto _trid_18_ptr = _OpCache_tr_T3ReleaseBus.find(read__tr_T3ReleaseBus_state); + if(_trid_18_ptr == _OpCache_tr_T3ReleaseBus.end()) { + BSet<BInteger> _trid_18 = state._tr_T3ReleaseBus(); _OpCache_tr_T3ReleaseBus.insert({read__tr_T3ReleaseBus_state, _trid_18}); - } - for(const BInteger& param : _trid_18) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus readState = state._projected_state_for_T3ReleaseBus(); + for(const BInteger& param : _trid_18) { + BInteger _tmp_1 = param; - auto _OpCache_with_parameter_T3ReleaseBus_ptr = _OpCache_T3ReleaseBus.find(param); - if(_OpCache_with_parameter_T3ReleaseBus_ptr == _OpCache_T3ReleaseBus.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3ReleaseBus_lock(_ProjectionRead_T3ReleaseBus_mutex); - copiedState.T3ReleaseBus(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = copiedState._update_for_T3ReleaseBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual>(); - _OpCache_with_parameter_T3ReleaseBus.insert({readState, writeState}); - _OpCache_T3ReleaseBus.insert({param, _OpCache_with_parameter_T3ReleaseBus}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus readState = state._projected_state_for_T3ReleaseBus(); { std::unique_lock<std::mutex> _ProjectionRead_T3ReleaseBus_lock(_ProjectionRead_T3ReleaseBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = _OpCache_with_parameter_T3ReleaseBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T3ReleaseBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T3ReleaseBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T3ReleaseBus(writeState); - } else { + auto _OpCache_with_parameter_T3ReleaseBus_ptr = _OpCache_T3ReleaseBus.find(param); + if(_OpCache_with_parameter_T3ReleaseBus_ptr == _OpCache_T3ReleaseBus.end()) { copiedState.T3ReleaseBus(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = copiedState._update_for_T3ReleaseBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual>(); _OpCache_with_parameter_T3ReleaseBus.insert({readState, writeState}); + _OpCache_T3ReleaseBus.insert({param, _OpCache_with_parameter_T3ReleaseBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = _OpCache_with_parameter_T3ReleaseBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T3ReleaseBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T3ReleaseBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T3ReleaseBus(writeState); + } else { + copiedState.T3ReleaseBus(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = copiedState._update_for_T3ReleaseBus(); + _OpCache_with_parameter_T3ReleaseBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T3ReleaseBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BInteger> _trid_18 = _trid_18_ptr->second; - for(const BInteger& param : _trid_18) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus readState = state._projected_state_for_T3ReleaseBus(); - - auto _OpCache_with_parameter_T3ReleaseBus_ptr = _OpCache_T3ReleaseBus.find(param); - if(_OpCache_with_parameter_T3ReleaseBus_ptr == _OpCache_T3ReleaseBus.end()) { + copiedState.stateAccessedVia = "T3ReleaseBus"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_T3ReleaseBus_lock(_ProjectionRead_T3ReleaseBus_mutex); - copiedState.T3ReleaseBus(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = copiedState._update_for_T3ReleaseBus(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual>(); - _OpCache_with_parameter_T3ReleaseBus.insert({readState, writeState}); - _OpCache_T3ReleaseBus.insert({param, _OpCache_with_parameter_T3ReleaseBus}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BInteger> _trid_18 = _trid_18_ptr->second; + for(const BInteger& param : _trid_18) { + BInteger _tmp_1 = param; + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus readState = state._projected_state_for_T3ReleaseBus(); { std::unique_lock<std::mutex> _ProjectionRead_T3ReleaseBus_lock(_ProjectionRead_T3ReleaseBus_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = _OpCache_with_parameter_T3ReleaseBus_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_T3ReleaseBus.find(readState); - if(writeState_ptr != _OpCache_with_parameter_T3ReleaseBus.end()) { - CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = writeState_ptr->second; - copiedState._apply_update_for_T3ReleaseBus(writeState); - } else { + auto _OpCache_with_parameter_T3ReleaseBus_ptr = _OpCache_T3ReleaseBus.find(param); + if(_OpCache_with_parameter_T3ReleaseBus_ptr == _OpCache_T3ReleaseBus.end()) { copiedState.T3ReleaseBus(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = copiedState._update_for_T3ReleaseBus(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual>(); _OpCache_with_parameter_T3ReleaseBus.insert({readState, writeState}); + _OpCache_T3ReleaseBus.insert({param, _OpCache_with_parameter_T3ReleaseBus}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus, CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReleaseBus::HashEqual> _OpCache_with_parameter_T3ReleaseBus = _OpCache_with_parameter_T3ReleaseBus_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_T3ReleaseBus.find(readState); + if(writeState_ptr != _OpCache_with_parameter_T3ReleaseBus.end()) { + CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = writeState_ptr->second; + copiedState._apply_update_for_T3ReleaseBus(writeState); + } else { + copiedState.T3ReleaseBus(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_T3ReleaseBus writeState = copiedState._update_for_T3ReleaseBus(); + _OpCache_with_parameter_T3ReleaseBus.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "T3ReleaseBus"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "T3ReleaseBus"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } CAN_BUS_tlc::_ProjectionRead__tr_T3Wait read__tr_T3Wait_state = state._projected_state_for__tr_T3Wait(); bool _trid_19 = false; - auto _obj__trid_19_ptr = _OpCache_tr_T3Wait.find(read__tr_T3Wait_state); - if(_obj__trid_19_ptr == _OpCache_tr_T3Wait.end()) { - _trid_19 = state._tr_T3Wait(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3Wait_lock(_ProjectionRead__tr_T3Wait_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3Wait_lock(_ProjectionRead__tr_T3Wait_mutex); + auto _obj__trid_19_ptr = _OpCache_tr_T3Wait.find(read__tr_T3Wait_state); + if(_obj__trid_19_ptr == _OpCache_tr_T3Wait.end()) { + _trid_19 = state._tr_T3Wait(); _OpCache_tr_T3Wait.insert({read__tr_T3Wait_state, _trid_19}); + } else { + _trid_19 = _obj__trid_19_ptr->second; } - } else { - _trid_19 = _obj__trid_19_ptr->second; } if(_trid_19) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T3Wait readState = state._projected_state_for_T3Wait(); - - auto _OpCache_with_parameter_T3Wait_ptr = _OpCache_T3Wait.find(_trid_19); - if(_OpCache_with_parameter_T3Wait_ptr == _OpCache_T3Wait.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Wait_lock(_ProjectionRead_T3Wait_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T3Wait_lock(_ProjectionRead_T3Wait_mutex); + auto _OpCache_with_parameter_T3Wait_ptr = _OpCache_T3Wait.find(_trid_19); + if(_OpCache_with_parameter_T3Wait_ptr == _OpCache_T3Wait.end()) { copiedState.T3Wait(); CAN_BUS_tlc::_ProjectionWrite_T3Wait writeState = copiedState._update_for_T3Wait(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Wait, CAN_BUS_tlc::_ProjectionWrite_T3Wait, CAN_BUS_tlc::_ProjectionRead_T3Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T3Wait::HashEqual> _OpCache_with_parameter_T3Wait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Wait, CAN_BUS_tlc::_ProjectionWrite_T3Wait, CAN_BUS_tlc::_ProjectionRead_T3Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T3Wait::HashEqual>(); _OpCache_with_parameter_T3Wait.insert({readState, writeState}); _OpCache_T3Wait.insert({_trid_19, _OpCache_with_parameter_T3Wait}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T3Wait_lock(_ProjectionRead_T3Wait_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3Wait, CAN_BUS_tlc::_ProjectionWrite_T3Wait, CAN_BUS_tlc::_ProjectionRead_T3Wait::Hash, CAN_BUS_tlc::_ProjectionRead_T3Wait::HashEqual> _OpCache_with_parameter_T3Wait = _OpCache_with_parameter_T3Wait_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T3Wait.find(readState); if(writeState_ptr != _OpCache_with_parameter_T3Wait.end()) { @@ -7544,7 +7400,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T3Wait"; result.insert(copiedState); { @@ -7554,33 +7409,29 @@ class ModelChecker { } CAN_BUS_tlc::_ProjectionRead__tr_T3ReEnableWait read__tr_T3ReEnableWait_state = state._projected_state_for__tr_T3ReEnableWait(); bool _trid_20 = false; - auto _obj__trid_20_ptr = _OpCache_tr_T3ReEnableWait.find(read__tr_T3ReEnableWait_state); - if(_obj__trid_20_ptr == _OpCache_tr_T3ReEnableWait.end()) { - _trid_20 = state._tr_T3ReEnableWait(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_T3ReEnableWait_lock(_ProjectionRead__tr_T3ReEnableWait_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_T3ReEnableWait_lock(_ProjectionRead__tr_T3ReEnableWait_mutex); + auto _obj__trid_20_ptr = _OpCache_tr_T3ReEnableWait.find(read__tr_T3ReEnableWait_state); + if(_obj__trid_20_ptr == _OpCache_tr_T3ReEnableWait.end()) { + _trid_20 = state._tr_T3ReEnableWait(); _OpCache_tr_T3ReEnableWait.insert({read__tr_T3ReEnableWait_state, _trid_20}); + } else { + _trid_20 = _obj__trid_20_ptr->second; } - } else { - _trid_20 = _obj__trid_20_ptr->second; } if(_trid_20) { CAN_BUS_tlc copiedState = state._copy(); CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait readState = state._projected_state_for_T3ReEnableWait(); - - auto _OpCache_with_parameter_T3ReEnableWait_ptr = _OpCache_T3ReEnableWait.find(_trid_20); - if(_OpCache_with_parameter_T3ReEnableWait_ptr == _OpCache_T3ReEnableWait.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_T3ReEnableWait_lock(_ProjectionRead_T3ReEnableWait_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_T3ReEnableWait_lock(_ProjectionRead_T3ReEnableWait_mutex); + auto _OpCache_with_parameter_T3ReEnableWait_ptr = _OpCache_T3ReEnableWait.find(_trid_20); + if(_OpCache_with_parameter_T3ReEnableWait_ptr == _OpCache_T3ReEnableWait.end()) { copiedState.T3ReEnableWait(); CAN_BUS_tlc::_ProjectionWrite_T3ReEnableWait writeState = copiedState._update_for_T3ReEnableWait(); std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait, CAN_BUS_tlc::_ProjectionWrite_T3ReEnableWait, CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait::HashEqual> _OpCache_with_parameter_T3ReEnableWait = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait, CAN_BUS_tlc::_ProjectionWrite_T3ReEnableWait, CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait::HashEqual>(); _OpCache_with_parameter_T3ReEnableWait.insert({readState, writeState}); _OpCache_T3ReEnableWait.insert({_trid_20, _OpCache_with_parameter_T3ReEnableWait}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_T3ReEnableWait_lock(_ProjectionRead_T3ReEnableWait_mutex); + } else { std::unordered_map<CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait, CAN_BUS_tlc::_ProjectionWrite_T3ReEnableWait, CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait::Hash, CAN_BUS_tlc::_ProjectionRead_T3ReEnableWait::HashEqual> _OpCache_with_parameter_T3ReEnableWait = _OpCache_with_parameter_T3ReEnableWait_ptr->second; auto writeState_ptr = _OpCache_with_parameter_T3ReEnableWait.find(readState); if(writeState_ptr != _OpCache_with_parameter_T3ReEnableWait.end()) { @@ -7593,7 +7444,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "T3ReEnableWait"; result.insert(copiedState); { @@ -7602,91 +7452,81 @@ class ModelChecker { } } CAN_BUS_tlc::_ProjectionRead__tr_Update read__tr_Update_state = state._projected_state_for__tr_Update(); - auto _trid_21_ptr = _OpCache_tr_Update.find(read__tr_Update_state); - if(_trid_21_ptr == _OpCache_tr_Update.end()) { - BSet<BInteger> _trid_21 = state._tr_Update(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Update_lock(_ProjectionRead__tr_Update_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Update_lock(_ProjectionRead__tr_Update_mutex); + auto _trid_21_ptr = _OpCache_tr_Update.find(read__tr_Update_state); + if(_trid_21_ptr == _OpCache_tr_Update.end()) { + BSet<BInteger> _trid_21 = state._tr_Update(); _OpCache_tr_Update.insert({read__tr_Update_state, _trid_21}); - } - for(const BInteger& param : _trid_21) { - BInteger _tmp_1 = param; + for(const BInteger& param : _trid_21) { + BInteger _tmp_1 = param; - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_Update readState = state._projected_state_for_Update(); - - auto _OpCache_with_parameter_Update_ptr = _OpCache_Update.find(param); - if(_OpCache_with_parameter_Update_ptr == _OpCache_Update.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Update_lock(_ProjectionRead_Update_mutex); - copiedState.Update(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_Update writeState = copiedState._update_for_Update(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual>(); - _OpCache_with_parameter_Update.insert({readState, writeState}); - _OpCache_Update.insert({param, _OpCache_with_parameter_Update}); - } - } else { + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_Update readState = state._projected_state_for_Update(); { std::unique_lock<std::mutex> _ProjectionRead_Update_lock(_ProjectionRead_Update_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = _OpCache_with_parameter_Update_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Update.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Update.end()) { - CAN_BUS_tlc::_ProjectionWrite_Update writeState = writeState_ptr->second; - copiedState._apply_update_for_Update(writeState); - } else { + auto _OpCache_with_parameter_Update_ptr = _OpCache_Update.find(param); + if(_OpCache_with_parameter_Update_ptr == _OpCache_Update.end()) { copiedState.Update(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_Update writeState = copiedState._update_for_Update(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual>(); _OpCache_with_parameter_Update.insert({readState, writeState}); + _OpCache_Update.insert({param, _OpCache_with_parameter_Update}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = _OpCache_with_parameter_Update_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Update.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Update.end()) { + CAN_BUS_tlc::_ProjectionWrite_Update writeState = writeState_ptr->second; + copiedState._apply_update_for_Update(writeState); + } else { + copiedState.Update(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_Update writeState = copiedState._update_for_Update(); + _OpCache_with_parameter_Update.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Update"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BInteger> _trid_21 = _trid_21_ptr->second; - for(const BInteger& param : _trid_21) { - BInteger _tmp_1 = param; - - CAN_BUS_tlc copiedState = state._copy(); - CAN_BUS_tlc::_ProjectionRead_Update readState = state._projected_state_for_Update(); - - auto _OpCache_with_parameter_Update_ptr = _OpCache_Update.find(param); - if(_OpCache_with_parameter_Update_ptr == _OpCache_Update.end()) { + copiedState.stateAccessedVia = "Update"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Update_lock(_ProjectionRead_Update_mutex); - copiedState.Update(_tmp_1); - CAN_BUS_tlc::_ProjectionWrite_Update writeState = copiedState._update_for_Update(); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual>(); - _OpCache_with_parameter_Update.insert({readState, writeState}); - _OpCache_Update.insert({param, _OpCache_with_parameter_Update}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BInteger> _trid_21 = _trid_21_ptr->second; + for(const BInteger& param : _trid_21) { + BInteger _tmp_1 = param; + + CAN_BUS_tlc copiedState = state._copy(); + CAN_BUS_tlc::_ProjectionRead_Update readState = state._projected_state_for_Update(); { std::unique_lock<std::mutex> _ProjectionRead_Update_lock(_ProjectionRead_Update_mutex); - std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = _OpCache_with_parameter_Update_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Update.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Update.end()) { - CAN_BUS_tlc::_ProjectionWrite_Update writeState = writeState_ptr->second; - copiedState._apply_update_for_Update(writeState); - } else { + auto _OpCache_with_parameter_Update_ptr = _OpCache_Update.find(param); + if(_OpCache_with_parameter_Update_ptr == _OpCache_Update.end()) { copiedState.Update(_tmp_1); CAN_BUS_tlc::_ProjectionWrite_Update writeState = copiedState._update_for_Update(); + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual>(); _OpCache_with_parameter_Update.insert({readState, writeState}); + _OpCache_Update.insert({param, _OpCache_with_parameter_Update}); + } else { + std::unordered_map<CAN_BUS_tlc::_ProjectionRead_Update, CAN_BUS_tlc::_ProjectionWrite_Update, CAN_BUS_tlc::_ProjectionRead_Update::Hash, CAN_BUS_tlc::_ProjectionRead_Update::HashEqual> _OpCache_with_parameter_Update = _OpCache_with_parameter_Update_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Update.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Update.end()) { + CAN_BUS_tlc::_ProjectionWrite_Update writeState = writeState_ptr->second; + copiedState._apply_update_for_Update(writeState); + } else { + copiedState.Update(_tmp_1); + CAN_BUS_tlc::_ProjectionWrite_Update writeState = copiedState._update_for_Update(); + _OpCache_with_parameter_Update.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Update"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Update"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/Cruise_finite1_deterministic_MC.cpp b/benchmarks/model_checking_opreuse/C++/Cruise_finite1_deterministic_MC.cpp index 4b3e8d212..960ce6dc1 100644 --- a/benchmarks/model_checking_opreuse/C++/Cruise_finite1_deterministic_MC.cpp +++ b/benchmarks/model_checking_opreuse/C++/Cruise_finite1_deterministic_MC.cpp @@ -8722,33 +8722,29 @@ class ModelChecker { if(isCaching) { Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CruiseBecomesNotAllowed read__tr_CruiseBecomesNotAllowed_state = state._projected_state_for__tr_CruiseBecomesNotAllowed(); bool _trid_1 = false; - auto _obj__trid_1_ptr = _OpCache_tr_CruiseBecomesNotAllowed.find(read__tr_CruiseBecomesNotAllowed_state); - if(_obj__trid_1_ptr == _OpCache_tr_CruiseBecomesNotAllowed.end()) { - _trid_1 = state._tr_CruiseBecomesNotAllowed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseBecomesNotAllowed_lock(_ProjectionRead__tr_CruiseBecomesNotAllowed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseBecomesNotAllowed_lock(_ProjectionRead__tr_CruiseBecomesNotAllowed_mutex); + auto _obj__trid_1_ptr = _OpCache_tr_CruiseBecomesNotAllowed.find(read__tr_CruiseBecomesNotAllowed_state); + if(_obj__trid_1_ptr == _OpCache_tr_CruiseBecomesNotAllowed.end()) { + _trid_1 = state._tr_CruiseBecomesNotAllowed(); _OpCache_tr_CruiseBecomesNotAllowed.insert({read__tr_CruiseBecomesNotAllowed_state, _trid_1}); + } else { + _trid_1 = _obj__trid_1_ptr->second; } - } else { - _trid_1 = _obj__trid_1_ptr->second; } if(_trid_1) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed readState = state._projected_state_for_CruiseBecomesNotAllowed(); - - auto _OpCache_with_parameter_CruiseBecomesNotAllowed_ptr = _OpCache_CruiseBecomesNotAllowed.find(_trid_1); - if(_OpCache_with_parameter_CruiseBecomesNotAllowed_ptr == _OpCache_CruiseBecomesNotAllowed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseBecomesNotAllowed_lock(_ProjectionRead_CruiseBecomesNotAllowed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_CruiseBecomesNotAllowed_lock(_ProjectionRead_CruiseBecomesNotAllowed_mutex); + auto _OpCache_with_parameter_CruiseBecomesNotAllowed_ptr = _OpCache_CruiseBecomesNotAllowed.find(_trid_1); + if(_OpCache_with_parameter_CruiseBecomesNotAllowed_ptr == _OpCache_CruiseBecomesNotAllowed.end()) { copiedState.CruiseBecomesNotAllowed(); Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesNotAllowed writeState = copiedState._update_for_CruiseBecomesNotAllowed(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesNotAllowed, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed::HashEqual> _OpCache_with_parameter_CruiseBecomesNotAllowed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesNotAllowed, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed::HashEqual>(); _OpCache_with_parameter_CruiseBecomesNotAllowed.insert({readState, writeState}); _OpCache_CruiseBecomesNotAllowed.insert({_trid_1, _OpCache_with_parameter_CruiseBecomesNotAllowed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseBecomesNotAllowed_lock(_ProjectionRead_CruiseBecomesNotAllowed_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesNotAllowed, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesNotAllowed::HashEqual> _OpCache_with_parameter_CruiseBecomesNotAllowed = _OpCache_with_parameter_CruiseBecomesNotAllowed_ptr->second; auto writeState_ptr = _OpCache_with_parameter_CruiseBecomesNotAllowed.find(readState); if(writeState_ptr != _OpCache_with_parameter_CruiseBecomesNotAllowed.end()) { @@ -8761,7 +8757,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "CruiseBecomesNotAllowed"; result.insert(copiedState); { @@ -8771,33 +8766,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CruiseBecomesAllowed read__tr_CruiseBecomesAllowed_state = state._projected_state_for__tr_CruiseBecomesAllowed(); bool _trid_2 = false; - auto _obj__trid_2_ptr = _OpCache_tr_CruiseBecomesAllowed.find(read__tr_CruiseBecomesAllowed_state); - if(_obj__trid_2_ptr == _OpCache_tr_CruiseBecomesAllowed.end()) { - _trid_2 = state._tr_CruiseBecomesAllowed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseBecomesAllowed_lock(_ProjectionRead__tr_CruiseBecomesAllowed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseBecomesAllowed_lock(_ProjectionRead__tr_CruiseBecomesAllowed_mutex); + auto _obj__trid_2_ptr = _OpCache_tr_CruiseBecomesAllowed.find(read__tr_CruiseBecomesAllowed_state); + if(_obj__trid_2_ptr == _OpCache_tr_CruiseBecomesAllowed.end()) { + _trid_2 = state._tr_CruiseBecomesAllowed(); _OpCache_tr_CruiseBecomesAllowed.insert({read__tr_CruiseBecomesAllowed_state, _trid_2}); + } else { + _trid_2 = _obj__trid_2_ptr->second; } - } else { - _trid_2 = _obj__trid_2_ptr->second; } if(_trid_2) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed readState = state._projected_state_for_CruiseBecomesAllowed(); - - auto _OpCache_with_parameter_CruiseBecomesAllowed_ptr = _OpCache_CruiseBecomesAllowed.find(_trid_2); - if(_OpCache_with_parameter_CruiseBecomesAllowed_ptr == _OpCache_CruiseBecomesAllowed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseBecomesAllowed_lock(_ProjectionRead_CruiseBecomesAllowed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_CruiseBecomesAllowed_lock(_ProjectionRead_CruiseBecomesAllowed_mutex); + auto _OpCache_with_parameter_CruiseBecomesAllowed_ptr = _OpCache_CruiseBecomesAllowed.find(_trid_2); + if(_OpCache_with_parameter_CruiseBecomesAllowed_ptr == _OpCache_CruiseBecomesAllowed.end()) { copiedState.CruiseBecomesAllowed(); Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesAllowed writeState = copiedState._update_for_CruiseBecomesAllowed(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesAllowed, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed::HashEqual> _OpCache_with_parameter_CruiseBecomesAllowed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesAllowed, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed::HashEqual>(); _OpCache_with_parameter_CruiseBecomesAllowed.insert({readState, writeState}); _OpCache_CruiseBecomesAllowed.insert({_trid_2, _OpCache_with_parameter_CruiseBecomesAllowed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseBecomesAllowed_lock(_ProjectionRead_CruiseBecomesAllowed_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseBecomesAllowed, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseBecomesAllowed::HashEqual> _OpCache_with_parameter_CruiseBecomesAllowed = _OpCache_with_parameter_CruiseBecomesAllowed_ptr->second; auto writeState_ptr = _OpCache_with_parameter_CruiseBecomesAllowed.find(readState); if(writeState_ptr != _OpCache_with_parameter_CruiseBecomesAllowed.end()) { @@ -8810,7 +8801,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "CruiseBecomesAllowed"; result.insert(copiedState); { @@ -8819,216 +8809,192 @@ class ModelChecker { } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_SetCruiseSpeed read__tr_SetCruiseSpeed_state = state._projected_state_for__tr_SetCruiseSpeed(); - auto _trid_3_ptr = _OpCache_tr_SetCruiseSpeed.find(read__tr_SetCruiseSpeed_state); - if(_trid_3_ptr == _OpCache_tr_SetCruiseSpeed.end()) { - BSet<BTuple<BBoolean, BBoolean >> _trid_3 = state._tr_SetCruiseSpeed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_SetCruiseSpeed_lock(_ProjectionRead__tr_SetCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_SetCruiseSpeed_lock(_ProjectionRead__tr_SetCruiseSpeed_mutex); + auto _trid_3_ptr = _OpCache_tr_SetCruiseSpeed.find(read__tr_SetCruiseSpeed_state); + if(_trid_3_ptr == _OpCache_tr_SetCruiseSpeed.end()) { + BSet<BTuple<BBoolean, BBoolean >> _trid_3 = state._tr_SetCruiseSpeed(); _OpCache_tr_SetCruiseSpeed.insert({read__tr_SetCruiseSpeed_state, _trid_3}); - } - for(const BTuple<BBoolean, BBoolean >& param : _trid_3) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); + for(const BTuple<BBoolean, BBoolean >& param : _trid_3) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed readState = state._projected_state_for_SetCruiseSpeed(); - - auto _OpCache_with_parameter_SetCruiseSpeed_ptr = _OpCache_SetCruiseSpeed.find(param); - if(_OpCache_with_parameter_SetCruiseSpeed_ptr == _OpCache_SetCruiseSpeed.end()) { + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed readState = state._projected_state_for_SetCruiseSpeed(); { std::unique_lock<std::mutex> _ProjectionRead_SetCruiseSpeed_lock(_ProjectionRead_SetCruiseSpeed_mutex); - copiedState.SetCruiseSpeed(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = copiedState._update_for_SetCruiseSpeed(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual>(); - _OpCache_with_parameter_SetCruiseSpeed.insert({readState, writeState}); - _OpCache_SetCruiseSpeed.insert({param, _OpCache_with_parameter_SetCruiseSpeed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_SetCruiseSpeed_lock(_ProjectionRead_SetCruiseSpeed_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = _OpCache_with_parameter_SetCruiseSpeed_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_SetCruiseSpeed.find(readState); - if(writeState_ptr != _OpCache_with_parameter_SetCruiseSpeed.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = writeState_ptr->second; - copiedState._apply_update_for_SetCruiseSpeed(writeState); - } else { + auto _OpCache_with_parameter_SetCruiseSpeed_ptr = _OpCache_SetCruiseSpeed.find(param); + if(_OpCache_with_parameter_SetCruiseSpeed_ptr == _OpCache_SetCruiseSpeed.end()) { copiedState.SetCruiseSpeed(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = copiedState._update_for_SetCruiseSpeed(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual>(); _OpCache_with_parameter_SetCruiseSpeed.insert({readState, writeState}); + _OpCache_SetCruiseSpeed.insert({param, _OpCache_with_parameter_SetCruiseSpeed}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = _OpCache_with_parameter_SetCruiseSpeed_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_SetCruiseSpeed.find(readState); + if(writeState_ptr != _OpCache_with_parameter_SetCruiseSpeed.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = writeState_ptr->second; + copiedState._apply_update_for_SetCruiseSpeed(writeState); + } else { + copiedState.SetCruiseSpeed(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = copiedState._update_for_SetCruiseSpeed(); + _OpCache_with_parameter_SetCruiseSpeed.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "SetCruiseSpeed"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BBoolean, BBoolean >> _trid_3 = _trid_3_ptr->second; - for(const BTuple<BBoolean, BBoolean >& param : _trid_3) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed readState = state._projected_state_for_SetCruiseSpeed(); - - auto _OpCache_with_parameter_SetCruiseSpeed_ptr = _OpCache_SetCruiseSpeed.find(param); - if(_OpCache_with_parameter_SetCruiseSpeed_ptr == _OpCache_SetCruiseSpeed.end()) { + copiedState.stateAccessedVia = "SetCruiseSpeed"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_SetCruiseSpeed_lock(_ProjectionRead_SetCruiseSpeed_mutex); - copiedState.SetCruiseSpeed(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = copiedState._update_for_SetCruiseSpeed(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual>(); - _OpCache_with_parameter_SetCruiseSpeed.insert({readState, writeState}); - _OpCache_SetCruiseSpeed.insert({param, _OpCache_with_parameter_SetCruiseSpeed}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BBoolean, BBoolean >> _trid_3 = _trid_3_ptr->second; + for(const BTuple<BBoolean, BBoolean >& param : _trid_3) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); + + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed readState = state._projected_state_for_SetCruiseSpeed(); { std::unique_lock<std::mutex> _ProjectionRead_SetCruiseSpeed_lock(_ProjectionRead_SetCruiseSpeed_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = _OpCache_with_parameter_SetCruiseSpeed_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_SetCruiseSpeed.find(readState); - if(writeState_ptr != _OpCache_with_parameter_SetCruiseSpeed.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = writeState_ptr->second; - copiedState._apply_update_for_SetCruiseSpeed(writeState); - } else { + auto _OpCache_with_parameter_SetCruiseSpeed_ptr = _OpCache_SetCruiseSpeed.find(param); + if(_OpCache_with_parameter_SetCruiseSpeed_ptr == _OpCache_SetCruiseSpeed.end()) { copiedState.SetCruiseSpeed(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = copiedState._update_for_SetCruiseSpeed(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual>(); _OpCache_with_parameter_SetCruiseSpeed.insert({readState, writeState}); + _OpCache_SetCruiseSpeed.insert({param, _OpCache_with_parameter_SetCruiseSpeed}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_SetCruiseSpeed::HashEqual> _OpCache_with_parameter_SetCruiseSpeed = _OpCache_with_parameter_SetCruiseSpeed_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_SetCruiseSpeed.find(readState); + if(writeState_ptr != _OpCache_with_parameter_SetCruiseSpeed.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = writeState_ptr->second; + copiedState._apply_update_for_SetCruiseSpeed(writeState); + } else { + copiedState.SetCruiseSpeed(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_SetCruiseSpeed writeState = copiedState._update_for_SetCruiseSpeed(); + _OpCache_with_parameter_SetCruiseSpeed.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "SetCruiseSpeed"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "SetCruiseSpeed"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CCInitialisationFinished read__tr_CCInitialisationFinished_state = state._projected_state_for__tr_CCInitialisationFinished(); - auto _trid_4_ptr = _OpCache_tr_CCInitialisationFinished.find(read__tr_CCInitialisationFinished_state); - if(_trid_4_ptr == _OpCache_tr_CCInitialisationFinished.end()) { - BSet<BTuple<BBoolean, BBoolean >> _trid_4 = state._tr_CCInitialisationFinished(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CCInitialisationFinished_lock(_ProjectionRead__tr_CCInitialisationFinished_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CCInitialisationFinished_lock(_ProjectionRead__tr_CCInitialisationFinished_mutex); + auto _trid_4_ptr = _OpCache_tr_CCInitialisationFinished.find(read__tr_CCInitialisationFinished_state); + if(_trid_4_ptr == _OpCache_tr_CCInitialisationFinished.end()) { + BSet<BTuple<BBoolean, BBoolean >> _trid_4 = state._tr_CCInitialisationFinished(); _OpCache_tr_CCInitialisationFinished.insert({read__tr_CCInitialisationFinished_state, _trid_4}); - } - for(const BTuple<BBoolean, BBoolean >& param : _trid_4) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished readState = state._projected_state_for_CCInitialisationFinished(); + for(const BTuple<BBoolean, BBoolean >& param : _trid_4) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_CCInitialisationFinished_ptr = _OpCache_CCInitialisationFinished.find(param); - if(_OpCache_with_parameter_CCInitialisationFinished_ptr == _OpCache_CCInitialisationFinished.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationFinished_lock(_ProjectionRead_CCInitialisationFinished_mutex); - copiedState.CCInitialisationFinished(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = copiedState._update_for_CCInitialisationFinished(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual>(); - _OpCache_with_parameter_CCInitialisationFinished.insert({readState, writeState}); - _OpCache_CCInitialisationFinished.insert({param, _OpCache_with_parameter_CCInitialisationFinished}); - } - } else { + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished readState = state._projected_state_for_CCInitialisationFinished(); { std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationFinished_lock(_ProjectionRead_CCInitialisationFinished_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = _OpCache_with_parameter_CCInitialisationFinished_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_CCInitialisationFinished.find(readState); - if(writeState_ptr != _OpCache_with_parameter_CCInitialisationFinished.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = writeState_ptr->second; - copiedState._apply_update_for_CCInitialisationFinished(writeState); - } else { + auto _OpCache_with_parameter_CCInitialisationFinished_ptr = _OpCache_CCInitialisationFinished.find(param); + if(_OpCache_with_parameter_CCInitialisationFinished_ptr == _OpCache_CCInitialisationFinished.end()) { copiedState.CCInitialisationFinished(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = copiedState._update_for_CCInitialisationFinished(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual>(); _OpCache_with_parameter_CCInitialisationFinished.insert({readState, writeState}); + _OpCache_CCInitialisationFinished.insert({param, _OpCache_with_parameter_CCInitialisationFinished}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = _OpCache_with_parameter_CCInitialisationFinished_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_CCInitialisationFinished.find(readState); + if(writeState_ptr != _OpCache_with_parameter_CCInitialisationFinished.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = writeState_ptr->second; + copiedState._apply_update_for_CCInitialisationFinished(writeState); + } else { + copiedState.CCInitialisationFinished(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = copiedState._update_for_CCInitialisationFinished(); + _OpCache_with_parameter_CCInitialisationFinished.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "CCInitialisationFinished"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BBoolean, BBoolean >> _trid_4 = _trid_4_ptr->second; - for(const BTuple<BBoolean, BBoolean >& param : _trid_4) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished readState = state._projected_state_for_CCInitialisationFinished(); - - auto _OpCache_with_parameter_CCInitialisationFinished_ptr = _OpCache_CCInitialisationFinished.find(param); - if(_OpCache_with_parameter_CCInitialisationFinished_ptr == _OpCache_CCInitialisationFinished.end()) { + copiedState.stateAccessedVia = "CCInitialisationFinished"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationFinished_lock(_ProjectionRead_CCInitialisationFinished_mutex); - copiedState.CCInitialisationFinished(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = copiedState._update_for_CCInitialisationFinished(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual>(); - _OpCache_with_parameter_CCInitialisationFinished.insert({readState, writeState}); - _OpCache_CCInitialisationFinished.insert({param, _OpCache_with_parameter_CCInitialisationFinished}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BBoolean, BBoolean >> _trid_4 = _trid_4_ptr->second; + for(const BTuple<BBoolean, BBoolean >& param : _trid_4) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); + + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished readState = state._projected_state_for_CCInitialisationFinished(); { std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationFinished_lock(_ProjectionRead_CCInitialisationFinished_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = _OpCache_with_parameter_CCInitialisationFinished_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_CCInitialisationFinished.find(readState); - if(writeState_ptr != _OpCache_with_parameter_CCInitialisationFinished.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = writeState_ptr->second; - copiedState._apply_update_for_CCInitialisationFinished(writeState); - } else { + auto _OpCache_with_parameter_CCInitialisationFinished_ptr = _OpCache_CCInitialisationFinished.find(param); + if(_OpCache_with_parameter_CCInitialisationFinished_ptr == _OpCache_CCInitialisationFinished.end()) { copiedState.CCInitialisationFinished(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = copiedState._update_for_CCInitialisationFinished(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual>(); _OpCache_with_parameter_CCInitialisationFinished.insert({readState, writeState}); + _OpCache_CCInitialisationFinished.insert({param, _OpCache_with_parameter_CCInitialisationFinished}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationFinished::HashEqual> _OpCache_with_parameter_CCInitialisationFinished = _OpCache_with_parameter_CCInitialisationFinished_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_CCInitialisationFinished.find(readState); + if(writeState_ptr != _OpCache_with_parameter_CCInitialisationFinished.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = writeState_ptr->second; + copiedState._apply_update_for_CCInitialisationFinished(writeState); + } else { + copiedState.CCInitialisationFinished(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationFinished writeState = copiedState._update_for_CCInitialisationFinished(); + _OpCache_with_parameter_CCInitialisationFinished.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "CCInitialisationFinished"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "CCInitialisationFinished"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CCInitialisationDelayFinished read__tr_CCInitialisationDelayFinished_state = state._projected_state_for__tr_CCInitialisationDelayFinished(); bool _trid_5 = false; - auto _obj__trid_5_ptr = _OpCache_tr_CCInitialisationDelayFinished.find(read__tr_CCInitialisationDelayFinished_state); - if(_obj__trid_5_ptr == _OpCache_tr_CCInitialisationDelayFinished.end()) { - _trid_5 = state._tr_CCInitialisationDelayFinished(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CCInitialisationDelayFinished_lock(_ProjectionRead__tr_CCInitialisationDelayFinished_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CCInitialisationDelayFinished_lock(_ProjectionRead__tr_CCInitialisationDelayFinished_mutex); + auto _obj__trid_5_ptr = _OpCache_tr_CCInitialisationDelayFinished.find(read__tr_CCInitialisationDelayFinished_state); + if(_obj__trid_5_ptr == _OpCache_tr_CCInitialisationDelayFinished.end()) { + _trid_5 = state._tr_CCInitialisationDelayFinished(); _OpCache_tr_CCInitialisationDelayFinished.insert({read__tr_CCInitialisationDelayFinished_state, _trid_5}); + } else { + _trid_5 = _obj__trid_5_ptr->second; } - } else { - _trid_5 = _obj__trid_5_ptr->second; } if(_trid_5) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished readState = state._projected_state_for_CCInitialisationDelayFinished(); - - auto _OpCache_with_parameter_CCInitialisationDelayFinished_ptr = _OpCache_CCInitialisationDelayFinished.find(_trid_5); - if(_OpCache_with_parameter_CCInitialisationDelayFinished_ptr == _OpCache_CCInitialisationDelayFinished.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationDelayFinished_lock(_ProjectionRead_CCInitialisationDelayFinished_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationDelayFinished_lock(_ProjectionRead_CCInitialisationDelayFinished_mutex); + auto _OpCache_with_parameter_CCInitialisationDelayFinished_ptr = _OpCache_CCInitialisationDelayFinished.find(_trid_5); + if(_OpCache_with_parameter_CCInitialisationDelayFinished_ptr == _OpCache_CCInitialisationDelayFinished.end()) { copiedState.CCInitialisationDelayFinished(); Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationDelayFinished writeState = copiedState._update_for_CCInitialisationDelayFinished(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished::HashEqual> _OpCache_with_parameter_CCInitialisationDelayFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished::HashEqual>(); _OpCache_with_parameter_CCInitialisationDelayFinished.insert({readState, writeState}); _OpCache_CCInitialisationDelayFinished.insert({_trid_5, _OpCache_with_parameter_CCInitialisationDelayFinished}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_CCInitialisationDelayFinished_lock(_ProjectionRead_CCInitialisationDelayFinished_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CCInitialisationDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CCInitialisationDelayFinished::HashEqual> _OpCache_with_parameter_CCInitialisationDelayFinished = _OpCache_with_parameter_CCInitialisationDelayFinished_ptr->second; auto writeState_ptr = _OpCache_with_parameter_CCInitialisationDelayFinished.find(readState); if(writeState_ptr != _OpCache_with_parameter_CCInitialisationDelayFinished.end()) { @@ -9041,7 +9007,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "CCInitialisationDelayFinished"; result.insert(copiedState); { @@ -9050,125 +9015,111 @@ class ModelChecker { } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CruiseSpeedChangeFinished read__tr_CruiseSpeedChangeFinished_state = state._projected_state_for__tr_CruiseSpeedChangeFinished(); - auto _trid_6_ptr = _OpCache_tr_CruiseSpeedChangeFinished.find(read__tr_CruiseSpeedChangeFinished_state); - if(_trid_6_ptr == _OpCache_tr_CruiseSpeedChangeFinished.end()) { - BSet<BTuple<BBoolean, BBoolean >> _trid_6 = state._tr_CruiseSpeedChangeFinished(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseSpeedChangeFinished_lock(_ProjectionRead__tr_CruiseSpeedChangeFinished_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseSpeedChangeFinished_lock(_ProjectionRead__tr_CruiseSpeedChangeFinished_mutex); + auto _trid_6_ptr = _OpCache_tr_CruiseSpeedChangeFinished.find(read__tr_CruiseSpeedChangeFinished_state); + if(_trid_6_ptr == _OpCache_tr_CruiseSpeedChangeFinished.end()) { + BSet<BTuple<BBoolean, BBoolean >> _trid_6 = state._tr_CruiseSpeedChangeFinished(); _OpCache_tr_CruiseSpeedChangeFinished.insert({read__tr_CruiseSpeedChangeFinished_state, _trid_6}); - } - for(const BTuple<BBoolean, BBoolean >& param : _trid_6) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished readState = state._projected_state_for_CruiseSpeedChangeFinished(); + for(const BTuple<BBoolean, BBoolean >& param : _trid_6) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr = _OpCache_CruiseSpeedChangeFinished.find(param); - if(_OpCache_with_parameter_CruiseSpeedChangeFinished_ptr == _OpCache_CruiseSpeedChangeFinished.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeFinished_lock(_ProjectionRead_CruiseSpeedChangeFinished_mutex); - copiedState.CruiseSpeedChangeFinished(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = copiedState._update_for_CruiseSpeedChangeFinished(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual>(); - _OpCache_with_parameter_CruiseSpeedChangeFinished.insert({readState, writeState}); - _OpCache_CruiseSpeedChangeFinished.insert({param, _OpCache_with_parameter_CruiseSpeedChangeFinished}); - } - } else { + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished readState = state._projected_state_for_CruiseSpeedChangeFinished(); { std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeFinished_lock(_ProjectionRead_CruiseSpeedChangeFinished_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_CruiseSpeedChangeFinished.find(readState); - if(writeState_ptr != _OpCache_with_parameter_CruiseSpeedChangeFinished.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = writeState_ptr->second; - copiedState._apply_update_for_CruiseSpeedChangeFinished(writeState); - } else { + auto _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr = _OpCache_CruiseSpeedChangeFinished.find(param); + if(_OpCache_with_parameter_CruiseSpeedChangeFinished_ptr == _OpCache_CruiseSpeedChangeFinished.end()) { copiedState.CruiseSpeedChangeFinished(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = copiedState._update_for_CruiseSpeedChangeFinished(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual>(); _OpCache_with_parameter_CruiseSpeedChangeFinished.insert({readState, writeState}); + _OpCache_CruiseSpeedChangeFinished.insert({param, _OpCache_with_parameter_CruiseSpeedChangeFinished}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_CruiseSpeedChangeFinished.find(readState); + if(writeState_ptr != _OpCache_with_parameter_CruiseSpeedChangeFinished.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = writeState_ptr->second; + copiedState._apply_update_for_CruiseSpeedChangeFinished(writeState); + } else { + copiedState.CruiseSpeedChangeFinished(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = copiedState._update_for_CruiseSpeedChangeFinished(); + _OpCache_with_parameter_CruiseSpeedChangeFinished.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "CruiseSpeedChangeFinished"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BBoolean, BBoolean >> _trid_6 = _trid_6_ptr->second; - for(const BTuple<BBoolean, BBoolean >& param : _trid_6) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished readState = state._projected_state_for_CruiseSpeedChangeFinished(); - - auto _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr = _OpCache_CruiseSpeedChangeFinished.find(param); - if(_OpCache_with_parameter_CruiseSpeedChangeFinished_ptr == _OpCache_CruiseSpeedChangeFinished.end()) { + copiedState.stateAccessedVia = "CruiseSpeedChangeFinished"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeFinished_lock(_ProjectionRead_CruiseSpeedChangeFinished_mutex); - copiedState.CruiseSpeedChangeFinished(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = copiedState._update_for_CruiseSpeedChangeFinished(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual>(); - _OpCache_with_parameter_CruiseSpeedChangeFinished.insert({readState, writeState}); - _OpCache_CruiseSpeedChangeFinished.insert({param, _OpCache_with_parameter_CruiseSpeedChangeFinished}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BBoolean, BBoolean >> _trid_6 = _trid_6_ptr->second; + for(const BTuple<BBoolean, BBoolean >& param : _trid_6) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); + + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished readState = state._projected_state_for_CruiseSpeedChangeFinished(); { std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeFinished_lock(_ProjectionRead_CruiseSpeedChangeFinished_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_CruiseSpeedChangeFinished.find(readState); - if(writeState_ptr != _OpCache_with_parameter_CruiseSpeedChangeFinished.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = writeState_ptr->second; - copiedState._apply_update_for_CruiseSpeedChangeFinished(writeState); - } else { + auto _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr = _OpCache_CruiseSpeedChangeFinished.find(param); + if(_OpCache_with_parameter_CruiseSpeedChangeFinished_ptr == _OpCache_CruiseSpeedChangeFinished.end()) { copiedState.CruiseSpeedChangeFinished(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = copiedState._update_for_CruiseSpeedChangeFinished(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual>(); _OpCache_with_parameter_CruiseSpeedChangeFinished.insert({readState, writeState}); + _OpCache_CruiseSpeedChangeFinished.insert({param, _OpCache_with_parameter_CruiseSpeedChangeFinished}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeFinished = _OpCache_with_parameter_CruiseSpeedChangeFinished_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_CruiseSpeedChangeFinished.find(readState); + if(writeState_ptr != _OpCache_with_parameter_CruiseSpeedChangeFinished.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = writeState_ptr->second; + copiedState._apply_update_for_CruiseSpeedChangeFinished(writeState); + } else { + copiedState.CruiseSpeedChangeFinished(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeFinished writeState = copiedState._update_for_CruiseSpeedChangeFinished(); + _OpCache_with_parameter_CruiseSpeedChangeFinished.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "CruiseSpeedChangeFinished"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "CruiseSpeedChangeFinished"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CruiseSpeedChangeDelayFinished read__tr_CruiseSpeedChangeDelayFinished_state = state._projected_state_for__tr_CruiseSpeedChangeDelayFinished(); bool _trid_7 = false; - auto _obj__trid_7_ptr = _OpCache_tr_CruiseSpeedChangeDelayFinished.find(read__tr_CruiseSpeedChangeDelayFinished_state); - if(_obj__trid_7_ptr == _OpCache_tr_CruiseSpeedChangeDelayFinished.end()) { - _trid_7 = state._tr_CruiseSpeedChangeDelayFinished(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseSpeedChangeDelayFinished_lock(_ProjectionRead__tr_CruiseSpeedChangeDelayFinished_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseSpeedChangeDelayFinished_lock(_ProjectionRead__tr_CruiseSpeedChangeDelayFinished_mutex); + auto _obj__trid_7_ptr = _OpCache_tr_CruiseSpeedChangeDelayFinished.find(read__tr_CruiseSpeedChangeDelayFinished_state); + if(_obj__trid_7_ptr == _OpCache_tr_CruiseSpeedChangeDelayFinished.end()) { + _trid_7 = state._tr_CruiseSpeedChangeDelayFinished(); _OpCache_tr_CruiseSpeedChangeDelayFinished.insert({read__tr_CruiseSpeedChangeDelayFinished_state, _trid_7}); + } else { + _trid_7 = _obj__trid_7_ptr->second; } - } else { - _trid_7 = _obj__trid_7_ptr->second; } if(_trid_7) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished readState = state._projected_state_for_CruiseSpeedChangeDelayFinished(); - - auto _OpCache_with_parameter_CruiseSpeedChangeDelayFinished_ptr = _OpCache_CruiseSpeedChangeDelayFinished.find(_trid_7); - if(_OpCache_with_parameter_CruiseSpeedChangeDelayFinished_ptr == _OpCache_CruiseSpeedChangeDelayFinished.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeDelayFinished_lock(_ProjectionRead_CruiseSpeedChangeDelayFinished_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeDelayFinished_lock(_ProjectionRead_CruiseSpeedChangeDelayFinished_mutex); + auto _OpCache_with_parameter_CruiseSpeedChangeDelayFinished_ptr = _OpCache_CruiseSpeedChangeDelayFinished.find(_trid_7); + if(_OpCache_with_parameter_CruiseSpeedChangeDelayFinished_ptr == _OpCache_CruiseSpeedChangeDelayFinished.end()) { copiedState.CruiseSpeedChangeDelayFinished(); Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeDelayFinished writeState = copiedState._update_for_CruiseSpeedChangeDelayFinished(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeDelayFinished = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished::HashEqual>(); _OpCache_with_parameter_CruiseSpeedChangeDelayFinished.insert({readState, writeState}); _OpCache_CruiseSpeedChangeDelayFinished.insert({_trid_7, _OpCache_with_parameter_CruiseSpeedChangeDelayFinished}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseSpeedChangeDelayFinished_lock(_ProjectionRead_CruiseSpeedChangeDelayFinished_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseSpeedChangeDelayFinished, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseSpeedChangeDelayFinished::HashEqual> _OpCache_with_parameter_CruiseSpeedChangeDelayFinished = _OpCache_with_parameter_CruiseSpeedChangeDelayFinished_ptr->second; auto writeState_ptr = _OpCache_with_parameter_CruiseSpeedChangeDelayFinished.find(readState); if(writeState_ptr != _OpCache_with_parameter_CruiseSpeedChangeDelayFinished.end()) { @@ -9181,7 +9132,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "CruiseSpeedChangeDelayFinished"; result.insert(copiedState); { @@ -9191,33 +9141,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_CruiseOff read__tr_CruiseOff_state = state._projected_state_for__tr_CruiseOff(); bool _trid_8 = false; - auto _obj__trid_8_ptr = _OpCache_tr_CruiseOff.find(read__tr_CruiseOff_state); - if(_obj__trid_8_ptr == _OpCache_tr_CruiseOff.end()) { - _trid_8 = state._tr_CruiseOff(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseOff_lock(_ProjectionRead__tr_CruiseOff_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_CruiseOff_lock(_ProjectionRead__tr_CruiseOff_mutex); + auto _obj__trid_8_ptr = _OpCache_tr_CruiseOff.find(read__tr_CruiseOff_state); + if(_obj__trid_8_ptr == _OpCache_tr_CruiseOff.end()) { + _trid_8 = state._tr_CruiseOff(); _OpCache_tr_CruiseOff.insert({read__tr_CruiseOff_state, _trid_8}); + } else { + _trid_8 = _obj__trid_8_ptr->second; } - } else { - _trid_8 = _obj__trid_8_ptr->second; } if(_trid_8) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff readState = state._projected_state_for_CruiseOff(); - - auto _OpCache_with_parameter_CruiseOff_ptr = _OpCache_CruiseOff.find(_trid_8); - if(_OpCache_with_parameter_CruiseOff_ptr == _OpCache_CruiseOff.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseOff_lock(_ProjectionRead_CruiseOff_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_CruiseOff_lock(_ProjectionRead_CruiseOff_mutex); + auto _OpCache_with_parameter_CruiseOff_ptr = _OpCache_CruiseOff.find(_trid_8); + if(_OpCache_with_parameter_CruiseOff_ptr == _OpCache_CruiseOff.end()) { copiedState.CruiseOff(); Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseOff writeState = copiedState._update_for_CruiseOff(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseOff, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff::HashEqual> _OpCache_with_parameter_CruiseOff = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseOff, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff::HashEqual>(); _OpCache_with_parameter_CruiseOff.insert({readState, writeState}); _OpCache_CruiseOff.insert({_trid_8, _OpCache_with_parameter_CruiseOff}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_CruiseOff_lock(_ProjectionRead_CruiseOff_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff, Cruise_finite1_deterministic_MC::_ProjectionWrite_CruiseOff, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_CruiseOff::HashEqual> _OpCache_with_parameter_CruiseOff = _OpCache_with_parameter_CruiseOff_ptr->second; auto writeState_ptr = _OpCache_with_parameter_CruiseOff.find(readState); if(writeState_ptr != _OpCache_with_parameter_CruiseOff.end()) { @@ -9230,7 +9176,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "CruiseOff"; result.insert(copiedState); { @@ -9240,33 +9185,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ExternalForcesBecomesExtreme read__tr_ExternalForcesBecomesExtreme_state = state._projected_state_for__tr_ExternalForcesBecomesExtreme(); bool _trid_9 = false; - auto _obj__trid_9_ptr = _OpCache_tr_ExternalForcesBecomesExtreme.find(read__tr_ExternalForcesBecomesExtreme_state); - if(_obj__trid_9_ptr == _OpCache_tr_ExternalForcesBecomesExtreme.end()) { - _trid_9 = state._tr_ExternalForcesBecomesExtreme(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ExternalForcesBecomesExtreme_lock(_ProjectionRead__tr_ExternalForcesBecomesExtreme_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ExternalForcesBecomesExtreme_lock(_ProjectionRead__tr_ExternalForcesBecomesExtreme_mutex); + auto _obj__trid_9_ptr = _OpCache_tr_ExternalForcesBecomesExtreme.find(read__tr_ExternalForcesBecomesExtreme_state); + if(_obj__trid_9_ptr == _OpCache_tr_ExternalForcesBecomesExtreme.end()) { + _trid_9 = state._tr_ExternalForcesBecomesExtreme(); _OpCache_tr_ExternalForcesBecomesExtreme.insert({read__tr_ExternalForcesBecomesExtreme_state, _trid_9}); + } else { + _trid_9 = _obj__trid_9_ptr->second; } - } else { - _trid_9 = _obj__trid_9_ptr->second; } if(_trid_9) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme readState = state._projected_state_for_ExternalForcesBecomesExtreme(); - - auto _OpCache_with_parameter_ExternalForcesBecomesExtreme_ptr = _OpCache_ExternalForcesBecomesExtreme.find(_trid_9); - if(_OpCache_with_parameter_ExternalForcesBecomesExtreme_ptr == _OpCache_ExternalForcesBecomesExtreme.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ExternalForcesBecomesExtreme_lock(_ProjectionRead_ExternalForcesBecomesExtreme_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ExternalForcesBecomesExtreme_lock(_ProjectionRead_ExternalForcesBecomesExtreme_mutex); + auto _OpCache_with_parameter_ExternalForcesBecomesExtreme_ptr = _OpCache_ExternalForcesBecomesExtreme.find(_trid_9); + if(_OpCache_with_parameter_ExternalForcesBecomesExtreme_ptr == _OpCache_ExternalForcesBecomesExtreme.end()) { copiedState.ExternalForcesBecomesExtreme(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesExtreme writeState = copiedState._update_for_ExternalForcesBecomesExtreme(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme, Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesExtreme, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme::HashEqual> _OpCache_with_parameter_ExternalForcesBecomesExtreme = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme, Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesExtreme, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme::HashEqual>(); _OpCache_with_parameter_ExternalForcesBecomesExtreme.insert({readState, writeState}); _OpCache_ExternalForcesBecomesExtreme.insert({_trid_9, _OpCache_with_parameter_ExternalForcesBecomesExtreme}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ExternalForcesBecomesExtreme_lock(_ProjectionRead_ExternalForcesBecomesExtreme_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme, Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesExtreme, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesExtreme::HashEqual> _OpCache_with_parameter_ExternalForcesBecomesExtreme = _OpCache_with_parameter_ExternalForcesBecomesExtreme_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ExternalForcesBecomesExtreme.find(readState); if(writeState_ptr != _OpCache_with_parameter_ExternalForcesBecomesExtreme.end()) { @@ -9279,7 +9220,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ExternalForcesBecomesExtreme"; result.insert(copiedState); { @@ -9289,33 +9229,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ExternalForcesBecomesNormal read__tr_ExternalForcesBecomesNormal_state = state._projected_state_for__tr_ExternalForcesBecomesNormal(); bool _trid_10 = false; - auto _obj__trid_10_ptr = _OpCache_tr_ExternalForcesBecomesNormal.find(read__tr_ExternalForcesBecomesNormal_state); - if(_obj__trid_10_ptr == _OpCache_tr_ExternalForcesBecomesNormal.end()) { - _trid_10 = state._tr_ExternalForcesBecomesNormal(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ExternalForcesBecomesNormal_lock(_ProjectionRead__tr_ExternalForcesBecomesNormal_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ExternalForcesBecomesNormal_lock(_ProjectionRead__tr_ExternalForcesBecomesNormal_mutex); + auto _obj__trid_10_ptr = _OpCache_tr_ExternalForcesBecomesNormal.find(read__tr_ExternalForcesBecomesNormal_state); + if(_obj__trid_10_ptr == _OpCache_tr_ExternalForcesBecomesNormal.end()) { + _trid_10 = state._tr_ExternalForcesBecomesNormal(); _OpCache_tr_ExternalForcesBecomesNormal.insert({read__tr_ExternalForcesBecomesNormal_state, _trid_10}); + } else { + _trid_10 = _obj__trid_10_ptr->second; } - } else { - _trid_10 = _obj__trid_10_ptr->second; } if(_trid_10) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal readState = state._projected_state_for_ExternalForcesBecomesNormal(); - - auto _OpCache_with_parameter_ExternalForcesBecomesNormal_ptr = _OpCache_ExternalForcesBecomesNormal.find(_trid_10); - if(_OpCache_with_parameter_ExternalForcesBecomesNormal_ptr == _OpCache_ExternalForcesBecomesNormal.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ExternalForcesBecomesNormal_lock(_ProjectionRead_ExternalForcesBecomesNormal_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ExternalForcesBecomesNormal_lock(_ProjectionRead_ExternalForcesBecomesNormal_mutex); + auto _OpCache_with_parameter_ExternalForcesBecomesNormal_ptr = _OpCache_ExternalForcesBecomesNormal.find(_trid_10); + if(_OpCache_with_parameter_ExternalForcesBecomesNormal_ptr == _OpCache_ExternalForcesBecomesNormal.end()) { copiedState.ExternalForcesBecomesNormal(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesNormal writeState = copiedState._update_for_ExternalForcesBecomesNormal(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal, Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesNormal, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal::HashEqual> _OpCache_with_parameter_ExternalForcesBecomesNormal = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal, Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesNormal, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal::HashEqual>(); _OpCache_with_parameter_ExternalForcesBecomesNormal.insert({readState, writeState}); _OpCache_ExternalForcesBecomesNormal.insert({_trid_10, _OpCache_with_parameter_ExternalForcesBecomesNormal}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ExternalForcesBecomesNormal_lock(_ProjectionRead_ExternalForcesBecomesNormal_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal, Cruise_finite1_deterministic_MC::_ProjectionWrite_ExternalForcesBecomesNormal, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ExternalForcesBecomesNormal::HashEqual> _OpCache_with_parameter_ExternalForcesBecomesNormal = _OpCache_with_parameter_ExternalForcesBecomesNormal_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ExternalForcesBecomesNormal.find(readState); if(writeState_ptr != _OpCache_with_parameter_ExternalForcesBecomesNormal.end()) { @@ -9328,7 +9264,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ExternalForcesBecomesNormal"; result.insert(copiedState); { @@ -9338,33 +9273,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_VehicleLeavesCruiseSpeed read__tr_VehicleLeavesCruiseSpeed_state = state._projected_state_for__tr_VehicleLeavesCruiseSpeed(); bool _trid_11 = false; - auto _obj__trid_11_ptr = _OpCache_tr_VehicleLeavesCruiseSpeed.find(read__tr_VehicleLeavesCruiseSpeed_state); - if(_obj__trid_11_ptr == _OpCache_tr_VehicleLeavesCruiseSpeed.end()) { - _trid_11 = state._tr_VehicleLeavesCruiseSpeed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleLeavesCruiseSpeed_lock(_ProjectionRead__tr_VehicleLeavesCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleLeavesCruiseSpeed_lock(_ProjectionRead__tr_VehicleLeavesCruiseSpeed_mutex); + auto _obj__trid_11_ptr = _OpCache_tr_VehicleLeavesCruiseSpeed.find(read__tr_VehicleLeavesCruiseSpeed_state); + if(_obj__trid_11_ptr == _OpCache_tr_VehicleLeavesCruiseSpeed.end()) { + _trid_11 = state._tr_VehicleLeavesCruiseSpeed(); _OpCache_tr_VehicleLeavesCruiseSpeed.insert({read__tr_VehicleLeavesCruiseSpeed_state, _trid_11}); + } else { + _trid_11 = _obj__trid_11_ptr->second; } - } else { - _trid_11 = _obj__trid_11_ptr->second; } if(_trid_11) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed readState = state._projected_state_for_VehicleLeavesCruiseSpeed(); - - auto _OpCache_with_parameter_VehicleLeavesCruiseSpeed_ptr = _OpCache_VehicleLeavesCruiseSpeed.find(_trid_11); - if(_OpCache_with_parameter_VehicleLeavesCruiseSpeed_ptr == _OpCache_VehicleLeavesCruiseSpeed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleLeavesCruiseSpeed_lock(_ProjectionRead_VehicleLeavesCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_VehicleLeavesCruiseSpeed_lock(_ProjectionRead_VehicleLeavesCruiseSpeed_mutex); + auto _OpCache_with_parameter_VehicleLeavesCruiseSpeed_ptr = _OpCache_VehicleLeavesCruiseSpeed.find(_trid_11); + if(_OpCache_with_parameter_VehicleLeavesCruiseSpeed_ptr == _OpCache_VehicleLeavesCruiseSpeed.end()) { copiedState.VehicleLeavesCruiseSpeed(); Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleLeavesCruiseSpeed writeState = copiedState._update_for_VehicleLeavesCruiseSpeed(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleLeavesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleLeavesCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleLeavesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed::HashEqual>(); _OpCache_with_parameter_VehicleLeavesCruiseSpeed.insert({readState, writeState}); _OpCache_VehicleLeavesCruiseSpeed.insert({_trid_11, _OpCache_with_parameter_VehicleLeavesCruiseSpeed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleLeavesCruiseSpeed_lock(_ProjectionRead_VehicleLeavesCruiseSpeed_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleLeavesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleLeavesCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleLeavesCruiseSpeed = _OpCache_with_parameter_VehicleLeavesCruiseSpeed_ptr->second; auto writeState_ptr = _OpCache_with_parameter_VehicleLeavesCruiseSpeed.find(readState); if(writeState_ptr != _OpCache_with_parameter_VehicleLeavesCruiseSpeed.end()) { @@ -9377,7 +9308,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "VehicleLeavesCruiseSpeed"; result.insert(copiedState); { @@ -9387,33 +9317,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_VehicleReachesCruiseSpeed read__tr_VehicleReachesCruiseSpeed_state = state._projected_state_for__tr_VehicleReachesCruiseSpeed(); bool _trid_12 = false; - auto _obj__trid_12_ptr = _OpCache_tr_VehicleReachesCruiseSpeed.find(read__tr_VehicleReachesCruiseSpeed_state); - if(_obj__trid_12_ptr == _OpCache_tr_VehicleReachesCruiseSpeed.end()) { - _trid_12 = state._tr_VehicleReachesCruiseSpeed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleReachesCruiseSpeed_lock(_ProjectionRead__tr_VehicleReachesCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleReachesCruiseSpeed_lock(_ProjectionRead__tr_VehicleReachesCruiseSpeed_mutex); + auto _obj__trid_12_ptr = _OpCache_tr_VehicleReachesCruiseSpeed.find(read__tr_VehicleReachesCruiseSpeed_state); + if(_obj__trid_12_ptr == _OpCache_tr_VehicleReachesCruiseSpeed.end()) { + _trid_12 = state._tr_VehicleReachesCruiseSpeed(); _OpCache_tr_VehicleReachesCruiseSpeed.insert({read__tr_VehicleReachesCruiseSpeed_state, _trid_12}); + } else { + _trid_12 = _obj__trid_12_ptr->second; } - } else { - _trid_12 = _obj__trid_12_ptr->second; } if(_trid_12) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed readState = state._projected_state_for_VehicleReachesCruiseSpeed(); - - auto _OpCache_with_parameter_VehicleReachesCruiseSpeed_ptr = _OpCache_VehicleReachesCruiseSpeed.find(_trid_12); - if(_OpCache_with_parameter_VehicleReachesCruiseSpeed_ptr == _OpCache_VehicleReachesCruiseSpeed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleReachesCruiseSpeed_lock(_ProjectionRead_VehicleReachesCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_VehicleReachesCruiseSpeed_lock(_ProjectionRead_VehicleReachesCruiseSpeed_mutex); + auto _OpCache_with_parameter_VehicleReachesCruiseSpeed_ptr = _OpCache_VehicleReachesCruiseSpeed.find(_trid_12); + if(_OpCache_with_parameter_VehicleReachesCruiseSpeed_ptr == _OpCache_VehicleReachesCruiseSpeed.end()) { copiedState.VehicleReachesCruiseSpeed(); Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleReachesCruiseSpeed writeState = copiedState._update_for_VehicleReachesCruiseSpeed(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleReachesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleReachesCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleReachesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed::HashEqual>(); _OpCache_with_parameter_VehicleReachesCruiseSpeed.insert({readState, writeState}); _OpCache_VehicleReachesCruiseSpeed.insert({_trid_12, _OpCache_with_parameter_VehicleReachesCruiseSpeed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleReachesCruiseSpeed_lock(_ProjectionRead_VehicleReachesCruiseSpeed_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleReachesCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleReachesCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleReachesCruiseSpeed = _OpCache_with_parameter_VehicleReachesCruiseSpeed_ptr->second; auto writeState_ptr = _OpCache_with_parameter_VehicleReachesCruiseSpeed.find(readState); if(writeState_ptr != _OpCache_with_parameter_VehicleReachesCruiseSpeed.end()) { @@ -9426,7 +9352,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "VehicleReachesCruiseSpeed"; result.insert(copiedState); { @@ -9436,33 +9361,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_VehicleExceedsMaxCruiseSpeed read__tr_VehicleExceedsMaxCruiseSpeed_state = state._projected_state_for__tr_VehicleExceedsMaxCruiseSpeed(); bool _trid_13 = false; - auto _obj__trid_13_ptr = _OpCache_tr_VehicleExceedsMaxCruiseSpeed.find(read__tr_VehicleExceedsMaxCruiseSpeed_state); - if(_obj__trid_13_ptr == _OpCache_tr_VehicleExceedsMaxCruiseSpeed.end()) { - _trid_13 = state._tr_VehicleExceedsMaxCruiseSpeed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleExceedsMaxCruiseSpeed_lock(_ProjectionRead__tr_VehicleExceedsMaxCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleExceedsMaxCruiseSpeed_lock(_ProjectionRead__tr_VehicleExceedsMaxCruiseSpeed_mutex); + auto _obj__trid_13_ptr = _OpCache_tr_VehicleExceedsMaxCruiseSpeed.find(read__tr_VehicleExceedsMaxCruiseSpeed_state); + if(_obj__trid_13_ptr == _OpCache_tr_VehicleExceedsMaxCruiseSpeed.end()) { + _trid_13 = state._tr_VehicleExceedsMaxCruiseSpeed(); _OpCache_tr_VehicleExceedsMaxCruiseSpeed.insert({read__tr_VehicleExceedsMaxCruiseSpeed_state, _trid_13}); + } else { + _trid_13 = _obj__trid_13_ptr->second; } - } else { - _trid_13 = _obj__trid_13_ptr->second; } if(_trid_13) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed readState = state._projected_state_for_VehicleExceedsMaxCruiseSpeed(); - - auto _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed_ptr = _OpCache_VehicleExceedsMaxCruiseSpeed.find(_trid_13); - if(_OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed_ptr == _OpCache_VehicleExceedsMaxCruiseSpeed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleExceedsMaxCruiseSpeed_lock(_ProjectionRead_VehicleExceedsMaxCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_VehicleExceedsMaxCruiseSpeed_lock(_ProjectionRead_VehicleExceedsMaxCruiseSpeed_mutex); + auto _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed_ptr = _OpCache_VehicleExceedsMaxCruiseSpeed.find(_trid_13); + if(_OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed_ptr == _OpCache_VehicleExceedsMaxCruiseSpeed.end()) { copiedState.VehicleExceedsMaxCruiseSpeed(); Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleExceedsMaxCruiseSpeed writeState = copiedState._update_for_VehicleExceedsMaxCruiseSpeed(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleExceedsMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleExceedsMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed::HashEqual>(); _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed.insert({readState, writeState}); _OpCache_VehicleExceedsMaxCruiseSpeed.insert({_trid_13, _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleExceedsMaxCruiseSpeed_lock(_ProjectionRead_VehicleExceedsMaxCruiseSpeed_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleExceedsMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleExceedsMaxCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed = _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed_ptr->second; auto writeState_ptr = _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed.find(readState); if(writeState_ptr != _OpCache_with_parameter_VehicleExceedsMaxCruiseSpeed.end()) { @@ -9475,7 +9396,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "VehicleExceedsMaxCruiseSpeed"; result.insert(copiedState); { @@ -9485,33 +9405,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_VehicleFallsBelowMaxCruiseSpeed read__tr_VehicleFallsBelowMaxCruiseSpeed_state = state._projected_state_for__tr_VehicleFallsBelowMaxCruiseSpeed(); bool _trid_14 = false; - auto _obj__trid_14_ptr = _OpCache_tr_VehicleFallsBelowMaxCruiseSpeed.find(read__tr_VehicleFallsBelowMaxCruiseSpeed_state); - if(_obj__trid_14_ptr == _OpCache_tr_VehicleFallsBelowMaxCruiseSpeed.end()) { - _trid_14 = state._tr_VehicleFallsBelowMaxCruiseSpeed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleFallsBelowMaxCruiseSpeed_lock(_ProjectionRead__tr_VehicleFallsBelowMaxCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleFallsBelowMaxCruiseSpeed_lock(_ProjectionRead__tr_VehicleFallsBelowMaxCruiseSpeed_mutex); + auto _obj__trid_14_ptr = _OpCache_tr_VehicleFallsBelowMaxCruiseSpeed.find(read__tr_VehicleFallsBelowMaxCruiseSpeed_state); + if(_obj__trid_14_ptr == _OpCache_tr_VehicleFallsBelowMaxCruiseSpeed.end()) { + _trid_14 = state._tr_VehicleFallsBelowMaxCruiseSpeed(); _OpCache_tr_VehicleFallsBelowMaxCruiseSpeed.insert({read__tr_VehicleFallsBelowMaxCruiseSpeed_state, _trid_14}); + } else { + _trid_14 = _obj__trid_14_ptr->second; } - } else { - _trid_14 = _obj__trid_14_ptr->second; } if(_trid_14) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed readState = state._projected_state_for_VehicleFallsBelowMaxCruiseSpeed(); - - auto _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed_ptr = _OpCache_VehicleFallsBelowMaxCruiseSpeed.find(_trid_14); - if(_OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed_ptr == _OpCache_VehicleFallsBelowMaxCruiseSpeed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleFallsBelowMaxCruiseSpeed_lock(_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_VehicleFallsBelowMaxCruiseSpeed_lock(_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed_mutex); + auto _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed_ptr = _OpCache_VehicleFallsBelowMaxCruiseSpeed.find(_trid_14); + if(_OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed_ptr == _OpCache_VehicleFallsBelowMaxCruiseSpeed.end()) { copiedState.VehicleFallsBelowMaxCruiseSpeed(); Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleFallsBelowMaxCruiseSpeed writeState = copiedState._update_for_VehicleFallsBelowMaxCruiseSpeed(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleFallsBelowMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleFallsBelowMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed::HashEqual>(); _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed.insert({readState, writeState}); _OpCache_VehicleFallsBelowMaxCruiseSpeed.insert({_trid_14, _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleFallsBelowMaxCruiseSpeed_lock(_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleFallsBelowMaxCruiseSpeed, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleFallsBelowMaxCruiseSpeed::HashEqual> _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed = _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed_ptr->second; auto writeState_ptr = _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed.find(readState); if(writeState_ptr != _OpCache_with_parameter_VehicleFallsBelowMaxCruiseSpeed.end()) { @@ -9524,7 +9440,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "VehicleFallsBelowMaxCruiseSpeed"; result.insert(copiedState); { @@ -9534,33 +9449,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleDistanceBecomesVeryClose read__tr_ObstacleDistanceBecomesVeryClose_state = state._projected_state_for__tr_ObstacleDistanceBecomesVeryClose(); bool _trid_15 = false; - auto _obj__trid_15_ptr = _OpCache_tr_ObstacleDistanceBecomesVeryClose.find(read__tr_ObstacleDistanceBecomesVeryClose_state); - if(_obj__trid_15_ptr == _OpCache_tr_ObstacleDistanceBecomesVeryClose.end()) { - _trid_15 = state._tr_ObstacleDistanceBecomesVeryClose(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDistanceBecomesVeryClose_lock(_ProjectionRead__tr_ObstacleDistanceBecomesVeryClose_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDistanceBecomesVeryClose_lock(_ProjectionRead__tr_ObstacleDistanceBecomesVeryClose_mutex); + auto _obj__trid_15_ptr = _OpCache_tr_ObstacleDistanceBecomesVeryClose.find(read__tr_ObstacleDistanceBecomesVeryClose_state); + if(_obj__trid_15_ptr == _OpCache_tr_ObstacleDistanceBecomesVeryClose.end()) { + _trid_15 = state._tr_ObstacleDistanceBecomesVeryClose(); _OpCache_tr_ObstacleDistanceBecomesVeryClose.insert({read__tr_ObstacleDistanceBecomesVeryClose_state, _trid_15}); + } else { + _trid_15 = _obj__trid_15_ptr->second; } - } else { - _trid_15 = _obj__trid_15_ptr->second; } if(_trid_15) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose readState = state._projected_state_for_ObstacleDistanceBecomesVeryClose(); - - auto _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose_ptr = _OpCache_ObstacleDistanceBecomesVeryClose.find(_trid_15); - if(_OpCache_with_parameter_ObstacleDistanceBecomesVeryClose_ptr == _OpCache_ObstacleDistanceBecomesVeryClose.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesVeryClose_lock(_ProjectionRead_ObstacleDistanceBecomesVeryClose_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesVeryClose_lock(_ProjectionRead_ObstacleDistanceBecomesVeryClose_mutex); + auto _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose_ptr = _OpCache_ObstacleDistanceBecomesVeryClose.find(_trid_15); + if(_OpCache_with_parameter_ObstacleDistanceBecomesVeryClose_ptr == _OpCache_ObstacleDistanceBecomesVeryClose.end()) { copiedState.ObstacleDistanceBecomesVeryClose(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesVeryClose writeState = copiedState._update_for_ObstacleDistanceBecomesVeryClose(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesVeryClose, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose::HashEqual> _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesVeryClose, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose::HashEqual>(); _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose.insert({readState, writeState}); _OpCache_ObstacleDistanceBecomesVeryClose.insert({_trid_15, _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesVeryClose_lock(_ProjectionRead_ObstacleDistanceBecomesVeryClose_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesVeryClose, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesVeryClose::HashEqual> _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose = _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleDistanceBecomesVeryClose.end()) { @@ -9573,7 +9484,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleDistanceBecomesVeryClose"; result.insert(copiedState); { @@ -9583,33 +9493,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleDistanceBecomesClose read__tr_ObstacleDistanceBecomesClose_state = state._projected_state_for__tr_ObstacleDistanceBecomesClose(); bool _trid_16 = false; - auto _obj__trid_16_ptr = _OpCache_tr_ObstacleDistanceBecomesClose.find(read__tr_ObstacleDistanceBecomesClose_state); - if(_obj__trid_16_ptr == _OpCache_tr_ObstacleDistanceBecomesClose.end()) { - _trid_16 = state._tr_ObstacleDistanceBecomesClose(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDistanceBecomesClose_lock(_ProjectionRead__tr_ObstacleDistanceBecomesClose_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDistanceBecomesClose_lock(_ProjectionRead__tr_ObstacleDistanceBecomesClose_mutex); + auto _obj__trid_16_ptr = _OpCache_tr_ObstacleDistanceBecomesClose.find(read__tr_ObstacleDistanceBecomesClose_state); + if(_obj__trid_16_ptr == _OpCache_tr_ObstacleDistanceBecomesClose.end()) { + _trid_16 = state._tr_ObstacleDistanceBecomesClose(); _OpCache_tr_ObstacleDistanceBecomesClose.insert({read__tr_ObstacleDistanceBecomesClose_state, _trid_16}); + } else { + _trid_16 = _obj__trid_16_ptr->second; } - } else { - _trid_16 = _obj__trid_16_ptr->second; } if(_trid_16) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose readState = state._projected_state_for_ObstacleDistanceBecomesClose(); - - auto _OpCache_with_parameter_ObstacleDistanceBecomesClose_ptr = _OpCache_ObstacleDistanceBecomesClose.find(_trid_16); - if(_OpCache_with_parameter_ObstacleDistanceBecomesClose_ptr == _OpCache_ObstacleDistanceBecomesClose.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesClose_lock(_ProjectionRead_ObstacleDistanceBecomesClose_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesClose_lock(_ProjectionRead_ObstacleDistanceBecomesClose_mutex); + auto _OpCache_with_parameter_ObstacleDistanceBecomesClose_ptr = _OpCache_ObstacleDistanceBecomesClose.find(_trid_16); + if(_OpCache_with_parameter_ObstacleDistanceBecomesClose_ptr == _OpCache_ObstacleDistanceBecomesClose.end()) { copiedState.ObstacleDistanceBecomesClose(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesClose writeState = copiedState._update_for_ObstacleDistanceBecomesClose(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesClose, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose::HashEqual> _OpCache_with_parameter_ObstacleDistanceBecomesClose = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesClose, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose::HashEqual>(); _OpCache_with_parameter_ObstacleDistanceBecomesClose.insert({readState, writeState}); _OpCache_ObstacleDistanceBecomesClose.insert({_trid_16, _OpCache_with_parameter_ObstacleDistanceBecomesClose}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesClose_lock(_ProjectionRead_ObstacleDistanceBecomesClose_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesClose, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesClose::HashEqual> _OpCache_with_parameter_ObstacleDistanceBecomesClose = _OpCache_with_parameter_ObstacleDistanceBecomesClose_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleDistanceBecomesClose.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleDistanceBecomesClose.end()) { @@ -9622,7 +9528,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleDistanceBecomesClose"; result.insert(copiedState); { @@ -9632,33 +9537,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleDistanceBecomesBig read__tr_ObstacleDistanceBecomesBig_state = state._projected_state_for__tr_ObstacleDistanceBecomesBig(); bool _trid_17 = false; - auto _obj__trid_17_ptr = _OpCache_tr_ObstacleDistanceBecomesBig.find(read__tr_ObstacleDistanceBecomesBig_state); - if(_obj__trid_17_ptr == _OpCache_tr_ObstacleDistanceBecomesBig.end()) { - _trid_17 = state._tr_ObstacleDistanceBecomesBig(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDistanceBecomesBig_lock(_ProjectionRead__tr_ObstacleDistanceBecomesBig_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDistanceBecomesBig_lock(_ProjectionRead__tr_ObstacleDistanceBecomesBig_mutex); + auto _obj__trid_17_ptr = _OpCache_tr_ObstacleDistanceBecomesBig.find(read__tr_ObstacleDistanceBecomesBig_state); + if(_obj__trid_17_ptr == _OpCache_tr_ObstacleDistanceBecomesBig.end()) { + _trid_17 = state._tr_ObstacleDistanceBecomesBig(); _OpCache_tr_ObstacleDistanceBecomesBig.insert({read__tr_ObstacleDistanceBecomesBig_state, _trid_17}); + } else { + _trid_17 = _obj__trid_17_ptr->second; } - } else { - _trid_17 = _obj__trid_17_ptr->second; } if(_trid_17) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig readState = state._projected_state_for_ObstacleDistanceBecomesBig(); - - auto _OpCache_with_parameter_ObstacleDistanceBecomesBig_ptr = _OpCache_ObstacleDistanceBecomesBig.find(_trid_17); - if(_OpCache_with_parameter_ObstacleDistanceBecomesBig_ptr == _OpCache_ObstacleDistanceBecomesBig.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesBig_lock(_ProjectionRead_ObstacleDistanceBecomesBig_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesBig_lock(_ProjectionRead_ObstacleDistanceBecomesBig_mutex); + auto _OpCache_with_parameter_ObstacleDistanceBecomesBig_ptr = _OpCache_ObstacleDistanceBecomesBig.find(_trid_17); + if(_OpCache_with_parameter_ObstacleDistanceBecomesBig_ptr == _OpCache_ObstacleDistanceBecomesBig.end()) { copiedState.ObstacleDistanceBecomesBig(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesBig writeState = copiedState._update_for_ObstacleDistanceBecomesBig(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesBig, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig::HashEqual> _OpCache_with_parameter_ObstacleDistanceBecomesBig = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesBig, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig::HashEqual>(); _OpCache_with_parameter_ObstacleDistanceBecomesBig.insert({readState, writeState}); _OpCache_ObstacleDistanceBecomesBig.insert({_trid_17, _OpCache_with_parameter_ObstacleDistanceBecomesBig}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDistanceBecomesBig_lock(_ProjectionRead_ObstacleDistanceBecomesBig_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDistanceBecomesBig, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDistanceBecomesBig::HashEqual> _OpCache_with_parameter_ObstacleDistanceBecomesBig = _OpCache_with_parameter_ObstacleDistanceBecomesBig_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleDistanceBecomesBig.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleDistanceBecomesBig.end()) { @@ -9671,7 +9572,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleDistanceBecomesBig"; result.insert(copiedState); { @@ -9681,33 +9581,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleStartsTravelFaster read__tr_ObstacleStartsTravelFaster_state = state._projected_state_for__tr_ObstacleStartsTravelFaster(); bool _trid_18 = false; - auto _obj__trid_18_ptr = _OpCache_tr_ObstacleStartsTravelFaster.find(read__tr_ObstacleStartsTravelFaster_state); - if(_obj__trid_18_ptr == _OpCache_tr_ObstacleStartsTravelFaster.end()) { - _trid_18 = state._tr_ObstacleStartsTravelFaster(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStartsTravelFaster_lock(_ProjectionRead__tr_ObstacleStartsTravelFaster_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStartsTravelFaster_lock(_ProjectionRead__tr_ObstacleStartsTravelFaster_mutex); + auto _obj__trid_18_ptr = _OpCache_tr_ObstacleStartsTravelFaster.find(read__tr_ObstacleStartsTravelFaster_state); + if(_obj__trid_18_ptr == _OpCache_tr_ObstacleStartsTravelFaster.end()) { + _trid_18 = state._tr_ObstacleStartsTravelFaster(); _OpCache_tr_ObstacleStartsTravelFaster.insert({read__tr_ObstacleStartsTravelFaster_state, _trid_18}); + } else { + _trid_18 = _obj__trid_18_ptr->second; } - } else { - _trid_18 = _obj__trid_18_ptr->second; } if(_trid_18) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster readState = state._projected_state_for_ObstacleStartsTravelFaster(); - - auto _OpCache_with_parameter_ObstacleStartsTravelFaster_ptr = _OpCache_ObstacleStartsTravelFaster.find(_trid_18); - if(_OpCache_with_parameter_ObstacleStartsTravelFaster_ptr == _OpCache_ObstacleStartsTravelFaster.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStartsTravelFaster_lock(_ProjectionRead_ObstacleStartsTravelFaster_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleStartsTravelFaster_lock(_ProjectionRead_ObstacleStartsTravelFaster_mutex); + auto _OpCache_with_parameter_ObstacleStartsTravelFaster_ptr = _OpCache_ObstacleStartsTravelFaster.find(_trid_18); + if(_OpCache_with_parameter_ObstacleStartsTravelFaster_ptr == _OpCache_ObstacleStartsTravelFaster.end()) { copiedState.ObstacleStartsTravelFaster(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelFaster writeState = copiedState._update_for_ObstacleStartsTravelFaster(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster::HashEqual> _OpCache_with_parameter_ObstacleStartsTravelFaster = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster::HashEqual>(); _OpCache_with_parameter_ObstacleStartsTravelFaster.insert({readState, writeState}); _OpCache_ObstacleStartsTravelFaster.insert({_trid_18, _OpCache_with_parameter_ObstacleStartsTravelFaster}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStartsTravelFaster_lock(_ProjectionRead_ObstacleStartsTravelFaster_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelFaster::HashEqual> _OpCache_with_parameter_ObstacleStartsTravelFaster = _OpCache_with_parameter_ObstacleStartsTravelFaster_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleStartsTravelFaster.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleStartsTravelFaster.end()) { @@ -9720,7 +9616,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleStartsTravelFaster"; result.insert(copiedState); { @@ -9730,33 +9625,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleStopsTravelFaster read__tr_ObstacleStopsTravelFaster_state = state._projected_state_for__tr_ObstacleStopsTravelFaster(); bool _trid_19 = false; - auto _obj__trid_19_ptr = _OpCache_tr_ObstacleStopsTravelFaster.find(read__tr_ObstacleStopsTravelFaster_state); - if(_obj__trid_19_ptr == _OpCache_tr_ObstacleStopsTravelFaster.end()) { - _trid_19 = state._tr_ObstacleStopsTravelFaster(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStopsTravelFaster_lock(_ProjectionRead__tr_ObstacleStopsTravelFaster_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStopsTravelFaster_lock(_ProjectionRead__tr_ObstacleStopsTravelFaster_mutex); + auto _obj__trid_19_ptr = _OpCache_tr_ObstacleStopsTravelFaster.find(read__tr_ObstacleStopsTravelFaster_state); + if(_obj__trid_19_ptr == _OpCache_tr_ObstacleStopsTravelFaster.end()) { + _trid_19 = state._tr_ObstacleStopsTravelFaster(); _OpCache_tr_ObstacleStopsTravelFaster.insert({read__tr_ObstacleStopsTravelFaster_state, _trid_19}); + } else { + _trid_19 = _obj__trid_19_ptr->second; } - } else { - _trid_19 = _obj__trid_19_ptr->second; } if(_trid_19) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster readState = state._projected_state_for_ObstacleStopsTravelFaster(); - - auto _OpCache_with_parameter_ObstacleStopsTravelFaster_ptr = _OpCache_ObstacleStopsTravelFaster.find(_trid_19); - if(_OpCache_with_parameter_ObstacleStopsTravelFaster_ptr == _OpCache_ObstacleStopsTravelFaster.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStopsTravelFaster_lock(_ProjectionRead_ObstacleStopsTravelFaster_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleStopsTravelFaster_lock(_ProjectionRead_ObstacleStopsTravelFaster_mutex); + auto _OpCache_with_parameter_ObstacleStopsTravelFaster_ptr = _OpCache_ObstacleStopsTravelFaster.find(_trid_19); + if(_OpCache_with_parameter_ObstacleStopsTravelFaster_ptr == _OpCache_ObstacleStopsTravelFaster.end()) { copiedState.ObstacleStopsTravelFaster(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelFaster writeState = copiedState._update_for_ObstacleStopsTravelFaster(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster::HashEqual> _OpCache_with_parameter_ObstacleStopsTravelFaster = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster::HashEqual>(); _OpCache_with_parameter_ObstacleStopsTravelFaster.insert({readState, writeState}); _OpCache_ObstacleStopsTravelFaster.insert({_trid_19, _OpCache_with_parameter_ObstacleStopsTravelFaster}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStopsTravelFaster_lock(_ProjectionRead_ObstacleStopsTravelFaster_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelFaster, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelFaster::HashEqual> _OpCache_with_parameter_ObstacleStopsTravelFaster = _OpCache_with_parameter_ObstacleStopsTravelFaster_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleStopsTravelFaster.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleStopsTravelFaster.end()) { @@ -9769,7 +9660,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleStopsTravelFaster"; result.insert(copiedState); { @@ -9779,33 +9669,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleStartsTravelSlower read__tr_ObstacleStartsTravelSlower_state = state._projected_state_for__tr_ObstacleStartsTravelSlower(); bool _trid_20 = false; - auto _obj__trid_20_ptr = _OpCache_tr_ObstacleStartsTravelSlower.find(read__tr_ObstacleStartsTravelSlower_state); - if(_obj__trid_20_ptr == _OpCache_tr_ObstacleStartsTravelSlower.end()) { - _trid_20 = state._tr_ObstacleStartsTravelSlower(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStartsTravelSlower_lock(_ProjectionRead__tr_ObstacleStartsTravelSlower_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStartsTravelSlower_lock(_ProjectionRead__tr_ObstacleStartsTravelSlower_mutex); + auto _obj__trid_20_ptr = _OpCache_tr_ObstacleStartsTravelSlower.find(read__tr_ObstacleStartsTravelSlower_state); + if(_obj__trid_20_ptr == _OpCache_tr_ObstacleStartsTravelSlower.end()) { + _trid_20 = state._tr_ObstacleStartsTravelSlower(); _OpCache_tr_ObstacleStartsTravelSlower.insert({read__tr_ObstacleStartsTravelSlower_state, _trid_20}); + } else { + _trid_20 = _obj__trid_20_ptr->second; } - } else { - _trid_20 = _obj__trid_20_ptr->second; } if(_trid_20) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower readState = state._projected_state_for_ObstacleStartsTravelSlower(); - - auto _OpCache_with_parameter_ObstacleStartsTravelSlower_ptr = _OpCache_ObstacleStartsTravelSlower.find(_trid_20); - if(_OpCache_with_parameter_ObstacleStartsTravelSlower_ptr == _OpCache_ObstacleStartsTravelSlower.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStartsTravelSlower_lock(_ProjectionRead_ObstacleStartsTravelSlower_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleStartsTravelSlower_lock(_ProjectionRead_ObstacleStartsTravelSlower_mutex); + auto _OpCache_with_parameter_ObstacleStartsTravelSlower_ptr = _OpCache_ObstacleStartsTravelSlower.find(_trid_20); + if(_OpCache_with_parameter_ObstacleStartsTravelSlower_ptr == _OpCache_ObstacleStartsTravelSlower.end()) { copiedState.ObstacleStartsTravelSlower(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelSlower writeState = copiedState._update_for_ObstacleStartsTravelSlower(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower::HashEqual> _OpCache_with_parameter_ObstacleStartsTravelSlower = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower::HashEqual>(); _OpCache_with_parameter_ObstacleStartsTravelSlower.insert({readState, writeState}); _OpCache_ObstacleStartsTravelSlower.insert({_trid_20, _OpCache_with_parameter_ObstacleStartsTravelSlower}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStartsTravelSlower_lock(_ProjectionRead_ObstacleStartsTravelSlower_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStartsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStartsTravelSlower::HashEqual> _OpCache_with_parameter_ObstacleStartsTravelSlower = _OpCache_with_parameter_ObstacleStartsTravelSlower_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleStartsTravelSlower.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleStartsTravelSlower.end()) { @@ -9818,7 +9704,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleStartsTravelSlower"; result.insert(copiedState); { @@ -9828,33 +9713,29 @@ class ModelChecker { } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleStopsTravelSlower read__tr_ObstacleStopsTravelSlower_state = state._projected_state_for__tr_ObstacleStopsTravelSlower(); bool _trid_21 = false; - auto _obj__trid_21_ptr = _OpCache_tr_ObstacleStopsTravelSlower.find(read__tr_ObstacleStopsTravelSlower_state); - if(_obj__trid_21_ptr == _OpCache_tr_ObstacleStopsTravelSlower.end()) { - _trid_21 = state._tr_ObstacleStopsTravelSlower(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStopsTravelSlower_lock(_ProjectionRead__tr_ObstacleStopsTravelSlower_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleStopsTravelSlower_lock(_ProjectionRead__tr_ObstacleStopsTravelSlower_mutex); + auto _obj__trid_21_ptr = _OpCache_tr_ObstacleStopsTravelSlower.find(read__tr_ObstacleStopsTravelSlower_state); + if(_obj__trid_21_ptr == _OpCache_tr_ObstacleStopsTravelSlower.end()) { + _trid_21 = state._tr_ObstacleStopsTravelSlower(); _OpCache_tr_ObstacleStopsTravelSlower.insert({read__tr_ObstacleStopsTravelSlower_state, _trid_21}); + } else { + _trid_21 = _obj__trid_21_ptr->second; } - } else { - _trid_21 = _obj__trid_21_ptr->second; } if(_trid_21) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower readState = state._projected_state_for_ObstacleStopsTravelSlower(); - - auto _OpCache_with_parameter_ObstacleStopsTravelSlower_ptr = _OpCache_ObstacleStopsTravelSlower.find(_trid_21); - if(_OpCache_with_parameter_ObstacleStopsTravelSlower_ptr == _OpCache_ObstacleStopsTravelSlower.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStopsTravelSlower_lock(_ProjectionRead_ObstacleStopsTravelSlower_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleStopsTravelSlower_lock(_ProjectionRead_ObstacleStopsTravelSlower_mutex); + auto _OpCache_with_parameter_ObstacleStopsTravelSlower_ptr = _OpCache_ObstacleStopsTravelSlower.find(_trid_21); + if(_OpCache_with_parameter_ObstacleStopsTravelSlower_ptr == _OpCache_ObstacleStopsTravelSlower.end()) { copiedState.ObstacleStopsTravelSlower(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelSlower writeState = copiedState._update_for_ObstacleStopsTravelSlower(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower::HashEqual> _OpCache_with_parameter_ObstacleStopsTravelSlower = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower::HashEqual>(); _OpCache_with_parameter_ObstacleStopsTravelSlower.insert({readState, writeState}); _OpCache_ObstacleStopsTravelSlower.insert({_trid_21, _OpCache_with_parameter_ObstacleStopsTravelSlower}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleStopsTravelSlower_lock(_ProjectionRead_ObstacleStopsTravelSlower_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleStopsTravelSlower, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleStopsTravelSlower::HashEqual> _OpCache_with_parameter_ObstacleStopsTravelSlower = _OpCache_with_parameter_ObstacleStopsTravelSlower_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleStopsTravelSlower.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleStopsTravelSlower.end()) { @@ -9867,7 +9748,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleStopsTravelSlower"; result.insert(copiedState); { @@ -9876,214 +9756,190 @@ class ModelChecker { } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleAppearsWhenCruiseActive read__tr_ObstacleAppearsWhenCruiseActive_state = state._projected_state_for__tr_ObstacleAppearsWhenCruiseActive(); - auto _trid_22_ptr = _OpCache_tr_ObstacleAppearsWhenCruiseActive.find(read__tr_ObstacleAppearsWhenCruiseActive_state); - if(_trid_22_ptr == _OpCache_tr_ObstacleAppearsWhenCruiseActive.end()) { - BSet<BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >> _trid_22 = state._tr_ObstacleAppearsWhenCruiseActive(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleAppearsWhenCruiseActive_lock(_ProjectionRead__tr_ObstacleAppearsWhenCruiseActive_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleAppearsWhenCruiseActive_lock(_ProjectionRead__tr_ObstacleAppearsWhenCruiseActive_mutex); + auto _trid_22_ptr = _OpCache_tr_ObstacleAppearsWhenCruiseActive.find(read__tr_ObstacleAppearsWhenCruiseActive_state); + if(_trid_22_ptr == _OpCache_tr_ObstacleAppearsWhenCruiseActive.end()) { + BSet<BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >> _trid_22 = state._tr_ObstacleAppearsWhenCruiseActive(); _OpCache_tr_ObstacleAppearsWhenCruiseActive.insert({read__tr_ObstacleAppearsWhenCruiseActive_state, _trid_22}); - } - for(const BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >& param : _trid_22) { - Cruise_finite1_deterministic_MC::ODset _tmp_1 = param.projection2(); - Cruise_finite1_deterministic_MC::RSset _tmp_2 = param.projection1(); + for(const BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >& param : _trid_22) { + Cruise_finite1_deterministic_MC::ODset _tmp_1 = param.projection2(); + Cruise_finite1_deterministic_MC::RSset _tmp_2 = param.projection1(); - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive readState = state._projected_state_for_ObstacleAppearsWhenCruiseActive(); - - auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr = _OpCache_ObstacleAppearsWhenCruiseActive.find(param); - if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr == _OpCache_ObstacleAppearsWhenCruiseActive.end()) { + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive readState = state._projected_state_for_ObstacleAppearsWhenCruiseActive(); { std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseActive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseActive_mutex); - copiedState.ObstacleAppearsWhenCruiseActive(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseActive(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual>(); - _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.insert({readState, writeState}); - _OpCache_ObstacleAppearsWhenCruiseActive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseActive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseActive_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.find(readState); - if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = writeState_ptr->second; - copiedState._apply_update_for_ObstacleAppearsWhenCruiseActive(writeState); - } else { + auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr = _OpCache_ObstacleAppearsWhenCruiseActive.find(param); + if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr == _OpCache_ObstacleAppearsWhenCruiseActive.end()) { copiedState.ObstacleAppearsWhenCruiseActive(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseActive(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual>(); _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.insert({readState, writeState}); + _OpCache_ObstacleAppearsWhenCruiseActive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.find(readState); + if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = writeState_ptr->second; + copiedState._apply_update_for_ObstacleAppearsWhenCruiseActive(writeState); + } else { + copiedState.ObstacleAppearsWhenCruiseActive(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseActive(); + _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseActive"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >> _trid_22 = _trid_22_ptr->second; - for(const BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >& param : _trid_22) { - Cruise_finite1_deterministic_MC::ODset _tmp_1 = param.projection2(); - Cruise_finite1_deterministic_MC::RSset _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive readState = state._projected_state_for_ObstacleAppearsWhenCruiseActive(); - - auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr = _OpCache_ObstacleAppearsWhenCruiseActive.find(param); - if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr == _OpCache_ObstacleAppearsWhenCruiseActive.end()) { + copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseActive"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseActive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseActive_mutex); - copiedState.ObstacleAppearsWhenCruiseActive(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseActive(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual>(); - _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.insert({readState, writeState}); - _OpCache_ObstacleAppearsWhenCruiseActive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >> _trid_22 = _trid_22_ptr->second; + for(const BTuple<Cruise_finite1_deterministic_MC::RSset, Cruise_finite1_deterministic_MC::ODset >& param : _trid_22) { + Cruise_finite1_deterministic_MC::ODset _tmp_1 = param.projection2(); + Cruise_finite1_deterministic_MC::RSset _tmp_2 = param.projection1(); + + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive readState = state._projected_state_for_ObstacleAppearsWhenCruiseActive(); { std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseActive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseActive_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.find(readState); - if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = writeState_ptr->second; - copiedState._apply_update_for_ObstacleAppearsWhenCruiseActive(writeState); - } else { + auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr = _OpCache_ObstacleAppearsWhenCruiseActive.find(param); + if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr == _OpCache_ObstacleAppearsWhenCruiseActive.end()) { copiedState.ObstacleAppearsWhenCruiseActive(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseActive(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual>(); _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.insert({readState, writeState}); + _OpCache_ObstacleAppearsWhenCruiseActive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseActive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.find(readState); + if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = writeState_ptr->second; + copiedState._apply_update_for_ObstacleAppearsWhenCruiseActive(writeState); + } else { + copiedState.ObstacleAppearsWhenCruiseActive(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseActive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseActive(); + _OpCache_with_parameter_ObstacleAppearsWhenCruiseActive.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseActive"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseActive"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleAppearsWhenCruiseInactive read__tr_ObstacleAppearsWhenCruiseInactive_state = state._projected_state_for__tr_ObstacleAppearsWhenCruiseInactive(); - auto _trid_23_ptr = _OpCache_tr_ObstacleAppearsWhenCruiseInactive.find(read__tr_ObstacleAppearsWhenCruiseInactive_state); - if(_trid_23_ptr == _OpCache_tr_ObstacleAppearsWhenCruiseInactive.end()) { - BSet<Cruise_finite1_deterministic_MC::RSset> _trid_23 = state._tr_ObstacleAppearsWhenCruiseInactive(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleAppearsWhenCruiseInactive_lock(_ProjectionRead__tr_ObstacleAppearsWhenCruiseInactive_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleAppearsWhenCruiseInactive_lock(_ProjectionRead__tr_ObstacleAppearsWhenCruiseInactive_mutex); + auto _trid_23_ptr = _OpCache_tr_ObstacleAppearsWhenCruiseInactive.find(read__tr_ObstacleAppearsWhenCruiseInactive_state); + if(_trid_23_ptr == _OpCache_tr_ObstacleAppearsWhenCruiseInactive.end()) { + BSet<Cruise_finite1_deterministic_MC::RSset> _trid_23 = state._tr_ObstacleAppearsWhenCruiseInactive(); _OpCache_tr_ObstacleAppearsWhenCruiseInactive.insert({read__tr_ObstacleAppearsWhenCruiseInactive_state, _trid_23}); - } - for(const Cruise_finite1_deterministic_MC::RSset& param : _trid_23) { - Cruise_finite1_deterministic_MC::RSset _tmp_1 = param; - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive readState = state._projected_state_for_ObstacleAppearsWhenCruiseInactive(); + for(const Cruise_finite1_deterministic_MC::RSset& param : _trid_23) { + Cruise_finite1_deterministic_MC::RSset _tmp_1 = param; - auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr = _OpCache_ObstacleAppearsWhenCruiseInactive.find(param); - if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr == _OpCache_ObstacleAppearsWhenCruiseInactive.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseInactive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseInactive_mutex); - copiedState.ObstacleAppearsWhenCruiseInactive(_tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseInactive(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual>(); - _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.insert({readState, writeState}); - _OpCache_ObstacleAppearsWhenCruiseInactive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive}); - } - } else { + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive readState = state._projected_state_for_ObstacleAppearsWhenCruiseInactive(); { std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseInactive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseInactive_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.find(readState); - if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = writeState_ptr->second; - copiedState._apply_update_for_ObstacleAppearsWhenCruiseInactive(writeState); - } else { + auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr = _OpCache_ObstacleAppearsWhenCruiseInactive.find(param); + if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr == _OpCache_ObstacleAppearsWhenCruiseInactive.end()) { copiedState.ObstacleAppearsWhenCruiseInactive(_tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseInactive(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual>(); _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.insert({readState, writeState}); + _OpCache_ObstacleAppearsWhenCruiseInactive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.find(readState); + if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = writeState_ptr->second; + copiedState._apply_update_for_ObstacleAppearsWhenCruiseInactive(writeState); + } else { + copiedState.ObstacleAppearsWhenCruiseInactive(_tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseInactive(); + _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseInactive"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Cruise_finite1_deterministic_MC::RSset> _trid_23 = _trid_23_ptr->second; - for(const Cruise_finite1_deterministic_MC::RSset& param : _trid_23) { - Cruise_finite1_deterministic_MC::RSset _tmp_1 = param; - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive readState = state._projected_state_for_ObstacleAppearsWhenCruiseInactive(); - - auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr = _OpCache_ObstacleAppearsWhenCruiseInactive.find(param); - if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr == _OpCache_ObstacleAppearsWhenCruiseInactive.end()) { + copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseInactive"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseInactive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseInactive_mutex); - copiedState.ObstacleAppearsWhenCruiseInactive(_tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseInactive(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual>(); - _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.insert({readState, writeState}); - _OpCache_ObstacleAppearsWhenCruiseInactive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Cruise_finite1_deterministic_MC::RSset> _trid_23 = _trid_23_ptr->second; + for(const Cruise_finite1_deterministic_MC::RSset& param : _trid_23) { + Cruise_finite1_deterministic_MC::RSset _tmp_1 = param; + + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive readState = state._projected_state_for_ObstacleAppearsWhenCruiseInactive(); { std::unique_lock<std::mutex> _ProjectionRead_ObstacleAppearsWhenCruiseInactive_lock(_ProjectionRead_ObstacleAppearsWhenCruiseInactive_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.find(readState); - if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = writeState_ptr->second; - copiedState._apply_update_for_ObstacleAppearsWhenCruiseInactive(writeState); - } else { + auto _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr = _OpCache_ObstacleAppearsWhenCruiseInactive.find(param); + if(_OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr == _OpCache_ObstacleAppearsWhenCruiseInactive.end()) { copiedState.ObstacleAppearsWhenCruiseInactive(_tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseInactive(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual>(); _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.insert({readState, writeState}); + _OpCache_ObstacleAppearsWhenCruiseInactive.insert({param, _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleAppearsWhenCruiseInactive::HashEqual> _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.find(readState); + if(writeState_ptr != _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = writeState_ptr->second; + copiedState._apply_update_for_ObstacleAppearsWhenCruiseInactive(writeState); + } else { + copiedState.ObstacleAppearsWhenCruiseInactive(_tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleAppearsWhenCruiseInactive writeState = copiedState._update_for_ObstacleAppearsWhenCruiseInactive(); + _OpCache_with_parameter_ObstacleAppearsWhenCruiseInactive.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseInactive"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "ObstacleAppearsWhenCruiseInactive"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleDisappears read__tr_ObstacleDisappears_state = state._projected_state_for__tr_ObstacleDisappears(); bool _trid_24 = false; - auto _obj__trid_24_ptr = _OpCache_tr_ObstacleDisappears.find(read__tr_ObstacleDisappears_state); - if(_obj__trid_24_ptr == _OpCache_tr_ObstacleDisappears.end()) { - _trid_24 = state._tr_ObstacleDisappears(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDisappears_lock(_ProjectionRead__tr_ObstacleDisappears_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleDisappears_lock(_ProjectionRead__tr_ObstacleDisappears_mutex); + auto _obj__trid_24_ptr = _OpCache_tr_ObstacleDisappears.find(read__tr_ObstacleDisappears_state); + if(_obj__trid_24_ptr == _OpCache_tr_ObstacleDisappears.end()) { + _trid_24 = state._tr_ObstacleDisappears(); _OpCache_tr_ObstacleDisappears.insert({read__tr_ObstacleDisappears_state, _trid_24}); + } else { + _trid_24 = _obj__trid_24_ptr->second; } - } else { - _trid_24 = _obj__trid_24_ptr->second; } if(_trid_24) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears readState = state._projected_state_for_ObstacleDisappears(); - - auto _OpCache_with_parameter_ObstacleDisappears_ptr = _OpCache_ObstacleDisappears.find(_trid_24); - if(_OpCache_with_parameter_ObstacleDisappears_ptr == _OpCache_ObstacleDisappears.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDisappears_lock(_ProjectionRead_ObstacleDisappears_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleDisappears_lock(_ProjectionRead_ObstacleDisappears_mutex); + auto _OpCache_with_parameter_ObstacleDisappears_ptr = _OpCache_ObstacleDisappears.find(_trid_24); + if(_OpCache_with_parameter_ObstacleDisappears_ptr == _OpCache_ObstacleDisappears.end()) { copiedState.ObstacleDisappears(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDisappears writeState = copiedState._update_for_ObstacleDisappears(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDisappears, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears::HashEqual> _OpCache_with_parameter_ObstacleDisappears = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDisappears, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears::HashEqual>(); _OpCache_with_parameter_ObstacleDisappears.insert({readState, writeState}); _OpCache_ObstacleDisappears.insert({_trid_24, _OpCache_with_parameter_ObstacleDisappears}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleDisappears_lock(_ProjectionRead_ObstacleDisappears_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleDisappears, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleDisappears::HashEqual> _OpCache_with_parameter_ObstacleDisappears = _OpCache_with_parameter_ObstacleDisappears_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleDisappears.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleDisappears.end()) { @@ -10096,7 +9952,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleDisappears"; result.insert(copiedState); { @@ -10105,125 +9960,111 @@ class ModelChecker { } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_VehicleManageObstacle read__tr_VehicleManageObstacle_state = state._projected_state_for__tr_VehicleManageObstacle(); - auto _trid_25_ptr = _OpCache_tr_VehicleManageObstacle.find(read__tr_VehicleManageObstacle_state); - if(_trid_25_ptr == _OpCache_tr_VehicleManageObstacle.end()) { - BSet<BTuple<BBoolean, BBoolean >> _trid_25 = state._tr_VehicleManageObstacle(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleManageObstacle_lock(_ProjectionRead__tr_VehicleManageObstacle_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_VehicleManageObstacle_lock(_ProjectionRead__tr_VehicleManageObstacle_mutex); + auto _trid_25_ptr = _OpCache_tr_VehicleManageObstacle.find(read__tr_VehicleManageObstacle_state); + if(_trid_25_ptr == _OpCache_tr_VehicleManageObstacle.end()) { + BSet<BTuple<BBoolean, BBoolean >> _trid_25 = state._tr_VehicleManageObstacle(); _OpCache_tr_VehicleManageObstacle.insert({read__tr_VehicleManageObstacle_state, _trid_25}); - } - for(const BTuple<BBoolean, BBoolean >& param : _trid_25) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle readState = state._projected_state_for_VehicleManageObstacle(); + for(const BTuple<BBoolean, BBoolean >& param : _trid_25) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_VehicleManageObstacle_ptr = _OpCache_VehicleManageObstacle.find(param); - if(_OpCache_with_parameter_VehicleManageObstacle_ptr == _OpCache_VehicleManageObstacle.end()) { + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle readState = state._projected_state_for_VehicleManageObstacle(); { std::unique_lock<std::mutex> _ProjectionRead_VehicleManageObstacle_lock(_ProjectionRead_VehicleManageObstacle_mutex); - copiedState.VehicleManageObstacle(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = copiedState._update_for_VehicleManageObstacle(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual>(); - _OpCache_with_parameter_VehicleManageObstacle.insert({readState, writeState}); - _OpCache_VehicleManageObstacle.insert({param, _OpCache_with_parameter_VehicleManageObstacle}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_VehicleManageObstacle_lock(_ProjectionRead_VehicleManageObstacle_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = _OpCache_with_parameter_VehicleManageObstacle_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_VehicleManageObstacle.find(readState); - if(writeState_ptr != _OpCache_with_parameter_VehicleManageObstacle.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = writeState_ptr->second; - copiedState._apply_update_for_VehicleManageObstacle(writeState); - } else { + auto _OpCache_with_parameter_VehicleManageObstacle_ptr = _OpCache_VehicleManageObstacle.find(param); + if(_OpCache_with_parameter_VehicleManageObstacle_ptr == _OpCache_VehicleManageObstacle.end()) { copiedState.VehicleManageObstacle(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = copiedState._update_for_VehicleManageObstacle(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual>(); _OpCache_with_parameter_VehicleManageObstacle.insert({readState, writeState}); + _OpCache_VehicleManageObstacle.insert({param, _OpCache_with_parameter_VehicleManageObstacle}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = _OpCache_with_parameter_VehicleManageObstacle_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_VehicleManageObstacle.find(readState); + if(writeState_ptr != _OpCache_with_parameter_VehicleManageObstacle.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = writeState_ptr->second; + copiedState._apply_update_for_VehicleManageObstacle(writeState); + } else { + copiedState.VehicleManageObstacle(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = copiedState._update_for_VehicleManageObstacle(); + _OpCache_with_parameter_VehicleManageObstacle.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "VehicleManageObstacle"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BBoolean, BBoolean >> _trid_25 = _trid_25_ptr->second; - for(const BTuple<BBoolean, BBoolean >& param : _trid_25) { - BBoolean _tmp_1 = param.projection2(); - BBoolean _tmp_2 = param.projection1(); - - Cruise_finite1_deterministic_MC copiedState = state._copy(); - Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle readState = state._projected_state_for_VehicleManageObstacle(); - - auto _OpCache_with_parameter_VehicleManageObstacle_ptr = _OpCache_VehicleManageObstacle.find(param); - if(_OpCache_with_parameter_VehicleManageObstacle_ptr == _OpCache_VehicleManageObstacle.end()) { + copiedState.stateAccessedVia = "VehicleManageObstacle"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_VehicleManageObstacle_lock(_ProjectionRead_VehicleManageObstacle_mutex); - copiedState.VehicleManageObstacle(_tmp_2, _tmp_1); - Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = copiedState._update_for_VehicleManageObstacle(); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual>(); - _OpCache_with_parameter_VehicleManageObstacle.insert({readState, writeState}); - _OpCache_VehicleManageObstacle.insert({param, _OpCache_with_parameter_VehicleManageObstacle}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BBoolean, BBoolean >> _trid_25 = _trid_25_ptr->second; + for(const BTuple<BBoolean, BBoolean >& param : _trid_25) { + BBoolean _tmp_1 = param.projection2(); + BBoolean _tmp_2 = param.projection1(); + + Cruise_finite1_deterministic_MC copiedState = state._copy(); + Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle readState = state._projected_state_for_VehicleManageObstacle(); { std::unique_lock<std::mutex> _ProjectionRead_VehicleManageObstacle_lock(_ProjectionRead_VehicleManageObstacle_mutex); - std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = _OpCache_with_parameter_VehicleManageObstacle_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_VehicleManageObstacle.find(readState); - if(writeState_ptr != _OpCache_with_parameter_VehicleManageObstacle.end()) { - Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = writeState_ptr->second; - copiedState._apply_update_for_VehicleManageObstacle(writeState); - } else { + auto _OpCache_with_parameter_VehicleManageObstacle_ptr = _OpCache_VehicleManageObstacle.find(param); + if(_OpCache_with_parameter_VehicleManageObstacle_ptr == _OpCache_VehicleManageObstacle.end()) { copiedState.VehicleManageObstacle(_tmp_2, _tmp_1); Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = copiedState._update_for_VehicleManageObstacle(); + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual>(); _OpCache_with_parameter_VehicleManageObstacle.insert({readState, writeState}); + _OpCache_VehicleManageObstacle.insert({param, _OpCache_with_parameter_VehicleManageObstacle}); + } else { + std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_VehicleManageObstacle::HashEqual> _OpCache_with_parameter_VehicleManageObstacle = _OpCache_with_parameter_VehicleManageObstacle_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_VehicleManageObstacle.find(readState); + if(writeState_ptr != _OpCache_with_parameter_VehicleManageObstacle.end()) { + Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = writeState_ptr->second; + copiedState._apply_update_for_VehicleManageObstacle(writeState); + } else { + copiedState.VehicleManageObstacle(_tmp_2, _tmp_1); + Cruise_finite1_deterministic_MC::_ProjectionWrite_VehicleManageObstacle writeState = copiedState._update_for_VehicleManageObstacle(); + _OpCache_with_parameter_VehicleManageObstacle.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "VehicleManageObstacle"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "VehicleManageObstacle"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Cruise_finite1_deterministic_MC::_ProjectionRead__tr_ObstacleBecomesOld read__tr_ObstacleBecomesOld_state = state._projected_state_for__tr_ObstacleBecomesOld(); bool _trid_26 = false; - auto _obj__trid_26_ptr = _OpCache_tr_ObstacleBecomesOld.find(read__tr_ObstacleBecomesOld_state); - if(_obj__trid_26_ptr == _OpCache_tr_ObstacleBecomesOld.end()) { - _trid_26 = state._tr_ObstacleBecomesOld(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleBecomesOld_lock(_ProjectionRead__tr_ObstacleBecomesOld_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_ObstacleBecomesOld_lock(_ProjectionRead__tr_ObstacleBecomesOld_mutex); + auto _obj__trid_26_ptr = _OpCache_tr_ObstacleBecomesOld.find(read__tr_ObstacleBecomesOld_state); + if(_obj__trid_26_ptr == _OpCache_tr_ObstacleBecomesOld.end()) { + _trid_26 = state._tr_ObstacleBecomesOld(); _OpCache_tr_ObstacleBecomesOld.insert({read__tr_ObstacleBecomesOld_state, _trid_26}); + } else { + _trid_26 = _obj__trid_26_ptr->second; } - } else { - _trid_26 = _obj__trid_26_ptr->second; } if(_trid_26) { Cruise_finite1_deterministic_MC copiedState = state._copy(); Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld readState = state._projected_state_for_ObstacleBecomesOld(); - - auto _OpCache_with_parameter_ObstacleBecomesOld_ptr = _OpCache_ObstacleBecomesOld.find(_trid_26); - if(_OpCache_with_parameter_ObstacleBecomesOld_ptr == _OpCache_ObstacleBecomesOld.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleBecomesOld_lock(_ProjectionRead_ObstacleBecomesOld_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_ObstacleBecomesOld_lock(_ProjectionRead_ObstacleBecomesOld_mutex); + auto _OpCache_with_parameter_ObstacleBecomesOld_ptr = _OpCache_ObstacleBecomesOld.find(_trid_26); + if(_OpCache_with_parameter_ObstacleBecomesOld_ptr == _OpCache_ObstacleBecomesOld.end()) { copiedState.ObstacleBecomesOld(); Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleBecomesOld writeState = copiedState._update_for_ObstacleBecomesOld(); std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleBecomesOld, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld::HashEqual> _OpCache_with_parameter_ObstacleBecomesOld = std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleBecomesOld, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld::HashEqual>(); _OpCache_with_parameter_ObstacleBecomesOld.insert({readState, writeState}); _OpCache_ObstacleBecomesOld.insert({_trid_26, _OpCache_with_parameter_ObstacleBecomesOld}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_ObstacleBecomesOld_lock(_ProjectionRead_ObstacleBecomesOld_mutex); + } else { std::unordered_map<Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld, Cruise_finite1_deterministic_MC::_ProjectionWrite_ObstacleBecomesOld, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld::Hash, Cruise_finite1_deterministic_MC::_ProjectionRead_ObstacleBecomesOld::HashEqual> _OpCache_with_parameter_ObstacleBecomesOld = _OpCache_with_parameter_ObstacleBecomesOld_ptr->second; auto writeState_ptr = _OpCache_with_parameter_ObstacleBecomesOld.find(readState); if(writeState_ptr != _OpCache_with_parameter_ObstacleBecomesOld.end()) { @@ -10236,7 +10077,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "ObstacleBecomesOld"; result.insert(copiedState); { diff --git a/benchmarks/model_checking_opreuse/C++/LandingGear_R6.cpp b/benchmarks/model_checking_opreuse/C++/LandingGear_R6.cpp index df9229027..83b828a54 100644 --- a/benchmarks/model_checking_opreuse/C++/LandingGear_R6.cpp +++ b/benchmarks/model_checking_opreuse/C++/LandingGear_R6.cpp @@ -10585,33 +10585,29 @@ class ModelChecker { if(isCaching) { LandingGear_R6::_ProjectionRead__tr_begin_flying read__tr_begin_flying_state = state._projected_state_for__tr_begin_flying(); bool _trid_1 = false; - auto _obj__trid_1_ptr = _OpCache_tr_begin_flying.find(read__tr_begin_flying_state); - if(_obj__trid_1_ptr == _OpCache_tr_begin_flying.end()) { - _trid_1 = state._tr_begin_flying(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_begin_flying_lock(_ProjectionRead__tr_begin_flying_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_begin_flying_lock(_ProjectionRead__tr_begin_flying_mutex); + auto _obj__trid_1_ptr = _OpCache_tr_begin_flying.find(read__tr_begin_flying_state); + if(_obj__trid_1_ptr == _OpCache_tr_begin_flying.end()) { + _trid_1 = state._tr_begin_flying(); _OpCache_tr_begin_flying.insert({read__tr_begin_flying_state, _trid_1}); + } else { + _trid_1 = _obj__trid_1_ptr->second; } - } else { - _trid_1 = _obj__trid_1_ptr->second; } if(_trid_1) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_begin_flying readState = state._projected_state_for_begin_flying(); - - auto _OpCache_with_parameter_begin_flying_ptr = _OpCache_begin_flying.find(_trid_1); - if(_OpCache_with_parameter_begin_flying_ptr == _OpCache_begin_flying.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_begin_flying_lock(_ProjectionRead_begin_flying_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_begin_flying_lock(_ProjectionRead_begin_flying_mutex); + auto _OpCache_with_parameter_begin_flying_ptr = _OpCache_begin_flying.find(_trid_1); + if(_OpCache_with_parameter_begin_flying_ptr == _OpCache_begin_flying.end()) { copiedState.begin_flying(); LandingGear_R6::_ProjectionWrite_begin_flying writeState = copiedState._update_for_begin_flying(); std::unordered_map<LandingGear_R6::_ProjectionRead_begin_flying, LandingGear_R6::_ProjectionWrite_begin_flying, LandingGear_R6::_ProjectionRead_begin_flying::Hash, LandingGear_R6::_ProjectionRead_begin_flying::HashEqual> _OpCache_with_parameter_begin_flying = std::unordered_map<LandingGear_R6::_ProjectionRead_begin_flying, LandingGear_R6::_ProjectionWrite_begin_flying, LandingGear_R6::_ProjectionRead_begin_flying::Hash, LandingGear_R6::_ProjectionRead_begin_flying::HashEqual>(); _OpCache_with_parameter_begin_flying.insert({readState, writeState}); _OpCache_begin_flying.insert({_trid_1, _OpCache_with_parameter_begin_flying}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_begin_flying_lock(_ProjectionRead_begin_flying_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_begin_flying, LandingGear_R6::_ProjectionWrite_begin_flying, LandingGear_R6::_ProjectionRead_begin_flying::Hash, LandingGear_R6::_ProjectionRead_begin_flying::HashEqual> _OpCache_with_parameter_begin_flying = _OpCache_with_parameter_begin_flying_ptr->second; auto writeState_ptr = _OpCache_with_parameter_begin_flying.find(readState); if(writeState_ptr != _OpCache_with_parameter_begin_flying.end()) { @@ -10624,7 +10620,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "begin_flying"; result.insert(copiedState); { @@ -10634,33 +10629,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_land_plane read__tr_land_plane_state = state._projected_state_for__tr_land_plane(); bool _trid_2 = false; - auto _obj__trid_2_ptr = _OpCache_tr_land_plane.find(read__tr_land_plane_state); - if(_obj__trid_2_ptr == _OpCache_tr_land_plane.end()) { - _trid_2 = state._tr_land_plane(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_land_plane_lock(_ProjectionRead__tr_land_plane_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_land_plane_lock(_ProjectionRead__tr_land_plane_mutex); + auto _obj__trid_2_ptr = _OpCache_tr_land_plane.find(read__tr_land_plane_state); + if(_obj__trid_2_ptr == _OpCache_tr_land_plane.end()) { + _trid_2 = state._tr_land_plane(); _OpCache_tr_land_plane.insert({read__tr_land_plane_state, _trid_2}); + } else { + _trid_2 = _obj__trid_2_ptr->second; } - } else { - _trid_2 = _obj__trid_2_ptr->second; } if(_trid_2) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_land_plane readState = state._projected_state_for_land_plane(); - - auto _OpCache_with_parameter_land_plane_ptr = _OpCache_land_plane.find(_trid_2); - if(_OpCache_with_parameter_land_plane_ptr == _OpCache_land_plane.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_land_plane_lock(_ProjectionRead_land_plane_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_land_plane_lock(_ProjectionRead_land_plane_mutex); + auto _OpCache_with_parameter_land_plane_ptr = _OpCache_land_plane.find(_trid_2); + if(_OpCache_with_parameter_land_plane_ptr == _OpCache_land_plane.end()) { copiedState.land_plane(); LandingGear_R6::_ProjectionWrite_land_plane writeState = copiedState._update_for_land_plane(); std::unordered_map<LandingGear_R6::_ProjectionRead_land_plane, LandingGear_R6::_ProjectionWrite_land_plane, LandingGear_R6::_ProjectionRead_land_plane::Hash, LandingGear_R6::_ProjectionRead_land_plane::HashEqual> _OpCache_with_parameter_land_plane = std::unordered_map<LandingGear_R6::_ProjectionRead_land_plane, LandingGear_R6::_ProjectionWrite_land_plane, LandingGear_R6::_ProjectionRead_land_plane::Hash, LandingGear_R6::_ProjectionRead_land_plane::HashEqual>(); _OpCache_with_parameter_land_plane.insert({readState, writeState}); _OpCache_land_plane.insert({_trid_2, _OpCache_with_parameter_land_plane}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_land_plane_lock(_ProjectionRead_land_plane_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_land_plane, LandingGear_R6::_ProjectionWrite_land_plane, LandingGear_R6::_ProjectionRead_land_plane::Hash, LandingGear_R6::_ProjectionRead_land_plane::HashEqual> _OpCache_with_parameter_land_plane = _OpCache_with_parameter_land_plane_ptr->second; auto writeState_ptr = _OpCache_with_parameter_land_plane.find(readState); if(writeState_ptr != _OpCache_with_parameter_land_plane.end()) { @@ -10673,7 +10664,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "land_plane"; result.insert(copiedState); { @@ -10683,33 +10673,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_open_valve_door_open read__tr_open_valve_door_open_state = state._projected_state_for__tr_open_valve_door_open(); bool _trid_3 = false; - auto _obj__trid_3_ptr = _OpCache_tr_open_valve_door_open.find(read__tr_open_valve_door_open_state); - if(_obj__trid_3_ptr == _OpCache_tr_open_valve_door_open.end()) { - _trid_3 = state._tr_open_valve_door_open(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_door_open_lock(_ProjectionRead__tr_open_valve_door_open_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_door_open_lock(_ProjectionRead__tr_open_valve_door_open_mutex); + auto _obj__trid_3_ptr = _OpCache_tr_open_valve_door_open.find(read__tr_open_valve_door_open_state); + if(_obj__trid_3_ptr == _OpCache_tr_open_valve_door_open.end()) { + _trid_3 = state._tr_open_valve_door_open(); _OpCache_tr_open_valve_door_open.insert({read__tr_open_valve_door_open_state, _trid_3}); + } else { + _trid_3 = _obj__trid_3_ptr->second; } - } else { - _trid_3 = _obj__trid_3_ptr->second; } if(_trid_3) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_open_valve_door_open readState = state._projected_state_for_open_valve_door_open(); - - auto _OpCache_with_parameter_open_valve_door_open_ptr = _OpCache_open_valve_door_open.find(_trid_3); - if(_OpCache_with_parameter_open_valve_door_open_ptr == _OpCache_open_valve_door_open.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_door_open_lock(_ProjectionRead_open_valve_door_open_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_open_valve_door_open_lock(_ProjectionRead_open_valve_door_open_mutex); + auto _OpCache_with_parameter_open_valve_door_open_ptr = _OpCache_open_valve_door_open.find(_trid_3); + if(_OpCache_with_parameter_open_valve_door_open_ptr == _OpCache_open_valve_door_open.end()) { copiedState.open_valve_door_open(); LandingGear_R6::_ProjectionWrite_open_valve_door_open writeState = copiedState._update_for_open_valve_door_open(); std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_door_open, LandingGear_R6::_ProjectionWrite_open_valve_door_open, LandingGear_R6::_ProjectionRead_open_valve_door_open::Hash, LandingGear_R6::_ProjectionRead_open_valve_door_open::HashEqual> _OpCache_with_parameter_open_valve_door_open = std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_door_open, LandingGear_R6::_ProjectionWrite_open_valve_door_open, LandingGear_R6::_ProjectionRead_open_valve_door_open::Hash, LandingGear_R6::_ProjectionRead_open_valve_door_open::HashEqual>(); _OpCache_with_parameter_open_valve_door_open.insert({readState, writeState}); _OpCache_open_valve_door_open.insert({_trid_3, _OpCache_with_parameter_open_valve_door_open}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_door_open_lock(_ProjectionRead_open_valve_door_open_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_door_open, LandingGear_R6::_ProjectionWrite_open_valve_door_open, LandingGear_R6::_ProjectionRead_open_valve_door_open::Hash, LandingGear_R6::_ProjectionRead_open_valve_door_open::HashEqual> _OpCache_with_parameter_open_valve_door_open = _OpCache_with_parameter_open_valve_door_open_ptr->second; auto writeState_ptr = _OpCache_with_parameter_open_valve_door_open.find(readState); if(writeState_ptr != _OpCache_with_parameter_open_valve_door_open.end()) { @@ -10722,7 +10708,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "open_valve_door_open"; result.insert(copiedState); { @@ -10732,33 +10717,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_close_valve_door_open read__tr_close_valve_door_open_state = state._projected_state_for__tr_close_valve_door_open(); bool _trid_4 = false; - auto _obj__trid_4_ptr = _OpCache_tr_close_valve_door_open.find(read__tr_close_valve_door_open_state); - if(_obj__trid_4_ptr == _OpCache_tr_close_valve_door_open.end()) { - _trid_4 = state._tr_close_valve_door_open(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_door_open_lock(_ProjectionRead__tr_close_valve_door_open_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_door_open_lock(_ProjectionRead__tr_close_valve_door_open_mutex); + auto _obj__trid_4_ptr = _OpCache_tr_close_valve_door_open.find(read__tr_close_valve_door_open_state); + if(_obj__trid_4_ptr == _OpCache_tr_close_valve_door_open.end()) { + _trid_4 = state._tr_close_valve_door_open(); _OpCache_tr_close_valve_door_open.insert({read__tr_close_valve_door_open_state, _trid_4}); + } else { + _trid_4 = _obj__trid_4_ptr->second; } - } else { - _trid_4 = _obj__trid_4_ptr->second; } if(_trid_4) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_close_valve_door_open readState = state._projected_state_for_close_valve_door_open(); - - auto _OpCache_with_parameter_close_valve_door_open_ptr = _OpCache_close_valve_door_open.find(_trid_4); - if(_OpCache_with_parameter_close_valve_door_open_ptr == _OpCache_close_valve_door_open.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_door_open_lock(_ProjectionRead_close_valve_door_open_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_close_valve_door_open_lock(_ProjectionRead_close_valve_door_open_mutex); + auto _OpCache_with_parameter_close_valve_door_open_ptr = _OpCache_close_valve_door_open.find(_trid_4); + if(_OpCache_with_parameter_close_valve_door_open_ptr == _OpCache_close_valve_door_open.end()) { copiedState.close_valve_door_open(); LandingGear_R6::_ProjectionWrite_close_valve_door_open writeState = copiedState._update_for_close_valve_door_open(); std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_door_open, LandingGear_R6::_ProjectionWrite_close_valve_door_open, LandingGear_R6::_ProjectionRead_close_valve_door_open::Hash, LandingGear_R6::_ProjectionRead_close_valve_door_open::HashEqual> _OpCache_with_parameter_close_valve_door_open = std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_door_open, LandingGear_R6::_ProjectionWrite_close_valve_door_open, LandingGear_R6::_ProjectionRead_close_valve_door_open::Hash, LandingGear_R6::_ProjectionRead_close_valve_door_open::HashEqual>(); _OpCache_with_parameter_close_valve_door_open.insert({readState, writeState}); _OpCache_close_valve_door_open.insert({_trid_4, _OpCache_with_parameter_close_valve_door_open}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_door_open_lock(_ProjectionRead_close_valve_door_open_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_door_open, LandingGear_R6::_ProjectionWrite_close_valve_door_open, LandingGear_R6::_ProjectionRead_close_valve_door_open::Hash, LandingGear_R6::_ProjectionRead_close_valve_door_open::HashEqual> _OpCache_with_parameter_close_valve_door_open = _OpCache_with_parameter_close_valve_door_open_ptr->second; auto writeState_ptr = _OpCache_with_parameter_close_valve_door_open.find(readState); if(writeState_ptr != _OpCache_with_parameter_close_valve_door_open.end()) { @@ -10771,7 +10752,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "close_valve_door_open"; result.insert(copiedState); { @@ -10781,33 +10761,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_open_valve_door_close read__tr_open_valve_door_close_state = state._projected_state_for__tr_open_valve_door_close(); bool _trid_5 = false; - auto _obj__trid_5_ptr = _OpCache_tr_open_valve_door_close.find(read__tr_open_valve_door_close_state); - if(_obj__trid_5_ptr == _OpCache_tr_open_valve_door_close.end()) { - _trid_5 = state._tr_open_valve_door_close(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_door_close_lock(_ProjectionRead__tr_open_valve_door_close_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_door_close_lock(_ProjectionRead__tr_open_valve_door_close_mutex); + auto _obj__trid_5_ptr = _OpCache_tr_open_valve_door_close.find(read__tr_open_valve_door_close_state); + if(_obj__trid_5_ptr == _OpCache_tr_open_valve_door_close.end()) { + _trid_5 = state._tr_open_valve_door_close(); _OpCache_tr_open_valve_door_close.insert({read__tr_open_valve_door_close_state, _trid_5}); + } else { + _trid_5 = _obj__trid_5_ptr->second; } - } else { - _trid_5 = _obj__trid_5_ptr->second; } if(_trid_5) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_open_valve_door_close readState = state._projected_state_for_open_valve_door_close(); - - auto _OpCache_with_parameter_open_valve_door_close_ptr = _OpCache_open_valve_door_close.find(_trid_5); - if(_OpCache_with_parameter_open_valve_door_close_ptr == _OpCache_open_valve_door_close.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_door_close_lock(_ProjectionRead_open_valve_door_close_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_open_valve_door_close_lock(_ProjectionRead_open_valve_door_close_mutex); + auto _OpCache_with_parameter_open_valve_door_close_ptr = _OpCache_open_valve_door_close.find(_trid_5); + if(_OpCache_with_parameter_open_valve_door_close_ptr == _OpCache_open_valve_door_close.end()) { copiedState.open_valve_door_close(); LandingGear_R6::_ProjectionWrite_open_valve_door_close writeState = copiedState._update_for_open_valve_door_close(); std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_door_close, LandingGear_R6::_ProjectionWrite_open_valve_door_close, LandingGear_R6::_ProjectionRead_open_valve_door_close::Hash, LandingGear_R6::_ProjectionRead_open_valve_door_close::HashEqual> _OpCache_with_parameter_open_valve_door_close = std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_door_close, LandingGear_R6::_ProjectionWrite_open_valve_door_close, LandingGear_R6::_ProjectionRead_open_valve_door_close::Hash, LandingGear_R6::_ProjectionRead_open_valve_door_close::HashEqual>(); _OpCache_with_parameter_open_valve_door_close.insert({readState, writeState}); _OpCache_open_valve_door_close.insert({_trid_5, _OpCache_with_parameter_open_valve_door_close}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_door_close_lock(_ProjectionRead_open_valve_door_close_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_door_close, LandingGear_R6::_ProjectionWrite_open_valve_door_close, LandingGear_R6::_ProjectionRead_open_valve_door_close::Hash, LandingGear_R6::_ProjectionRead_open_valve_door_close::HashEqual> _OpCache_with_parameter_open_valve_door_close = _OpCache_with_parameter_open_valve_door_close_ptr->second; auto writeState_ptr = _OpCache_with_parameter_open_valve_door_close.find(readState); if(writeState_ptr != _OpCache_with_parameter_open_valve_door_close.end()) { @@ -10820,7 +10796,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "open_valve_door_close"; result.insert(copiedState); { @@ -10830,33 +10805,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_close_valve_door_close read__tr_close_valve_door_close_state = state._projected_state_for__tr_close_valve_door_close(); bool _trid_6 = false; - auto _obj__trid_6_ptr = _OpCache_tr_close_valve_door_close.find(read__tr_close_valve_door_close_state); - if(_obj__trid_6_ptr == _OpCache_tr_close_valve_door_close.end()) { - _trid_6 = state._tr_close_valve_door_close(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_door_close_lock(_ProjectionRead__tr_close_valve_door_close_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_door_close_lock(_ProjectionRead__tr_close_valve_door_close_mutex); + auto _obj__trid_6_ptr = _OpCache_tr_close_valve_door_close.find(read__tr_close_valve_door_close_state); + if(_obj__trid_6_ptr == _OpCache_tr_close_valve_door_close.end()) { + _trid_6 = state._tr_close_valve_door_close(); _OpCache_tr_close_valve_door_close.insert({read__tr_close_valve_door_close_state, _trid_6}); + } else { + _trid_6 = _obj__trid_6_ptr->second; } - } else { - _trid_6 = _obj__trid_6_ptr->second; } if(_trid_6) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_close_valve_door_close readState = state._projected_state_for_close_valve_door_close(); - - auto _OpCache_with_parameter_close_valve_door_close_ptr = _OpCache_close_valve_door_close.find(_trid_6); - if(_OpCache_with_parameter_close_valve_door_close_ptr == _OpCache_close_valve_door_close.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_door_close_lock(_ProjectionRead_close_valve_door_close_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_close_valve_door_close_lock(_ProjectionRead_close_valve_door_close_mutex); + auto _OpCache_with_parameter_close_valve_door_close_ptr = _OpCache_close_valve_door_close.find(_trid_6); + if(_OpCache_with_parameter_close_valve_door_close_ptr == _OpCache_close_valve_door_close.end()) { copiedState.close_valve_door_close(); LandingGear_R6::_ProjectionWrite_close_valve_door_close writeState = copiedState._update_for_close_valve_door_close(); std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_door_close, LandingGear_R6::_ProjectionWrite_close_valve_door_close, LandingGear_R6::_ProjectionRead_close_valve_door_close::Hash, LandingGear_R6::_ProjectionRead_close_valve_door_close::HashEqual> _OpCache_with_parameter_close_valve_door_close = std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_door_close, LandingGear_R6::_ProjectionWrite_close_valve_door_close, LandingGear_R6::_ProjectionRead_close_valve_door_close::Hash, LandingGear_R6::_ProjectionRead_close_valve_door_close::HashEqual>(); _OpCache_with_parameter_close_valve_door_close.insert({readState, writeState}); _OpCache_close_valve_door_close.insert({_trid_6, _OpCache_with_parameter_close_valve_door_close}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_door_close_lock(_ProjectionRead_close_valve_door_close_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_door_close, LandingGear_R6::_ProjectionWrite_close_valve_door_close, LandingGear_R6::_ProjectionRead_close_valve_door_close::Hash, LandingGear_R6::_ProjectionRead_close_valve_door_close::HashEqual> _OpCache_with_parameter_close_valve_door_close = _OpCache_with_parameter_close_valve_door_close_ptr->second; auto writeState_ptr = _OpCache_with_parameter_close_valve_door_close.find(readState); if(writeState_ptr != _OpCache_with_parameter_close_valve_door_close.end()) { @@ -10869,7 +10840,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "close_valve_door_close"; result.insert(copiedState); { @@ -10879,33 +10849,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_open_valve_retract_gear read__tr_open_valve_retract_gear_state = state._projected_state_for__tr_open_valve_retract_gear(); bool _trid_7 = false; - auto _obj__trid_7_ptr = _OpCache_tr_open_valve_retract_gear.find(read__tr_open_valve_retract_gear_state); - if(_obj__trid_7_ptr == _OpCache_tr_open_valve_retract_gear.end()) { - _trid_7 = state._tr_open_valve_retract_gear(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_retract_gear_lock(_ProjectionRead__tr_open_valve_retract_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_retract_gear_lock(_ProjectionRead__tr_open_valve_retract_gear_mutex); + auto _obj__trid_7_ptr = _OpCache_tr_open_valve_retract_gear.find(read__tr_open_valve_retract_gear_state); + if(_obj__trid_7_ptr == _OpCache_tr_open_valve_retract_gear.end()) { + _trid_7 = state._tr_open_valve_retract_gear(); _OpCache_tr_open_valve_retract_gear.insert({read__tr_open_valve_retract_gear_state, _trid_7}); + } else { + _trid_7 = _obj__trid_7_ptr->second; } - } else { - _trid_7 = _obj__trid_7_ptr->second; } if(_trid_7) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_open_valve_retract_gear readState = state._projected_state_for_open_valve_retract_gear(); - - auto _OpCache_with_parameter_open_valve_retract_gear_ptr = _OpCache_open_valve_retract_gear.find(_trid_7); - if(_OpCache_with_parameter_open_valve_retract_gear_ptr == _OpCache_open_valve_retract_gear.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_retract_gear_lock(_ProjectionRead_open_valve_retract_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_open_valve_retract_gear_lock(_ProjectionRead_open_valve_retract_gear_mutex); + auto _OpCache_with_parameter_open_valve_retract_gear_ptr = _OpCache_open_valve_retract_gear.find(_trid_7); + if(_OpCache_with_parameter_open_valve_retract_gear_ptr == _OpCache_open_valve_retract_gear.end()) { copiedState.open_valve_retract_gear(); LandingGear_R6::_ProjectionWrite_open_valve_retract_gear writeState = copiedState._update_for_open_valve_retract_gear(); std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_retract_gear, LandingGear_R6::_ProjectionWrite_open_valve_retract_gear, LandingGear_R6::_ProjectionRead_open_valve_retract_gear::Hash, LandingGear_R6::_ProjectionRead_open_valve_retract_gear::HashEqual> _OpCache_with_parameter_open_valve_retract_gear = std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_retract_gear, LandingGear_R6::_ProjectionWrite_open_valve_retract_gear, LandingGear_R6::_ProjectionRead_open_valve_retract_gear::Hash, LandingGear_R6::_ProjectionRead_open_valve_retract_gear::HashEqual>(); _OpCache_with_parameter_open_valve_retract_gear.insert({readState, writeState}); _OpCache_open_valve_retract_gear.insert({_trid_7, _OpCache_with_parameter_open_valve_retract_gear}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_retract_gear_lock(_ProjectionRead_open_valve_retract_gear_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_retract_gear, LandingGear_R6::_ProjectionWrite_open_valve_retract_gear, LandingGear_R6::_ProjectionRead_open_valve_retract_gear::Hash, LandingGear_R6::_ProjectionRead_open_valve_retract_gear::HashEqual> _OpCache_with_parameter_open_valve_retract_gear = _OpCache_with_parameter_open_valve_retract_gear_ptr->second; auto writeState_ptr = _OpCache_with_parameter_open_valve_retract_gear.find(readState); if(writeState_ptr != _OpCache_with_parameter_open_valve_retract_gear.end()) { @@ -10918,7 +10884,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "open_valve_retract_gear"; result.insert(copiedState); { @@ -10928,33 +10893,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_close_valve_retract_gear read__tr_close_valve_retract_gear_state = state._projected_state_for__tr_close_valve_retract_gear(); bool _trid_8 = false; - auto _obj__trid_8_ptr = _OpCache_tr_close_valve_retract_gear.find(read__tr_close_valve_retract_gear_state); - if(_obj__trid_8_ptr == _OpCache_tr_close_valve_retract_gear.end()) { - _trid_8 = state._tr_close_valve_retract_gear(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_retract_gear_lock(_ProjectionRead__tr_close_valve_retract_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_retract_gear_lock(_ProjectionRead__tr_close_valve_retract_gear_mutex); + auto _obj__trid_8_ptr = _OpCache_tr_close_valve_retract_gear.find(read__tr_close_valve_retract_gear_state); + if(_obj__trid_8_ptr == _OpCache_tr_close_valve_retract_gear.end()) { + _trid_8 = state._tr_close_valve_retract_gear(); _OpCache_tr_close_valve_retract_gear.insert({read__tr_close_valve_retract_gear_state, _trid_8}); + } else { + _trid_8 = _obj__trid_8_ptr->second; } - } else { - _trid_8 = _obj__trid_8_ptr->second; } if(_trid_8) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_close_valve_retract_gear readState = state._projected_state_for_close_valve_retract_gear(); - - auto _OpCache_with_parameter_close_valve_retract_gear_ptr = _OpCache_close_valve_retract_gear.find(_trid_8); - if(_OpCache_with_parameter_close_valve_retract_gear_ptr == _OpCache_close_valve_retract_gear.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_retract_gear_lock(_ProjectionRead_close_valve_retract_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_close_valve_retract_gear_lock(_ProjectionRead_close_valve_retract_gear_mutex); + auto _OpCache_with_parameter_close_valve_retract_gear_ptr = _OpCache_close_valve_retract_gear.find(_trid_8); + if(_OpCache_with_parameter_close_valve_retract_gear_ptr == _OpCache_close_valve_retract_gear.end()) { copiedState.close_valve_retract_gear(); LandingGear_R6::_ProjectionWrite_close_valve_retract_gear writeState = copiedState._update_for_close_valve_retract_gear(); std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_retract_gear, LandingGear_R6::_ProjectionWrite_close_valve_retract_gear, LandingGear_R6::_ProjectionRead_close_valve_retract_gear::Hash, LandingGear_R6::_ProjectionRead_close_valve_retract_gear::HashEqual> _OpCache_with_parameter_close_valve_retract_gear = std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_retract_gear, LandingGear_R6::_ProjectionWrite_close_valve_retract_gear, LandingGear_R6::_ProjectionRead_close_valve_retract_gear::Hash, LandingGear_R6::_ProjectionRead_close_valve_retract_gear::HashEqual>(); _OpCache_with_parameter_close_valve_retract_gear.insert({readState, writeState}); _OpCache_close_valve_retract_gear.insert({_trid_8, _OpCache_with_parameter_close_valve_retract_gear}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_retract_gear_lock(_ProjectionRead_close_valve_retract_gear_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_retract_gear, LandingGear_R6::_ProjectionWrite_close_valve_retract_gear, LandingGear_R6::_ProjectionRead_close_valve_retract_gear::Hash, LandingGear_R6::_ProjectionRead_close_valve_retract_gear::HashEqual> _OpCache_with_parameter_close_valve_retract_gear = _OpCache_with_parameter_close_valve_retract_gear_ptr->second; auto writeState_ptr = _OpCache_with_parameter_close_valve_retract_gear.find(readState); if(writeState_ptr != _OpCache_with_parameter_close_valve_retract_gear.end()) { @@ -10967,7 +10928,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "close_valve_retract_gear"; result.insert(copiedState); { @@ -10977,33 +10937,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_open_valve_extend_gear read__tr_open_valve_extend_gear_state = state._projected_state_for__tr_open_valve_extend_gear(); bool _trid_9 = false; - auto _obj__trid_9_ptr = _OpCache_tr_open_valve_extend_gear.find(read__tr_open_valve_extend_gear_state); - if(_obj__trid_9_ptr == _OpCache_tr_open_valve_extend_gear.end()) { - _trid_9 = state._tr_open_valve_extend_gear(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_extend_gear_lock(_ProjectionRead__tr_open_valve_extend_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_open_valve_extend_gear_lock(_ProjectionRead__tr_open_valve_extend_gear_mutex); + auto _obj__trid_9_ptr = _OpCache_tr_open_valve_extend_gear.find(read__tr_open_valve_extend_gear_state); + if(_obj__trid_9_ptr == _OpCache_tr_open_valve_extend_gear.end()) { + _trid_9 = state._tr_open_valve_extend_gear(); _OpCache_tr_open_valve_extend_gear.insert({read__tr_open_valve_extend_gear_state, _trid_9}); + } else { + _trid_9 = _obj__trid_9_ptr->second; } - } else { - _trid_9 = _obj__trid_9_ptr->second; } if(_trid_9) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_open_valve_extend_gear readState = state._projected_state_for_open_valve_extend_gear(); - - auto _OpCache_with_parameter_open_valve_extend_gear_ptr = _OpCache_open_valve_extend_gear.find(_trid_9); - if(_OpCache_with_parameter_open_valve_extend_gear_ptr == _OpCache_open_valve_extend_gear.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_extend_gear_lock(_ProjectionRead_open_valve_extend_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_open_valve_extend_gear_lock(_ProjectionRead_open_valve_extend_gear_mutex); + auto _OpCache_with_parameter_open_valve_extend_gear_ptr = _OpCache_open_valve_extend_gear.find(_trid_9); + if(_OpCache_with_parameter_open_valve_extend_gear_ptr == _OpCache_open_valve_extend_gear.end()) { copiedState.open_valve_extend_gear(); LandingGear_R6::_ProjectionWrite_open_valve_extend_gear writeState = copiedState._update_for_open_valve_extend_gear(); std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_extend_gear, LandingGear_R6::_ProjectionWrite_open_valve_extend_gear, LandingGear_R6::_ProjectionRead_open_valve_extend_gear::Hash, LandingGear_R6::_ProjectionRead_open_valve_extend_gear::HashEqual> _OpCache_with_parameter_open_valve_extend_gear = std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_extend_gear, LandingGear_R6::_ProjectionWrite_open_valve_extend_gear, LandingGear_R6::_ProjectionRead_open_valve_extend_gear::Hash, LandingGear_R6::_ProjectionRead_open_valve_extend_gear::HashEqual>(); _OpCache_with_parameter_open_valve_extend_gear.insert({readState, writeState}); _OpCache_open_valve_extend_gear.insert({_trid_9, _OpCache_with_parameter_open_valve_extend_gear}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_open_valve_extend_gear_lock(_ProjectionRead_open_valve_extend_gear_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_open_valve_extend_gear, LandingGear_R6::_ProjectionWrite_open_valve_extend_gear, LandingGear_R6::_ProjectionRead_open_valve_extend_gear::Hash, LandingGear_R6::_ProjectionRead_open_valve_extend_gear::HashEqual> _OpCache_with_parameter_open_valve_extend_gear = _OpCache_with_parameter_open_valve_extend_gear_ptr->second; auto writeState_ptr = _OpCache_with_parameter_open_valve_extend_gear.find(readState); if(writeState_ptr != _OpCache_with_parameter_open_valve_extend_gear.end()) { @@ -11016,7 +10972,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "open_valve_extend_gear"; result.insert(copiedState); { @@ -11026,33 +10981,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_close_valve_extend_gear read__tr_close_valve_extend_gear_state = state._projected_state_for__tr_close_valve_extend_gear(); bool _trid_10 = false; - auto _obj__trid_10_ptr = _OpCache_tr_close_valve_extend_gear.find(read__tr_close_valve_extend_gear_state); - if(_obj__trid_10_ptr == _OpCache_tr_close_valve_extend_gear.end()) { - _trid_10 = state._tr_close_valve_extend_gear(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_extend_gear_lock(_ProjectionRead__tr_close_valve_extend_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_close_valve_extend_gear_lock(_ProjectionRead__tr_close_valve_extend_gear_mutex); + auto _obj__trid_10_ptr = _OpCache_tr_close_valve_extend_gear.find(read__tr_close_valve_extend_gear_state); + if(_obj__trid_10_ptr == _OpCache_tr_close_valve_extend_gear.end()) { + _trid_10 = state._tr_close_valve_extend_gear(); _OpCache_tr_close_valve_extend_gear.insert({read__tr_close_valve_extend_gear_state, _trid_10}); + } else { + _trid_10 = _obj__trid_10_ptr->second; } - } else { - _trid_10 = _obj__trid_10_ptr->second; } if(_trid_10) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_close_valve_extend_gear readState = state._projected_state_for_close_valve_extend_gear(); - - auto _OpCache_with_parameter_close_valve_extend_gear_ptr = _OpCache_close_valve_extend_gear.find(_trid_10); - if(_OpCache_with_parameter_close_valve_extend_gear_ptr == _OpCache_close_valve_extend_gear.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_extend_gear_lock(_ProjectionRead_close_valve_extend_gear_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_close_valve_extend_gear_lock(_ProjectionRead_close_valve_extend_gear_mutex); + auto _OpCache_with_parameter_close_valve_extend_gear_ptr = _OpCache_close_valve_extend_gear.find(_trid_10); + if(_OpCache_with_parameter_close_valve_extend_gear_ptr == _OpCache_close_valve_extend_gear.end()) { copiedState.close_valve_extend_gear(); LandingGear_R6::_ProjectionWrite_close_valve_extend_gear writeState = copiedState._update_for_close_valve_extend_gear(); std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_extend_gear, LandingGear_R6::_ProjectionWrite_close_valve_extend_gear, LandingGear_R6::_ProjectionRead_close_valve_extend_gear::Hash, LandingGear_R6::_ProjectionRead_close_valve_extend_gear::HashEqual> _OpCache_with_parameter_close_valve_extend_gear = std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_extend_gear, LandingGear_R6::_ProjectionWrite_close_valve_extend_gear, LandingGear_R6::_ProjectionRead_close_valve_extend_gear::Hash, LandingGear_R6::_ProjectionRead_close_valve_extend_gear::HashEqual>(); _OpCache_with_parameter_close_valve_extend_gear.insert({readState, writeState}); _OpCache_close_valve_extend_gear.insert({_trid_10, _OpCache_with_parameter_close_valve_extend_gear}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_close_valve_extend_gear_lock(_ProjectionRead_close_valve_extend_gear_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_close_valve_extend_gear, LandingGear_R6::_ProjectionWrite_close_valve_extend_gear, LandingGear_R6::_ProjectionRead_close_valve_extend_gear::Hash, LandingGear_R6::_ProjectionRead_close_valve_extend_gear::HashEqual> _OpCache_with_parameter_close_valve_extend_gear = _OpCache_with_parameter_close_valve_extend_gear_ptr->second; auto writeState_ptr = _OpCache_with_parameter_close_valve_extend_gear.find(readState); if(writeState_ptr != _OpCache_with_parameter_close_valve_extend_gear.end()) { @@ -11065,7 +11016,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "close_valve_extend_gear"; result.insert(copiedState); { @@ -11075,33 +11025,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stimulate_open_door_valve read__tr_con_stimulate_open_door_valve_state = state._projected_state_for__tr_con_stimulate_open_door_valve(); bool _trid_11 = false; - auto _obj__trid_11_ptr = _OpCache_tr_con_stimulate_open_door_valve.find(read__tr_con_stimulate_open_door_valve_state); - if(_obj__trid_11_ptr == _OpCache_tr_con_stimulate_open_door_valve.end()) { - _trid_11 = state._tr_con_stimulate_open_door_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_open_door_valve_lock(_ProjectionRead__tr_con_stimulate_open_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_open_door_valve_lock(_ProjectionRead__tr_con_stimulate_open_door_valve_mutex); + auto _obj__trid_11_ptr = _OpCache_tr_con_stimulate_open_door_valve.find(read__tr_con_stimulate_open_door_valve_state); + if(_obj__trid_11_ptr == _OpCache_tr_con_stimulate_open_door_valve.end()) { + _trid_11 = state._tr_con_stimulate_open_door_valve(); _OpCache_tr_con_stimulate_open_door_valve.insert({read__tr_con_stimulate_open_door_valve_state, _trid_11}); + } else { + _trid_11 = _obj__trid_11_ptr->second; } - } else { - _trid_11 = _obj__trid_11_ptr->second; } if(_trid_11) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve readState = state._projected_state_for_con_stimulate_open_door_valve(); - - auto _OpCache_with_parameter_con_stimulate_open_door_valve_ptr = _OpCache_con_stimulate_open_door_valve.find(_trid_11); - if(_OpCache_with_parameter_con_stimulate_open_door_valve_ptr == _OpCache_con_stimulate_open_door_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_open_door_valve_lock(_ProjectionRead_con_stimulate_open_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_open_door_valve_lock(_ProjectionRead_con_stimulate_open_door_valve_mutex); + auto _OpCache_with_parameter_con_stimulate_open_door_valve_ptr = _OpCache_con_stimulate_open_door_valve.find(_trid_11); + if(_OpCache_with_parameter_con_stimulate_open_door_valve_ptr == _OpCache_con_stimulate_open_door_valve.end()) { copiedState.con_stimulate_open_door_valve(); LandingGear_R6::_ProjectionWrite_con_stimulate_open_door_valve writeState = copiedState._update_for_con_stimulate_open_door_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_open_door_valve, LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve::HashEqual> _OpCache_with_parameter_con_stimulate_open_door_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_open_door_valve, LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve::HashEqual>(); _OpCache_with_parameter_con_stimulate_open_door_valve.insert({readState, writeState}); _OpCache_con_stimulate_open_door_valve.insert({_trid_11, _OpCache_with_parameter_con_stimulate_open_door_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_open_door_valve_lock(_ProjectionRead_con_stimulate_open_door_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_open_door_valve, LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_open_door_valve::HashEqual> _OpCache_with_parameter_con_stimulate_open_door_valve = _OpCache_with_parameter_con_stimulate_open_door_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stimulate_open_door_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stimulate_open_door_valve.end()) { @@ -11114,7 +11060,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stimulate_open_door_valve"; result.insert(copiedState); { @@ -11124,33 +11069,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stop_stimulate_open_door_valve read__tr_con_stop_stimulate_open_door_valve_state = state._projected_state_for__tr_con_stop_stimulate_open_door_valve(); bool _trid_12 = false; - auto _obj__trid_12_ptr = _OpCache_tr_con_stop_stimulate_open_door_valve.find(read__tr_con_stop_stimulate_open_door_valve_state); - if(_obj__trid_12_ptr == _OpCache_tr_con_stop_stimulate_open_door_valve.end()) { - _trid_12 = state._tr_con_stop_stimulate_open_door_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_open_door_valve_lock(_ProjectionRead__tr_con_stop_stimulate_open_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_open_door_valve_lock(_ProjectionRead__tr_con_stop_stimulate_open_door_valve_mutex); + auto _obj__trid_12_ptr = _OpCache_tr_con_stop_stimulate_open_door_valve.find(read__tr_con_stop_stimulate_open_door_valve_state); + if(_obj__trid_12_ptr == _OpCache_tr_con_stop_stimulate_open_door_valve.end()) { + _trid_12 = state._tr_con_stop_stimulate_open_door_valve(); _OpCache_tr_con_stop_stimulate_open_door_valve.insert({read__tr_con_stop_stimulate_open_door_valve_state, _trid_12}); + } else { + _trid_12 = _obj__trid_12_ptr->second; } - } else { - _trid_12 = _obj__trid_12_ptr->second; } if(_trid_12) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve readState = state._projected_state_for_con_stop_stimulate_open_door_valve(); - - auto _OpCache_with_parameter_con_stop_stimulate_open_door_valve_ptr = _OpCache_con_stop_stimulate_open_door_valve.find(_trid_12); - if(_OpCache_with_parameter_con_stop_stimulate_open_door_valve_ptr == _OpCache_con_stop_stimulate_open_door_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_open_door_valve_lock(_ProjectionRead_con_stop_stimulate_open_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_open_door_valve_lock(_ProjectionRead_con_stop_stimulate_open_door_valve_mutex); + auto _OpCache_with_parameter_con_stop_stimulate_open_door_valve_ptr = _OpCache_con_stop_stimulate_open_door_valve.find(_trid_12); + if(_OpCache_with_parameter_con_stop_stimulate_open_door_valve_ptr == _OpCache_con_stop_stimulate_open_door_valve.end()) { copiedState.con_stop_stimulate_open_door_valve(); LandingGear_R6::_ProjectionWrite_con_stop_stimulate_open_door_valve writeState = copiedState._update_for_con_stop_stimulate_open_door_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_open_door_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_open_door_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_open_door_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve::HashEqual>(); _OpCache_with_parameter_con_stop_stimulate_open_door_valve.insert({readState, writeState}); _OpCache_con_stop_stimulate_open_door_valve.insert({_trid_12, _OpCache_with_parameter_con_stop_stimulate_open_door_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_open_door_valve_lock(_ProjectionRead_con_stop_stimulate_open_door_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_open_door_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_open_door_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_open_door_valve = _OpCache_with_parameter_con_stop_stimulate_open_door_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stop_stimulate_open_door_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stop_stimulate_open_door_valve.end()) { @@ -11163,7 +11104,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stop_stimulate_open_door_valve"; result.insert(copiedState); { @@ -11173,33 +11113,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stimulate_close_door_valve read__tr_con_stimulate_close_door_valve_state = state._projected_state_for__tr_con_stimulate_close_door_valve(); bool _trid_13 = false; - auto _obj__trid_13_ptr = _OpCache_tr_con_stimulate_close_door_valve.find(read__tr_con_stimulate_close_door_valve_state); - if(_obj__trid_13_ptr == _OpCache_tr_con_stimulate_close_door_valve.end()) { - _trid_13 = state._tr_con_stimulate_close_door_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_close_door_valve_lock(_ProjectionRead__tr_con_stimulate_close_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_close_door_valve_lock(_ProjectionRead__tr_con_stimulate_close_door_valve_mutex); + auto _obj__trid_13_ptr = _OpCache_tr_con_stimulate_close_door_valve.find(read__tr_con_stimulate_close_door_valve_state); + if(_obj__trid_13_ptr == _OpCache_tr_con_stimulate_close_door_valve.end()) { + _trid_13 = state._tr_con_stimulate_close_door_valve(); _OpCache_tr_con_stimulate_close_door_valve.insert({read__tr_con_stimulate_close_door_valve_state, _trid_13}); + } else { + _trid_13 = _obj__trid_13_ptr->second; } - } else { - _trid_13 = _obj__trid_13_ptr->second; } if(_trid_13) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve readState = state._projected_state_for_con_stimulate_close_door_valve(); - - auto _OpCache_with_parameter_con_stimulate_close_door_valve_ptr = _OpCache_con_stimulate_close_door_valve.find(_trid_13); - if(_OpCache_with_parameter_con_stimulate_close_door_valve_ptr == _OpCache_con_stimulate_close_door_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_close_door_valve_lock(_ProjectionRead_con_stimulate_close_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_close_door_valve_lock(_ProjectionRead_con_stimulate_close_door_valve_mutex); + auto _OpCache_with_parameter_con_stimulate_close_door_valve_ptr = _OpCache_con_stimulate_close_door_valve.find(_trid_13); + if(_OpCache_with_parameter_con_stimulate_close_door_valve_ptr == _OpCache_con_stimulate_close_door_valve.end()) { copiedState.con_stimulate_close_door_valve(); LandingGear_R6::_ProjectionWrite_con_stimulate_close_door_valve writeState = copiedState._update_for_con_stimulate_close_door_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_close_door_valve, LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve::HashEqual> _OpCache_with_parameter_con_stimulate_close_door_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_close_door_valve, LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve::HashEqual>(); _OpCache_with_parameter_con_stimulate_close_door_valve.insert({readState, writeState}); _OpCache_con_stimulate_close_door_valve.insert({_trid_13, _OpCache_with_parameter_con_stimulate_close_door_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_close_door_valve_lock(_ProjectionRead_con_stimulate_close_door_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_close_door_valve, LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_close_door_valve::HashEqual> _OpCache_with_parameter_con_stimulate_close_door_valve = _OpCache_with_parameter_con_stimulate_close_door_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stimulate_close_door_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stimulate_close_door_valve.end()) { @@ -11212,7 +11148,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stimulate_close_door_valve"; result.insert(copiedState); { @@ -11222,33 +11157,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stop_stimulate_close_door_valve read__tr_con_stop_stimulate_close_door_valve_state = state._projected_state_for__tr_con_stop_stimulate_close_door_valve(); bool _trid_14 = false; - auto _obj__trid_14_ptr = _OpCache_tr_con_stop_stimulate_close_door_valve.find(read__tr_con_stop_stimulate_close_door_valve_state); - if(_obj__trid_14_ptr == _OpCache_tr_con_stop_stimulate_close_door_valve.end()) { - _trid_14 = state._tr_con_stop_stimulate_close_door_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_close_door_valve_lock(_ProjectionRead__tr_con_stop_stimulate_close_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_close_door_valve_lock(_ProjectionRead__tr_con_stop_stimulate_close_door_valve_mutex); + auto _obj__trid_14_ptr = _OpCache_tr_con_stop_stimulate_close_door_valve.find(read__tr_con_stop_stimulate_close_door_valve_state); + if(_obj__trid_14_ptr == _OpCache_tr_con_stop_stimulate_close_door_valve.end()) { + _trid_14 = state._tr_con_stop_stimulate_close_door_valve(); _OpCache_tr_con_stop_stimulate_close_door_valve.insert({read__tr_con_stop_stimulate_close_door_valve_state, _trid_14}); + } else { + _trid_14 = _obj__trid_14_ptr->second; } - } else { - _trid_14 = _obj__trid_14_ptr->second; } if(_trid_14) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve readState = state._projected_state_for_con_stop_stimulate_close_door_valve(); - - auto _OpCache_with_parameter_con_stop_stimulate_close_door_valve_ptr = _OpCache_con_stop_stimulate_close_door_valve.find(_trid_14); - if(_OpCache_with_parameter_con_stop_stimulate_close_door_valve_ptr == _OpCache_con_stop_stimulate_close_door_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_close_door_valve_lock(_ProjectionRead_con_stop_stimulate_close_door_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_close_door_valve_lock(_ProjectionRead_con_stop_stimulate_close_door_valve_mutex); + auto _OpCache_with_parameter_con_stop_stimulate_close_door_valve_ptr = _OpCache_con_stop_stimulate_close_door_valve.find(_trid_14); + if(_OpCache_with_parameter_con_stop_stimulate_close_door_valve_ptr == _OpCache_con_stop_stimulate_close_door_valve.end()) { copiedState.con_stop_stimulate_close_door_valve(); LandingGear_R6::_ProjectionWrite_con_stop_stimulate_close_door_valve writeState = copiedState._update_for_con_stop_stimulate_close_door_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_close_door_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_close_door_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_close_door_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve::HashEqual>(); _OpCache_with_parameter_con_stop_stimulate_close_door_valve.insert({readState, writeState}); _OpCache_con_stop_stimulate_close_door_valve.insert({_trid_14, _OpCache_with_parameter_con_stop_stimulate_close_door_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_close_door_valve_lock(_ProjectionRead_con_stop_stimulate_close_door_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_close_door_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_close_door_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_close_door_valve = _OpCache_with_parameter_con_stop_stimulate_close_door_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stop_stimulate_close_door_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stop_stimulate_close_door_valve.end()) { @@ -11261,7 +11192,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stop_stimulate_close_door_valve"; result.insert(copiedState); { @@ -11271,33 +11201,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stimulate_retract_gear_valve read__tr_con_stimulate_retract_gear_valve_state = state._projected_state_for__tr_con_stimulate_retract_gear_valve(); bool _trid_15 = false; - auto _obj__trid_15_ptr = _OpCache_tr_con_stimulate_retract_gear_valve.find(read__tr_con_stimulate_retract_gear_valve_state); - if(_obj__trid_15_ptr == _OpCache_tr_con_stimulate_retract_gear_valve.end()) { - _trid_15 = state._tr_con_stimulate_retract_gear_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_retract_gear_valve_lock(_ProjectionRead__tr_con_stimulate_retract_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_retract_gear_valve_lock(_ProjectionRead__tr_con_stimulate_retract_gear_valve_mutex); + auto _obj__trid_15_ptr = _OpCache_tr_con_stimulate_retract_gear_valve.find(read__tr_con_stimulate_retract_gear_valve_state); + if(_obj__trid_15_ptr == _OpCache_tr_con_stimulate_retract_gear_valve.end()) { + _trid_15 = state._tr_con_stimulate_retract_gear_valve(); _OpCache_tr_con_stimulate_retract_gear_valve.insert({read__tr_con_stimulate_retract_gear_valve_state, _trid_15}); + } else { + _trid_15 = _obj__trid_15_ptr->second; } - } else { - _trid_15 = _obj__trid_15_ptr->second; } if(_trid_15) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve readState = state._projected_state_for_con_stimulate_retract_gear_valve(); - - auto _OpCache_with_parameter_con_stimulate_retract_gear_valve_ptr = _OpCache_con_stimulate_retract_gear_valve.find(_trid_15); - if(_OpCache_with_parameter_con_stimulate_retract_gear_valve_ptr == _OpCache_con_stimulate_retract_gear_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_retract_gear_valve_lock(_ProjectionRead_con_stimulate_retract_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_retract_gear_valve_lock(_ProjectionRead_con_stimulate_retract_gear_valve_mutex); + auto _OpCache_with_parameter_con_stimulate_retract_gear_valve_ptr = _OpCache_con_stimulate_retract_gear_valve.find(_trid_15); + if(_OpCache_with_parameter_con_stimulate_retract_gear_valve_ptr == _OpCache_con_stimulate_retract_gear_valve.end()) { copiedState.con_stimulate_retract_gear_valve(); LandingGear_R6::_ProjectionWrite_con_stimulate_retract_gear_valve writeState = copiedState._update_for_con_stimulate_retract_gear_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve::HashEqual> _OpCache_with_parameter_con_stimulate_retract_gear_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve::HashEqual>(); _OpCache_with_parameter_con_stimulate_retract_gear_valve.insert({readState, writeState}); _OpCache_con_stimulate_retract_gear_valve.insert({_trid_15, _OpCache_with_parameter_con_stimulate_retract_gear_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_retract_gear_valve_lock(_ProjectionRead_con_stimulate_retract_gear_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_retract_gear_valve::HashEqual> _OpCache_with_parameter_con_stimulate_retract_gear_valve = _OpCache_with_parameter_con_stimulate_retract_gear_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stimulate_retract_gear_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stimulate_retract_gear_valve.end()) { @@ -11310,7 +11236,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stimulate_retract_gear_valve"; result.insert(copiedState); { @@ -11320,33 +11245,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stop_stimulate_retract_gear_valve read__tr_con_stop_stimulate_retract_gear_valve_state = state._projected_state_for__tr_con_stop_stimulate_retract_gear_valve(); bool _trid_16 = false; - auto _obj__trid_16_ptr = _OpCache_tr_con_stop_stimulate_retract_gear_valve.find(read__tr_con_stop_stimulate_retract_gear_valve_state); - if(_obj__trid_16_ptr == _OpCache_tr_con_stop_stimulate_retract_gear_valve.end()) { - _trid_16 = state._tr_con_stop_stimulate_retract_gear_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_retract_gear_valve_lock(_ProjectionRead__tr_con_stop_stimulate_retract_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_retract_gear_valve_lock(_ProjectionRead__tr_con_stop_stimulate_retract_gear_valve_mutex); + auto _obj__trid_16_ptr = _OpCache_tr_con_stop_stimulate_retract_gear_valve.find(read__tr_con_stop_stimulate_retract_gear_valve_state); + if(_obj__trid_16_ptr == _OpCache_tr_con_stop_stimulate_retract_gear_valve.end()) { + _trid_16 = state._tr_con_stop_stimulate_retract_gear_valve(); _OpCache_tr_con_stop_stimulate_retract_gear_valve.insert({read__tr_con_stop_stimulate_retract_gear_valve_state, _trid_16}); + } else { + _trid_16 = _obj__trid_16_ptr->second; } - } else { - _trid_16 = _obj__trid_16_ptr->second; } if(_trid_16) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve readState = state._projected_state_for_con_stop_stimulate_retract_gear_valve(); - - auto _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve_ptr = _OpCache_con_stop_stimulate_retract_gear_valve.find(_trid_16); - if(_OpCache_with_parameter_con_stop_stimulate_retract_gear_valve_ptr == _OpCache_con_stop_stimulate_retract_gear_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_retract_gear_valve_lock(_ProjectionRead_con_stop_stimulate_retract_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_retract_gear_valve_lock(_ProjectionRead_con_stop_stimulate_retract_gear_valve_mutex); + auto _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve_ptr = _OpCache_con_stop_stimulate_retract_gear_valve.find(_trid_16); + if(_OpCache_with_parameter_con_stop_stimulate_retract_gear_valve_ptr == _OpCache_con_stop_stimulate_retract_gear_valve.end()) { copiedState.con_stop_stimulate_retract_gear_valve(); LandingGear_R6::_ProjectionWrite_con_stop_stimulate_retract_gear_valve writeState = copiedState._update_for_con_stop_stimulate_retract_gear_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve::HashEqual>(); _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve.insert({readState, writeState}); _OpCache_con_stop_stimulate_retract_gear_valve.insert({_trid_16, _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_retract_gear_valve_lock(_ProjectionRead_con_stop_stimulate_retract_gear_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_retract_gear_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_retract_gear_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve = _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stop_stimulate_retract_gear_valve.end()) { @@ -11359,7 +11280,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stop_stimulate_retract_gear_valve"; result.insert(copiedState); { @@ -11369,33 +11289,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stimulate_extend_gear_valve read__tr_con_stimulate_extend_gear_valve_state = state._projected_state_for__tr_con_stimulate_extend_gear_valve(); bool _trid_17 = false; - auto _obj__trid_17_ptr = _OpCache_tr_con_stimulate_extend_gear_valve.find(read__tr_con_stimulate_extend_gear_valve_state); - if(_obj__trid_17_ptr == _OpCache_tr_con_stimulate_extend_gear_valve.end()) { - _trid_17 = state._tr_con_stimulate_extend_gear_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_extend_gear_valve_lock(_ProjectionRead__tr_con_stimulate_extend_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_extend_gear_valve_lock(_ProjectionRead__tr_con_stimulate_extend_gear_valve_mutex); + auto _obj__trid_17_ptr = _OpCache_tr_con_stimulate_extend_gear_valve.find(read__tr_con_stimulate_extend_gear_valve_state); + if(_obj__trid_17_ptr == _OpCache_tr_con_stimulate_extend_gear_valve.end()) { + _trid_17 = state._tr_con_stimulate_extend_gear_valve(); _OpCache_tr_con_stimulate_extend_gear_valve.insert({read__tr_con_stimulate_extend_gear_valve_state, _trid_17}); + } else { + _trid_17 = _obj__trid_17_ptr->second; } - } else { - _trid_17 = _obj__trid_17_ptr->second; } if(_trid_17) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve readState = state._projected_state_for_con_stimulate_extend_gear_valve(); - - auto _OpCache_with_parameter_con_stimulate_extend_gear_valve_ptr = _OpCache_con_stimulate_extend_gear_valve.find(_trid_17); - if(_OpCache_with_parameter_con_stimulate_extend_gear_valve_ptr == _OpCache_con_stimulate_extend_gear_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_extend_gear_valve_lock(_ProjectionRead_con_stimulate_extend_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_extend_gear_valve_lock(_ProjectionRead_con_stimulate_extend_gear_valve_mutex); + auto _OpCache_with_parameter_con_stimulate_extend_gear_valve_ptr = _OpCache_con_stimulate_extend_gear_valve.find(_trid_17); + if(_OpCache_with_parameter_con_stimulate_extend_gear_valve_ptr == _OpCache_con_stimulate_extend_gear_valve.end()) { copiedState.con_stimulate_extend_gear_valve(); LandingGear_R6::_ProjectionWrite_con_stimulate_extend_gear_valve writeState = copiedState._update_for_con_stimulate_extend_gear_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve::HashEqual> _OpCache_with_parameter_con_stimulate_extend_gear_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve::HashEqual>(); _OpCache_with_parameter_con_stimulate_extend_gear_valve.insert({readState, writeState}); _OpCache_con_stimulate_extend_gear_valve.insert({_trid_17, _OpCache_with_parameter_con_stimulate_extend_gear_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_extend_gear_valve_lock(_ProjectionRead_con_stimulate_extend_gear_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_extend_gear_valve::HashEqual> _OpCache_with_parameter_con_stimulate_extend_gear_valve = _OpCache_with_parameter_con_stimulate_extend_gear_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stimulate_extend_gear_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stimulate_extend_gear_valve.end()) { @@ -11408,7 +11324,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stimulate_extend_gear_valve"; result.insert(copiedState); { @@ -11418,33 +11333,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stop_stimulate_extend_gear_valve read__tr_con_stop_stimulate_extend_gear_valve_state = state._projected_state_for__tr_con_stop_stimulate_extend_gear_valve(); bool _trid_18 = false; - auto _obj__trid_18_ptr = _OpCache_tr_con_stop_stimulate_extend_gear_valve.find(read__tr_con_stop_stimulate_extend_gear_valve_state); - if(_obj__trid_18_ptr == _OpCache_tr_con_stop_stimulate_extend_gear_valve.end()) { - _trid_18 = state._tr_con_stop_stimulate_extend_gear_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_extend_gear_valve_lock(_ProjectionRead__tr_con_stop_stimulate_extend_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_extend_gear_valve_lock(_ProjectionRead__tr_con_stop_stimulate_extend_gear_valve_mutex); + auto _obj__trid_18_ptr = _OpCache_tr_con_stop_stimulate_extend_gear_valve.find(read__tr_con_stop_stimulate_extend_gear_valve_state); + if(_obj__trid_18_ptr == _OpCache_tr_con_stop_stimulate_extend_gear_valve.end()) { + _trid_18 = state._tr_con_stop_stimulate_extend_gear_valve(); _OpCache_tr_con_stop_stimulate_extend_gear_valve.insert({read__tr_con_stop_stimulate_extend_gear_valve_state, _trid_18}); + } else { + _trid_18 = _obj__trid_18_ptr->second; } - } else { - _trid_18 = _obj__trid_18_ptr->second; } if(_trid_18) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve readState = state._projected_state_for_con_stop_stimulate_extend_gear_valve(); - - auto _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve_ptr = _OpCache_con_stop_stimulate_extend_gear_valve.find(_trid_18); - if(_OpCache_with_parameter_con_stop_stimulate_extend_gear_valve_ptr == _OpCache_con_stop_stimulate_extend_gear_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_extend_gear_valve_lock(_ProjectionRead_con_stop_stimulate_extend_gear_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_extend_gear_valve_lock(_ProjectionRead_con_stop_stimulate_extend_gear_valve_mutex); + auto _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve_ptr = _OpCache_con_stop_stimulate_extend_gear_valve.find(_trid_18); + if(_OpCache_with_parameter_con_stop_stimulate_extend_gear_valve_ptr == _OpCache_con_stop_stimulate_extend_gear_valve.end()) { copiedState.con_stop_stimulate_extend_gear_valve(); LandingGear_R6::_ProjectionWrite_con_stop_stimulate_extend_gear_valve writeState = copiedState._update_for_con_stop_stimulate_extend_gear_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve::HashEqual>(); _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve.insert({readState, writeState}); _OpCache_con_stop_stimulate_extend_gear_valve.insert({_trid_18, _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_extend_gear_valve_lock(_ProjectionRead_con_stop_stimulate_extend_gear_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_extend_gear_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_extend_gear_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve = _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stop_stimulate_extend_gear_valve.end()) { @@ -11457,7 +11368,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stop_stimulate_extend_gear_valve"; result.insert(copiedState); { @@ -11466,1102 +11376,978 @@ class ModelChecker { } } LandingGear_R6::_ProjectionRead__tr_env_start_retracting_first read__tr_env_start_retracting_first_state = state._projected_state_for__tr_env_start_retracting_first(); - auto _trid_19_ptr = _OpCache_tr_env_start_retracting_first.find(read__tr_env_start_retracting_first_state); - if(_trid_19_ptr == _OpCache_tr_env_start_retracting_first.end()) { - BSet<LandingGear_R6::POSITION> _trid_19 = state._tr_env_start_retracting_first(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_retracting_first_lock(_ProjectionRead__tr_env_start_retracting_first_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_retracting_first_lock(_ProjectionRead__tr_env_start_retracting_first_mutex); + auto _trid_19_ptr = _OpCache_tr_env_start_retracting_first.find(read__tr_env_start_retracting_first_state); + if(_trid_19_ptr == _OpCache_tr_env_start_retracting_first.end()) { + BSet<LandingGear_R6::POSITION> _trid_19 = state._tr_env_start_retracting_first(); _OpCache_tr_env_start_retracting_first.insert({read__tr_env_start_retracting_first_state, _trid_19}); - } - for(const LandingGear_R6::POSITION& param : _trid_19) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_retracting_first readState = state._projected_state_for_env_start_retracting_first(); + for(const LandingGear_R6::POSITION& param : _trid_19) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_start_retracting_first_ptr = _OpCache_env_start_retracting_first.find(param); - if(_OpCache_with_parameter_env_start_retracting_first_ptr == _OpCache_env_start_retracting_first.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_start_retracting_first_lock(_ProjectionRead_env_start_retracting_first_mutex); - copiedState.env_start_retracting_first(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = copiedState._update_for_env_start_retracting_first(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual>(); - _OpCache_with_parameter_env_start_retracting_first.insert({readState, writeState}); - _OpCache_env_start_retracting_first.insert({param, _OpCache_with_parameter_env_start_retracting_first}); - } - } else { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_retracting_first readState = state._projected_state_for_env_start_retracting_first(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_retracting_first_lock(_ProjectionRead_env_start_retracting_first_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = _OpCache_with_parameter_env_start_retracting_first_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_retracting_first.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_retracting_first.end()) { - LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_retracting_first(writeState); - } else { + auto _OpCache_with_parameter_env_start_retracting_first_ptr = _OpCache_env_start_retracting_first.find(param); + if(_OpCache_with_parameter_env_start_retracting_first_ptr == _OpCache_env_start_retracting_first.end()) { copiedState.env_start_retracting_first(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = copiedState._update_for_env_start_retracting_first(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual>(); _OpCache_with_parameter_env_start_retracting_first.insert({readState, writeState}); + _OpCache_env_start_retracting_first.insert({param, _OpCache_with_parameter_env_start_retracting_first}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = _OpCache_with_parameter_env_start_retracting_first_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_retracting_first.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_retracting_first.end()) { + LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_retracting_first(writeState); + } else { + copiedState.env_start_retracting_first(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = copiedState._update_for_env_start_retracting_first(); + _OpCache_with_parameter_env_start_retracting_first.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_retracting_first"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_19 = _trid_19_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_19) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_retracting_first readState = state._projected_state_for_env_start_retracting_first(); - - auto _OpCache_with_parameter_env_start_retracting_first_ptr = _OpCache_env_start_retracting_first.find(param); - if(_OpCache_with_parameter_env_start_retracting_first_ptr == _OpCache_env_start_retracting_first.end()) { + copiedState.stateAccessedVia = "env_start_retracting_first"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_start_retracting_first_lock(_ProjectionRead_env_start_retracting_first_mutex); - copiedState.env_start_retracting_first(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = copiedState._update_for_env_start_retracting_first(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual>(); - _OpCache_with_parameter_env_start_retracting_first.insert({readState, writeState}); - _OpCache_env_start_retracting_first.insert({param, _OpCache_with_parameter_env_start_retracting_first}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_19 = _trid_19_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_19) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_retracting_first readState = state._projected_state_for_env_start_retracting_first(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_retracting_first_lock(_ProjectionRead_env_start_retracting_first_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = _OpCache_with_parameter_env_start_retracting_first_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_retracting_first.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_retracting_first.end()) { - LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_retracting_first(writeState); - } else { + auto _OpCache_with_parameter_env_start_retracting_first_ptr = _OpCache_env_start_retracting_first.find(param); + if(_OpCache_with_parameter_env_start_retracting_first_ptr == _OpCache_env_start_retracting_first.end()) { copiedState.env_start_retracting_first(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = copiedState._update_for_env_start_retracting_first(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual>(); _OpCache_with_parameter_env_start_retracting_first.insert({readState, writeState}); + _OpCache_env_start_retracting_first.insert({param, _OpCache_with_parameter_env_start_retracting_first}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_retracting_first, LandingGear_R6::_ProjectionWrite_env_start_retracting_first, LandingGear_R6::_ProjectionRead_env_start_retracting_first::Hash, LandingGear_R6::_ProjectionRead_env_start_retracting_first::HashEqual> _OpCache_with_parameter_env_start_retracting_first = _OpCache_with_parameter_env_start_retracting_first_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_retracting_first.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_retracting_first.end()) { + LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_retracting_first(writeState); + } else { + copiedState.env_start_retracting_first(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_retracting_first writeState = copiedState._update_for_env_start_retracting_first(); + _OpCache_with_parameter_env_start_retracting_first.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_retracting_first"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_start_retracting_first"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_retract_gear_skip read__tr_env_retract_gear_skip_state = state._projected_state_for__tr_env_retract_gear_skip(); - auto _trid_20_ptr = _OpCache_tr_env_retract_gear_skip.find(read__tr_env_retract_gear_skip_state); - if(_trid_20_ptr == _OpCache_tr_env_retract_gear_skip.end()) { - BSet<LandingGear_R6::POSITION> _trid_20 = state._tr_env_retract_gear_skip(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_retract_gear_skip_lock(_ProjectionRead__tr_env_retract_gear_skip_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_retract_gear_skip_lock(_ProjectionRead__tr_env_retract_gear_skip_mutex); + auto _trid_20_ptr = _OpCache_tr_env_retract_gear_skip.find(read__tr_env_retract_gear_skip_state); + if(_trid_20_ptr == _OpCache_tr_env_retract_gear_skip.end()) { + BSet<LandingGear_R6::POSITION> _trid_20 = state._tr_env_retract_gear_skip(); _OpCache_tr_env_retract_gear_skip.insert({read__tr_env_retract_gear_skip_state, _trid_20}); - } - for(const LandingGear_R6::POSITION& param : _trid_20) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_retract_gear_skip readState = state._projected_state_for_env_retract_gear_skip(); + for(const LandingGear_R6::POSITION& param : _trid_20) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_retract_gear_skip_ptr = _OpCache_env_retract_gear_skip.find(param); - if(_OpCache_with_parameter_env_retract_gear_skip_ptr == _OpCache_env_retract_gear_skip.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_skip_lock(_ProjectionRead_env_retract_gear_skip_mutex); - copiedState.env_retract_gear_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = copiedState._update_for_env_retract_gear_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual>(); - _OpCache_with_parameter_env_retract_gear_skip.insert({readState, writeState}); - _OpCache_env_retract_gear_skip.insert({param, _OpCache_with_parameter_env_retract_gear_skip}); - } - } else { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_retract_gear_skip readState = state._projected_state_for_env_retract_gear_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_skip_lock(_ProjectionRead_env_retract_gear_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = _OpCache_with_parameter_env_retract_gear_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_retract_gear_skip(writeState); - } else { + auto _OpCache_with_parameter_env_retract_gear_skip_ptr = _OpCache_env_retract_gear_skip.find(param); + if(_OpCache_with_parameter_env_retract_gear_skip_ptr == _OpCache_env_retract_gear_skip.end()) { copiedState.env_retract_gear_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = copiedState._update_for_env_retract_gear_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual>(); _OpCache_with_parameter_env_retract_gear_skip.insert({readState, writeState}); + _OpCache_env_retract_gear_skip.insert({param, _OpCache_with_parameter_env_retract_gear_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = _OpCache_with_parameter_env_retract_gear_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_retract_gear_skip(writeState); + } else { + copiedState.env_retract_gear_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = copiedState._update_for_env_retract_gear_skip(); + _OpCache_with_parameter_env_retract_gear_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_retract_gear_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_20 = _trid_20_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_20) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_retract_gear_skip readState = state._projected_state_for_env_retract_gear_skip(); - - auto _OpCache_with_parameter_env_retract_gear_skip_ptr = _OpCache_env_retract_gear_skip.find(param); - if(_OpCache_with_parameter_env_retract_gear_skip_ptr == _OpCache_env_retract_gear_skip.end()) { + copiedState.stateAccessedVia = "env_retract_gear_skip"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_skip_lock(_ProjectionRead_env_retract_gear_skip_mutex); - copiedState.env_retract_gear_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = copiedState._update_for_env_retract_gear_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual>(); - _OpCache_with_parameter_env_retract_gear_skip.insert({readState, writeState}); - _OpCache_env_retract_gear_skip.insert({param, _OpCache_with_parameter_env_retract_gear_skip}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_20 = _trid_20_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_20) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_retract_gear_skip readState = state._projected_state_for_env_retract_gear_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_skip_lock(_ProjectionRead_env_retract_gear_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = _OpCache_with_parameter_env_retract_gear_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_retract_gear_skip(writeState); - } else { + auto _OpCache_with_parameter_env_retract_gear_skip_ptr = _OpCache_env_retract_gear_skip.find(param); + if(_OpCache_with_parameter_env_retract_gear_skip_ptr == _OpCache_env_retract_gear_skip.end()) { copiedState.env_retract_gear_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = copiedState._update_for_env_retract_gear_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual>(); _OpCache_with_parameter_env_retract_gear_skip.insert({readState, writeState}); + _OpCache_env_retract_gear_skip.insert({param, _OpCache_with_parameter_env_retract_gear_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_skip, LandingGear_R6::_ProjectionWrite_env_retract_gear_skip, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_skip::HashEqual> _OpCache_with_parameter_env_retract_gear_skip = _OpCache_with_parameter_env_retract_gear_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_retract_gear_skip(writeState); + } else { + copiedState.env_retract_gear_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_retract_gear_skip writeState = copiedState._update_for_env_retract_gear_skip(); + _OpCache_with_parameter_env_retract_gear_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_retract_gear_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_retract_gear_skip"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_retract_gear_last read__tr_env_retract_gear_last_state = state._projected_state_for__tr_env_retract_gear_last(); - auto _trid_21_ptr = _OpCache_tr_env_retract_gear_last.find(read__tr_env_retract_gear_last_state); - if(_trid_21_ptr == _OpCache_tr_env_retract_gear_last.end()) { - BSet<LandingGear_R6::POSITION> _trid_21 = state._tr_env_retract_gear_last(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_retract_gear_last_lock(_ProjectionRead__tr_env_retract_gear_last_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_retract_gear_last_lock(_ProjectionRead__tr_env_retract_gear_last_mutex); + auto _trid_21_ptr = _OpCache_tr_env_retract_gear_last.find(read__tr_env_retract_gear_last_state); + if(_trid_21_ptr == _OpCache_tr_env_retract_gear_last.end()) { + BSet<LandingGear_R6::POSITION> _trid_21 = state._tr_env_retract_gear_last(); _OpCache_tr_env_retract_gear_last.insert({read__tr_env_retract_gear_last_state, _trid_21}); - } - for(const LandingGear_R6::POSITION& param : _trid_21) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_retract_gear_last readState = state._projected_state_for_env_retract_gear_last(); + for(const LandingGear_R6::POSITION& param : _trid_21) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_retract_gear_last_ptr = _OpCache_env_retract_gear_last.find(param); - if(_OpCache_with_parameter_env_retract_gear_last_ptr == _OpCache_env_retract_gear_last.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_retract_gear_last readState = state._projected_state_for_env_retract_gear_last(); { std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_last_lock(_ProjectionRead_env_retract_gear_last_mutex); - copiedState.env_retract_gear_last(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = copiedState._update_for_env_retract_gear_last(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual>(); - _OpCache_with_parameter_env_retract_gear_last.insert({readState, writeState}); - _OpCache_env_retract_gear_last.insert({param, _OpCache_with_parameter_env_retract_gear_last}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_last_lock(_ProjectionRead_env_retract_gear_last_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = _OpCache_with_parameter_env_retract_gear_last_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_last.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_last.end()) { - LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = writeState_ptr->second; - copiedState._apply_update_for_env_retract_gear_last(writeState); - } else { + auto _OpCache_with_parameter_env_retract_gear_last_ptr = _OpCache_env_retract_gear_last.find(param); + if(_OpCache_with_parameter_env_retract_gear_last_ptr == _OpCache_env_retract_gear_last.end()) { copiedState.env_retract_gear_last(_tmp_1); LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = copiedState._update_for_env_retract_gear_last(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual>(); _OpCache_with_parameter_env_retract_gear_last.insert({readState, writeState}); + _OpCache_env_retract_gear_last.insert({param, _OpCache_with_parameter_env_retract_gear_last}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = _OpCache_with_parameter_env_retract_gear_last_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_last.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_last.end()) { + LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = writeState_ptr->second; + copiedState._apply_update_for_env_retract_gear_last(writeState); + } else { + copiedState.env_retract_gear_last(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = copiedState._update_for_env_retract_gear_last(); + _OpCache_with_parameter_env_retract_gear_last.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_retract_gear_last"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_21 = _trid_21_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_21) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_retract_gear_last readState = state._projected_state_for_env_retract_gear_last(); - - auto _OpCache_with_parameter_env_retract_gear_last_ptr = _OpCache_env_retract_gear_last.find(param); - if(_OpCache_with_parameter_env_retract_gear_last_ptr == _OpCache_env_retract_gear_last.end()) { + copiedState.stateAccessedVia = "env_retract_gear_last"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_last_lock(_ProjectionRead_env_retract_gear_last_mutex); - copiedState.env_retract_gear_last(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = copiedState._update_for_env_retract_gear_last(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual>(); - _OpCache_with_parameter_env_retract_gear_last.insert({readState, writeState}); - _OpCache_env_retract_gear_last.insert({param, _OpCache_with_parameter_env_retract_gear_last}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_21 = _trid_21_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_21) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_retract_gear_last readState = state._projected_state_for_env_retract_gear_last(); { std::unique_lock<std::mutex> _ProjectionRead_env_retract_gear_last_lock(_ProjectionRead_env_retract_gear_last_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = _OpCache_with_parameter_env_retract_gear_last_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_last.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_last.end()) { - LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = writeState_ptr->second; - copiedState._apply_update_for_env_retract_gear_last(writeState); - } else { + auto _OpCache_with_parameter_env_retract_gear_last_ptr = _OpCache_env_retract_gear_last.find(param); + if(_OpCache_with_parameter_env_retract_gear_last_ptr == _OpCache_env_retract_gear_last.end()) { copiedState.env_retract_gear_last(_tmp_1); LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = copiedState._update_for_env_retract_gear_last(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual>(); _OpCache_with_parameter_env_retract_gear_last.insert({readState, writeState}); + _OpCache_env_retract_gear_last.insert({param, _OpCache_with_parameter_env_retract_gear_last}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_retract_gear_last, LandingGear_R6::_ProjectionWrite_env_retract_gear_last, LandingGear_R6::_ProjectionRead_env_retract_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_retract_gear_last::HashEqual> _OpCache_with_parameter_env_retract_gear_last = _OpCache_with_parameter_env_retract_gear_last_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_retract_gear_last.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_retract_gear_last.end()) { + LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = writeState_ptr->second; + copiedState._apply_update_for_env_retract_gear_last(writeState); + } else { + copiedState.env_retract_gear_last(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_retract_gear_last writeState = copiedState._update_for_env_retract_gear_last(); + _OpCache_with_parameter_env_retract_gear_last.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_retract_gear_last"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_retract_gear_last"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_start_extending read__tr_env_start_extending_state = state._projected_state_for__tr_env_start_extending(); - auto _trid_22_ptr = _OpCache_tr_env_start_extending.find(read__tr_env_start_extending_state); - if(_trid_22_ptr == _OpCache_tr_env_start_extending.end()) { - BSet<LandingGear_R6::POSITION> _trid_22 = state._tr_env_start_extending(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_extending_lock(_ProjectionRead__tr_env_start_extending_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_extending_lock(_ProjectionRead__tr_env_start_extending_mutex); + auto _trid_22_ptr = _OpCache_tr_env_start_extending.find(read__tr_env_start_extending_state); + if(_trid_22_ptr == _OpCache_tr_env_start_extending.end()) { + BSet<LandingGear_R6::POSITION> _trid_22 = state._tr_env_start_extending(); _OpCache_tr_env_start_extending.insert({read__tr_env_start_extending_state, _trid_22}); - } - for(const LandingGear_R6::POSITION& param : _trid_22) { - LandingGear_R6::POSITION _tmp_1 = param; + for(const LandingGear_R6::POSITION& param : _trid_22) { + LandingGear_R6::POSITION _tmp_1 = param; - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_extending readState = state._projected_state_for_env_start_extending(); - - auto _OpCache_with_parameter_env_start_extending_ptr = _OpCache_env_start_extending.find(param); - if(_OpCache_with_parameter_env_start_extending_ptr == _OpCache_env_start_extending.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_start_extending_lock(_ProjectionRead_env_start_extending_mutex); - copiedState.env_start_extending(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_extending writeState = copiedState._update_for_env_start_extending(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual>(); - _OpCache_with_parameter_env_start_extending.insert({readState, writeState}); - _OpCache_env_start_extending.insert({param, _OpCache_with_parameter_env_start_extending}); - } - } else { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_extending readState = state._projected_state_for_env_start_extending(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_extending_lock(_ProjectionRead_env_start_extending_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = _OpCache_with_parameter_env_start_extending_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_extending.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_extending.end()) { - LandingGear_R6::_ProjectionWrite_env_start_extending writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_extending(writeState); - } else { + auto _OpCache_with_parameter_env_start_extending_ptr = _OpCache_env_start_extending.find(param); + if(_OpCache_with_parameter_env_start_extending_ptr == _OpCache_env_start_extending.end()) { copiedState.env_start_extending(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_extending writeState = copiedState._update_for_env_start_extending(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual>(); _OpCache_with_parameter_env_start_extending.insert({readState, writeState}); + _OpCache_env_start_extending.insert({param, _OpCache_with_parameter_env_start_extending}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = _OpCache_with_parameter_env_start_extending_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_extending.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_extending.end()) { + LandingGear_R6::_ProjectionWrite_env_start_extending writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_extending(writeState); + } else { + copiedState.env_start_extending(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_extending writeState = copiedState._update_for_env_start_extending(); + _OpCache_with_parameter_env_start_extending.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_extending"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_22 = _trid_22_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_22) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_extending readState = state._projected_state_for_env_start_extending(); - - auto _OpCache_with_parameter_env_start_extending_ptr = _OpCache_env_start_extending.find(param); - if(_OpCache_with_parameter_env_start_extending_ptr == _OpCache_env_start_extending.end()) { + copiedState.stateAccessedVia = "env_start_extending"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_start_extending_lock(_ProjectionRead_env_start_extending_mutex); - copiedState.env_start_extending(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_extending writeState = copiedState._update_for_env_start_extending(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual>(); - _OpCache_with_parameter_env_start_extending.insert({readState, writeState}); - _OpCache_env_start_extending.insert({param, _OpCache_with_parameter_env_start_extending}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_22 = _trid_22_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_22) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_extending readState = state._projected_state_for_env_start_extending(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_extending_lock(_ProjectionRead_env_start_extending_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = _OpCache_with_parameter_env_start_extending_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_extending.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_extending.end()) { - LandingGear_R6::_ProjectionWrite_env_start_extending writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_extending(writeState); - } else { + auto _OpCache_with_parameter_env_start_extending_ptr = _OpCache_env_start_extending.find(param); + if(_OpCache_with_parameter_env_start_extending_ptr == _OpCache_env_start_extending.end()) { copiedState.env_start_extending(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_extending writeState = copiedState._update_for_env_start_extending(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual>(); _OpCache_with_parameter_env_start_extending.insert({readState, writeState}); + _OpCache_env_start_extending.insert({param, _OpCache_with_parameter_env_start_extending}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_extending, LandingGear_R6::_ProjectionWrite_env_start_extending, LandingGear_R6::_ProjectionRead_env_start_extending::Hash, LandingGear_R6::_ProjectionRead_env_start_extending::HashEqual> _OpCache_with_parameter_env_start_extending = _OpCache_with_parameter_env_start_extending_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_extending.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_extending.end()) { + LandingGear_R6::_ProjectionWrite_env_start_extending writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_extending(writeState); + } else { + copiedState.env_start_extending(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_extending writeState = copiedState._update_for_env_start_extending(); + _OpCache_with_parameter_env_start_extending.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_extending"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_start_extending"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_extend_gear_last read__tr_env_extend_gear_last_state = state._projected_state_for__tr_env_extend_gear_last(); - auto _trid_23_ptr = _OpCache_tr_env_extend_gear_last.find(read__tr_env_extend_gear_last_state); - if(_trid_23_ptr == _OpCache_tr_env_extend_gear_last.end()) { - BSet<LandingGear_R6::POSITION> _trid_23 = state._tr_env_extend_gear_last(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_extend_gear_last_lock(_ProjectionRead__tr_env_extend_gear_last_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_extend_gear_last_lock(_ProjectionRead__tr_env_extend_gear_last_mutex); + auto _trid_23_ptr = _OpCache_tr_env_extend_gear_last.find(read__tr_env_extend_gear_last_state); + if(_trid_23_ptr == _OpCache_tr_env_extend_gear_last.end()) { + BSet<LandingGear_R6::POSITION> _trid_23 = state._tr_env_extend_gear_last(); _OpCache_tr_env_extend_gear_last.insert({read__tr_env_extend_gear_last_state, _trid_23}); - } - for(const LandingGear_R6::POSITION& param : _trid_23) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_extend_gear_last readState = state._projected_state_for_env_extend_gear_last(); + for(const LandingGear_R6::POSITION& param : _trid_23) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_extend_gear_last_ptr = _OpCache_env_extend_gear_last.find(param); - if(_OpCache_with_parameter_env_extend_gear_last_ptr == _OpCache_env_extend_gear_last.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_extend_gear_last readState = state._projected_state_for_env_extend_gear_last(); { std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_last_lock(_ProjectionRead_env_extend_gear_last_mutex); - copiedState.env_extend_gear_last(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = copiedState._update_for_env_extend_gear_last(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual>(); - _OpCache_with_parameter_env_extend_gear_last.insert({readState, writeState}); - _OpCache_env_extend_gear_last.insert({param, _OpCache_with_parameter_env_extend_gear_last}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_last_lock(_ProjectionRead_env_extend_gear_last_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = _OpCache_with_parameter_env_extend_gear_last_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_last.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_last.end()) { - LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = writeState_ptr->second; - copiedState._apply_update_for_env_extend_gear_last(writeState); - } else { + auto _OpCache_with_parameter_env_extend_gear_last_ptr = _OpCache_env_extend_gear_last.find(param); + if(_OpCache_with_parameter_env_extend_gear_last_ptr == _OpCache_env_extend_gear_last.end()) { copiedState.env_extend_gear_last(_tmp_1); LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = copiedState._update_for_env_extend_gear_last(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual>(); _OpCache_with_parameter_env_extend_gear_last.insert({readState, writeState}); + _OpCache_env_extend_gear_last.insert({param, _OpCache_with_parameter_env_extend_gear_last}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = _OpCache_with_parameter_env_extend_gear_last_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_last.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_last.end()) { + LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = writeState_ptr->second; + copiedState._apply_update_for_env_extend_gear_last(writeState); + } else { + copiedState.env_extend_gear_last(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = copiedState._update_for_env_extend_gear_last(); + _OpCache_with_parameter_env_extend_gear_last.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_extend_gear_last"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_23 = _trid_23_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_23) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_extend_gear_last readState = state._projected_state_for_env_extend_gear_last(); - - auto _OpCache_with_parameter_env_extend_gear_last_ptr = _OpCache_env_extend_gear_last.find(param); - if(_OpCache_with_parameter_env_extend_gear_last_ptr == _OpCache_env_extend_gear_last.end()) { + copiedState.stateAccessedVia = "env_extend_gear_last"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_last_lock(_ProjectionRead_env_extend_gear_last_mutex); - copiedState.env_extend_gear_last(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = copiedState._update_for_env_extend_gear_last(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual>(); - _OpCache_with_parameter_env_extend_gear_last.insert({readState, writeState}); - _OpCache_env_extend_gear_last.insert({param, _OpCache_with_parameter_env_extend_gear_last}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_23 = _trid_23_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_23) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_extend_gear_last readState = state._projected_state_for_env_extend_gear_last(); { std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_last_lock(_ProjectionRead_env_extend_gear_last_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = _OpCache_with_parameter_env_extend_gear_last_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_last.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_last.end()) { - LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = writeState_ptr->second; - copiedState._apply_update_for_env_extend_gear_last(writeState); - } else { + auto _OpCache_with_parameter_env_extend_gear_last_ptr = _OpCache_env_extend_gear_last.find(param); + if(_OpCache_with_parameter_env_extend_gear_last_ptr == _OpCache_env_extend_gear_last.end()) { copiedState.env_extend_gear_last(_tmp_1); LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = copiedState._update_for_env_extend_gear_last(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual>(); _OpCache_with_parameter_env_extend_gear_last.insert({readState, writeState}); + _OpCache_env_extend_gear_last.insert({param, _OpCache_with_parameter_env_extend_gear_last}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_last, LandingGear_R6::_ProjectionWrite_env_extend_gear_last, LandingGear_R6::_ProjectionRead_env_extend_gear_last::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_last::HashEqual> _OpCache_with_parameter_env_extend_gear_last = _OpCache_with_parameter_env_extend_gear_last_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_last.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_last.end()) { + LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = writeState_ptr->second; + copiedState._apply_update_for_env_extend_gear_last(writeState); + } else { + copiedState.env_extend_gear_last(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_extend_gear_last writeState = copiedState._update_for_env_extend_gear_last(); + _OpCache_with_parameter_env_extend_gear_last.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_extend_gear_last"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_extend_gear_last"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_extend_gear_skip read__tr_env_extend_gear_skip_state = state._projected_state_for__tr_env_extend_gear_skip(); - auto _trid_24_ptr = _OpCache_tr_env_extend_gear_skip.find(read__tr_env_extend_gear_skip_state); - if(_trid_24_ptr == _OpCache_tr_env_extend_gear_skip.end()) { - BSet<LandingGear_R6::POSITION> _trid_24 = state._tr_env_extend_gear_skip(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_extend_gear_skip_lock(_ProjectionRead__tr_env_extend_gear_skip_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_extend_gear_skip_lock(_ProjectionRead__tr_env_extend_gear_skip_mutex); + auto _trid_24_ptr = _OpCache_tr_env_extend_gear_skip.find(read__tr_env_extend_gear_skip_state); + if(_trid_24_ptr == _OpCache_tr_env_extend_gear_skip.end()) { + BSet<LandingGear_R6::POSITION> _trid_24 = state._tr_env_extend_gear_skip(); _OpCache_tr_env_extend_gear_skip.insert({read__tr_env_extend_gear_skip_state, _trid_24}); - } - for(const LandingGear_R6::POSITION& param : _trid_24) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_extend_gear_skip readState = state._projected_state_for_env_extend_gear_skip(); + for(const LandingGear_R6::POSITION& param : _trid_24) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_extend_gear_skip_ptr = _OpCache_env_extend_gear_skip.find(param); - if(_OpCache_with_parameter_env_extend_gear_skip_ptr == _OpCache_env_extend_gear_skip.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_extend_gear_skip readState = state._projected_state_for_env_extend_gear_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_skip_lock(_ProjectionRead_env_extend_gear_skip_mutex); - copiedState.env_extend_gear_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = copiedState._update_for_env_extend_gear_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual>(); - _OpCache_with_parameter_env_extend_gear_skip.insert({readState, writeState}); - _OpCache_env_extend_gear_skip.insert({param, _OpCache_with_parameter_env_extend_gear_skip}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_skip_lock(_ProjectionRead_env_extend_gear_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = _OpCache_with_parameter_env_extend_gear_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_extend_gear_skip(writeState); - } else { + auto _OpCache_with_parameter_env_extend_gear_skip_ptr = _OpCache_env_extend_gear_skip.find(param); + if(_OpCache_with_parameter_env_extend_gear_skip_ptr == _OpCache_env_extend_gear_skip.end()) { copiedState.env_extend_gear_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = copiedState._update_for_env_extend_gear_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual>(); _OpCache_with_parameter_env_extend_gear_skip.insert({readState, writeState}); + _OpCache_env_extend_gear_skip.insert({param, _OpCache_with_parameter_env_extend_gear_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = _OpCache_with_parameter_env_extend_gear_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_extend_gear_skip(writeState); + } else { + copiedState.env_extend_gear_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = copiedState._update_for_env_extend_gear_skip(); + _OpCache_with_parameter_env_extend_gear_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_extend_gear_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_24 = _trid_24_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_24) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_extend_gear_skip readState = state._projected_state_for_env_extend_gear_skip(); - - auto _OpCache_with_parameter_env_extend_gear_skip_ptr = _OpCache_env_extend_gear_skip.find(param); - if(_OpCache_with_parameter_env_extend_gear_skip_ptr == _OpCache_env_extend_gear_skip.end()) { + copiedState.stateAccessedVia = "env_extend_gear_skip"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_skip_lock(_ProjectionRead_env_extend_gear_skip_mutex); - copiedState.env_extend_gear_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = copiedState._update_for_env_extend_gear_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual>(); - _OpCache_with_parameter_env_extend_gear_skip.insert({readState, writeState}); - _OpCache_env_extend_gear_skip.insert({param, _OpCache_with_parameter_env_extend_gear_skip}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_24 = _trid_24_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_24) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_extend_gear_skip readState = state._projected_state_for_env_extend_gear_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_extend_gear_skip_lock(_ProjectionRead_env_extend_gear_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = _OpCache_with_parameter_env_extend_gear_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_extend_gear_skip(writeState); - } else { + auto _OpCache_with_parameter_env_extend_gear_skip_ptr = _OpCache_env_extend_gear_skip.find(param); + if(_OpCache_with_parameter_env_extend_gear_skip_ptr == _OpCache_env_extend_gear_skip.end()) { copiedState.env_extend_gear_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = copiedState._update_for_env_extend_gear_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual>(); _OpCache_with_parameter_env_extend_gear_skip.insert({readState, writeState}); + _OpCache_env_extend_gear_skip.insert({param, _OpCache_with_parameter_env_extend_gear_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_extend_gear_skip, LandingGear_R6::_ProjectionWrite_env_extend_gear_skip, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::Hash, LandingGear_R6::_ProjectionRead_env_extend_gear_skip::HashEqual> _OpCache_with_parameter_env_extend_gear_skip = _OpCache_with_parameter_env_extend_gear_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_extend_gear_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_extend_gear_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_extend_gear_skip(writeState); + } else { + copiedState.env_extend_gear_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_extend_gear_skip writeState = copiedState._update_for_env_extend_gear_skip(); + _OpCache_with_parameter_env_extend_gear_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_extend_gear_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_extend_gear_skip"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_start_open_door read__tr_env_start_open_door_state = state._projected_state_for__tr_env_start_open_door(); - auto _trid_25_ptr = _OpCache_tr_env_start_open_door.find(read__tr_env_start_open_door_state); - if(_trid_25_ptr == _OpCache_tr_env_start_open_door.end()) { - BSet<LandingGear_R6::POSITION> _trid_25 = state._tr_env_start_open_door(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_open_door_lock(_ProjectionRead__tr_env_start_open_door_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_open_door_lock(_ProjectionRead__tr_env_start_open_door_mutex); + auto _trid_25_ptr = _OpCache_tr_env_start_open_door.find(read__tr_env_start_open_door_state); + if(_trid_25_ptr == _OpCache_tr_env_start_open_door.end()) { + BSet<LandingGear_R6::POSITION> _trid_25 = state._tr_env_start_open_door(); _OpCache_tr_env_start_open_door.insert({read__tr_env_start_open_door_state, _trid_25}); - } - for(const LandingGear_R6::POSITION& param : _trid_25) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_open_door readState = state._projected_state_for_env_start_open_door(); + for(const LandingGear_R6::POSITION& param : _trid_25) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_start_open_door_ptr = _OpCache_env_start_open_door.find(param); - if(_OpCache_with_parameter_env_start_open_door_ptr == _OpCache_env_start_open_door.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_open_door readState = state._projected_state_for_env_start_open_door(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_open_door_lock(_ProjectionRead_env_start_open_door_mutex); - copiedState.env_start_open_door(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = copiedState._update_for_env_start_open_door(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual>(); - _OpCache_with_parameter_env_start_open_door.insert({readState, writeState}); - _OpCache_env_start_open_door.insert({param, _OpCache_with_parameter_env_start_open_door}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_start_open_door_lock(_ProjectionRead_env_start_open_door_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = _OpCache_with_parameter_env_start_open_door_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_open_door.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_open_door.end()) { - LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_open_door(writeState); - } else { + auto _OpCache_with_parameter_env_start_open_door_ptr = _OpCache_env_start_open_door.find(param); + if(_OpCache_with_parameter_env_start_open_door_ptr == _OpCache_env_start_open_door.end()) { copiedState.env_start_open_door(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = copiedState._update_for_env_start_open_door(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual>(); _OpCache_with_parameter_env_start_open_door.insert({readState, writeState}); + _OpCache_env_start_open_door.insert({param, _OpCache_with_parameter_env_start_open_door}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = _OpCache_with_parameter_env_start_open_door_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_open_door.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_open_door.end()) { + LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_open_door(writeState); + } else { + copiedState.env_start_open_door(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = copiedState._update_for_env_start_open_door(); + _OpCache_with_parameter_env_start_open_door.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_open_door"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_25 = _trid_25_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_25) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_open_door readState = state._projected_state_for_env_start_open_door(); - - auto _OpCache_with_parameter_env_start_open_door_ptr = _OpCache_env_start_open_door.find(param); - if(_OpCache_with_parameter_env_start_open_door_ptr == _OpCache_env_start_open_door.end()) { + copiedState.stateAccessedVia = "env_start_open_door"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_start_open_door_lock(_ProjectionRead_env_start_open_door_mutex); - copiedState.env_start_open_door(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = copiedState._update_for_env_start_open_door(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual>(); - _OpCache_with_parameter_env_start_open_door.insert({readState, writeState}); - _OpCache_env_start_open_door.insert({param, _OpCache_with_parameter_env_start_open_door}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_25 = _trid_25_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_25) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_open_door readState = state._projected_state_for_env_start_open_door(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_open_door_lock(_ProjectionRead_env_start_open_door_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = _OpCache_with_parameter_env_start_open_door_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_open_door.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_open_door.end()) { - LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_open_door(writeState); - } else { + auto _OpCache_with_parameter_env_start_open_door_ptr = _OpCache_env_start_open_door.find(param); + if(_OpCache_with_parameter_env_start_open_door_ptr == _OpCache_env_start_open_door.end()) { copiedState.env_start_open_door(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = copiedState._update_for_env_start_open_door(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual>(); _OpCache_with_parameter_env_start_open_door.insert({readState, writeState}); + _OpCache_env_start_open_door.insert({param, _OpCache_with_parameter_env_start_open_door}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_open_door, LandingGear_R6::_ProjectionWrite_env_start_open_door, LandingGear_R6::_ProjectionRead_env_start_open_door::Hash, LandingGear_R6::_ProjectionRead_env_start_open_door::HashEqual> _OpCache_with_parameter_env_start_open_door = _OpCache_with_parameter_env_start_open_door_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_open_door.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_open_door.end()) { + LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_open_door(writeState); + } else { + copiedState.env_start_open_door(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_open_door writeState = copiedState._update_for_env_start_open_door(); + _OpCache_with_parameter_env_start_open_door.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_open_door"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_start_open_door"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_open_door_last read__tr_env_open_door_last_state = state._projected_state_for__tr_env_open_door_last(); - auto _trid_26_ptr = _OpCache_tr_env_open_door_last.find(read__tr_env_open_door_last_state); - if(_trid_26_ptr == _OpCache_tr_env_open_door_last.end()) { - BSet<LandingGear_R6::POSITION> _trid_26 = state._tr_env_open_door_last(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_open_door_last_lock(_ProjectionRead__tr_env_open_door_last_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_open_door_last_lock(_ProjectionRead__tr_env_open_door_last_mutex); + auto _trid_26_ptr = _OpCache_tr_env_open_door_last.find(read__tr_env_open_door_last_state); + if(_trid_26_ptr == _OpCache_tr_env_open_door_last.end()) { + BSet<LandingGear_R6::POSITION> _trid_26 = state._tr_env_open_door_last(); _OpCache_tr_env_open_door_last.insert({read__tr_env_open_door_last_state, _trid_26}); - } - for(const LandingGear_R6::POSITION& param : _trid_26) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_open_door_last readState = state._projected_state_for_env_open_door_last(); + for(const LandingGear_R6::POSITION& param : _trid_26) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_open_door_last_ptr = _OpCache_env_open_door_last.find(param); - if(_OpCache_with_parameter_env_open_door_last_ptr == _OpCache_env_open_door_last.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_open_door_last readState = state._projected_state_for_env_open_door_last(); { std::unique_lock<std::mutex> _ProjectionRead_env_open_door_last_lock(_ProjectionRead_env_open_door_last_mutex); - copiedState.env_open_door_last(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = copiedState._update_for_env_open_door_last(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual>(); - _OpCache_with_parameter_env_open_door_last.insert({readState, writeState}); - _OpCache_env_open_door_last.insert({param, _OpCache_with_parameter_env_open_door_last}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_open_door_last_lock(_ProjectionRead_env_open_door_last_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = _OpCache_with_parameter_env_open_door_last_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_open_door_last.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_open_door_last.end()) { - LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = writeState_ptr->second; - copiedState._apply_update_for_env_open_door_last(writeState); - } else { + auto _OpCache_with_parameter_env_open_door_last_ptr = _OpCache_env_open_door_last.find(param); + if(_OpCache_with_parameter_env_open_door_last_ptr == _OpCache_env_open_door_last.end()) { copiedState.env_open_door_last(_tmp_1); LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = copiedState._update_for_env_open_door_last(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual>(); _OpCache_with_parameter_env_open_door_last.insert({readState, writeState}); + _OpCache_env_open_door_last.insert({param, _OpCache_with_parameter_env_open_door_last}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = _OpCache_with_parameter_env_open_door_last_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_open_door_last.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_open_door_last.end()) { + LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = writeState_ptr->second; + copiedState._apply_update_for_env_open_door_last(writeState); + } else { + copiedState.env_open_door_last(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = copiedState._update_for_env_open_door_last(); + _OpCache_with_parameter_env_open_door_last.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_open_door_last"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_26 = _trid_26_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_26) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_open_door_last readState = state._projected_state_for_env_open_door_last(); - - auto _OpCache_with_parameter_env_open_door_last_ptr = _OpCache_env_open_door_last.find(param); - if(_OpCache_with_parameter_env_open_door_last_ptr == _OpCache_env_open_door_last.end()) { + copiedState.stateAccessedVia = "env_open_door_last"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_open_door_last_lock(_ProjectionRead_env_open_door_last_mutex); - copiedState.env_open_door_last(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = copiedState._update_for_env_open_door_last(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual>(); - _OpCache_with_parameter_env_open_door_last.insert({readState, writeState}); - _OpCache_env_open_door_last.insert({param, _OpCache_with_parameter_env_open_door_last}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_26 = _trid_26_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_26) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_open_door_last readState = state._projected_state_for_env_open_door_last(); { std::unique_lock<std::mutex> _ProjectionRead_env_open_door_last_lock(_ProjectionRead_env_open_door_last_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = _OpCache_with_parameter_env_open_door_last_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_open_door_last.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_open_door_last.end()) { - LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = writeState_ptr->second; - copiedState._apply_update_for_env_open_door_last(writeState); - } else { + auto _OpCache_with_parameter_env_open_door_last_ptr = _OpCache_env_open_door_last.find(param); + if(_OpCache_with_parameter_env_open_door_last_ptr == _OpCache_env_open_door_last.end()) { copiedState.env_open_door_last(_tmp_1); LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = copiedState._update_for_env_open_door_last(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual>(); _OpCache_with_parameter_env_open_door_last.insert({readState, writeState}); + _OpCache_env_open_door_last.insert({param, _OpCache_with_parameter_env_open_door_last}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_last, LandingGear_R6::_ProjectionWrite_env_open_door_last, LandingGear_R6::_ProjectionRead_env_open_door_last::Hash, LandingGear_R6::_ProjectionRead_env_open_door_last::HashEqual> _OpCache_with_parameter_env_open_door_last = _OpCache_with_parameter_env_open_door_last_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_open_door_last.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_open_door_last.end()) { + LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = writeState_ptr->second; + copiedState._apply_update_for_env_open_door_last(writeState); + } else { + copiedState.env_open_door_last(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_open_door_last writeState = copiedState._update_for_env_open_door_last(); + _OpCache_with_parameter_env_open_door_last.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_open_door_last"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_open_door_last"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_open_door_skip read__tr_env_open_door_skip_state = state._projected_state_for__tr_env_open_door_skip(); - auto _trid_27_ptr = _OpCache_tr_env_open_door_skip.find(read__tr_env_open_door_skip_state); - if(_trid_27_ptr == _OpCache_tr_env_open_door_skip.end()) { - BSet<LandingGear_R6::POSITION> _trid_27 = state._tr_env_open_door_skip(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_open_door_skip_lock(_ProjectionRead__tr_env_open_door_skip_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_open_door_skip_lock(_ProjectionRead__tr_env_open_door_skip_mutex); + auto _trid_27_ptr = _OpCache_tr_env_open_door_skip.find(read__tr_env_open_door_skip_state); + if(_trid_27_ptr == _OpCache_tr_env_open_door_skip.end()) { + BSet<LandingGear_R6::POSITION> _trid_27 = state._tr_env_open_door_skip(); _OpCache_tr_env_open_door_skip.insert({read__tr_env_open_door_skip_state, _trid_27}); - } - for(const LandingGear_R6::POSITION& param : _trid_27) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_open_door_skip readState = state._projected_state_for_env_open_door_skip(); + for(const LandingGear_R6::POSITION& param : _trid_27) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_open_door_skip_ptr = _OpCache_env_open_door_skip.find(param); - if(_OpCache_with_parameter_env_open_door_skip_ptr == _OpCache_env_open_door_skip.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_open_door_skip readState = state._projected_state_for_env_open_door_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_open_door_skip_lock(_ProjectionRead_env_open_door_skip_mutex); - copiedState.env_open_door_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = copiedState._update_for_env_open_door_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual>(); - _OpCache_with_parameter_env_open_door_skip.insert({readState, writeState}); - _OpCache_env_open_door_skip.insert({param, _OpCache_with_parameter_env_open_door_skip}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_open_door_skip_lock(_ProjectionRead_env_open_door_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = _OpCache_with_parameter_env_open_door_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_open_door_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_open_door_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_open_door_skip(writeState); - } else { + auto _OpCache_with_parameter_env_open_door_skip_ptr = _OpCache_env_open_door_skip.find(param); + if(_OpCache_with_parameter_env_open_door_skip_ptr == _OpCache_env_open_door_skip.end()) { copiedState.env_open_door_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = copiedState._update_for_env_open_door_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual>(); _OpCache_with_parameter_env_open_door_skip.insert({readState, writeState}); + _OpCache_env_open_door_skip.insert({param, _OpCache_with_parameter_env_open_door_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = _OpCache_with_parameter_env_open_door_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_open_door_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_open_door_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_open_door_skip(writeState); + } else { + copiedState.env_open_door_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = copiedState._update_for_env_open_door_skip(); + _OpCache_with_parameter_env_open_door_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_open_door_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_27 = _trid_27_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_27) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_open_door_skip readState = state._projected_state_for_env_open_door_skip(); - - auto _OpCache_with_parameter_env_open_door_skip_ptr = _OpCache_env_open_door_skip.find(param); - if(_OpCache_with_parameter_env_open_door_skip_ptr == _OpCache_env_open_door_skip.end()) { + copiedState.stateAccessedVia = "env_open_door_skip"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_open_door_skip_lock(_ProjectionRead_env_open_door_skip_mutex); - copiedState.env_open_door_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = copiedState._update_for_env_open_door_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual>(); - _OpCache_with_parameter_env_open_door_skip.insert({readState, writeState}); - _OpCache_env_open_door_skip.insert({param, _OpCache_with_parameter_env_open_door_skip}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_27 = _trid_27_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_27) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_open_door_skip readState = state._projected_state_for_env_open_door_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_open_door_skip_lock(_ProjectionRead_env_open_door_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = _OpCache_with_parameter_env_open_door_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_open_door_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_open_door_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_open_door_skip(writeState); - } else { + auto _OpCache_with_parameter_env_open_door_skip_ptr = _OpCache_env_open_door_skip.find(param); + if(_OpCache_with_parameter_env_open_door_skip_ptr == _OpCache_env_open_door_skip.end()) { copiedState.env_open_door_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = copiedState._update_for_env_open_door_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual>(); _OpCache_with_parameter_env_open_door_skip.insert({readState, writeState}); + _OpCache_env_open_door_skip.insert({param, _OpCache_with_parameter_env_open_door_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_door_skip, LandingGear_R6::_ProjectionWrite_env_open_door_skip, LandingGear_R6::_ProjectionRead_env_open_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_open_door_skip::HashEqual> _OpCache_with_parameter_env_open_door_skip = _OpCache_with_parameter_env_open_door_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_open_door_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_open_door_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_open_door_skip(writeState); + } else { + copiedState.env_open_door_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_open_door_skip writeState = copiedState._update_for_env_open_door_skip(); + _OpCache_with_parameter_env_open_door_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_open_door_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_open_door_skip"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_start_close_door read__tr_env_start_close_door_state = state._projected_state_for__tr_env_start_close_door(); - auto _trid_28_ptr = _OpCache_tr_env_start_close_door.find(read__tr_env_start_close_door_state); - if(_trid_28_ptr == _OpCache_tr_env_start_close_door.end()) { - BSet<LandingGear_R6::POSITION> _trid_28 = state._tr_env_start_close_door(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_close_door_lock(_ProjectionRead__tr_env_start_close_door_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_start_close_door_lock(_ProjectionRead__tr_env_start_close_door_mutex); + auto _trid_28_ptr = _OpCache_tr_env_start_close_door.find(read__tr_env_start_close_door_state); + if(_trid_28_ptr == _OpCache_tr_env_start_close_door.end()) { + BSet<LandingGear_R6::POSITION> _trid_28 = state._tr_env_start_close_door(); _OpCache_tr_env_start_close_door.insert({read__tr_env_start_close_door_state, _trid_28}); - } - for(const LandingGear_R6::POSITION& param : _trid_28) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_close_door readState = state._projected_state_for_env_start_close_door(); + for(const LandingGear_R6::POSITION& param : _trid_28) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_start_close_door_ptr = _OpCache_env_start_close_door.find(param); - if(_OpCache_with_parameter_env_start_close_door_ptr == _OpCache_env_start_close_door.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_start_close_door_lock(_ProjectionRead_env_start_close_door_mutex); - copiedState.env_start_close_door(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = copiedState._update_for_env_start_close_door(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual>(); - _OpCache_with_parameter_env_start_close_door.insert({readState, writeState}); - _OpCache_env_start_close_door.insert({param, _OpCache_with_parameter_env_start_close_door}); - } - } else { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_close_door readState = state._projected_state_for_env_start_close_door(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_close_door_lock(_ProjectionRead_env_start_close_door_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = _OpCache_with_parameter_env_start_close_door_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_close_door.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_close_door.end()) { - LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_close_door(writeState); - } else { + auto _OpCache_with_parameter_env_start_close_door_ptr = _OpCache_env_start_close_door.find(param); + if(_OpCache_with_parameter_env_start_close_door_ptr == _OpCache_env_start_close_door.end()) { copiedState.env_start_close_door(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = copiedState._update_for_env_start_close_door(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual>(); _OpCache_with_parameter_env_start_close_door.insert({readState, writeState}); + _OpCache_env_start_close_door.insert({param, _OpCache_with_parameter_env_start_close_door}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = _OpCache_with_parameter_env_start_close_door_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_close_door.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_close_door.end()) { + LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_close_door(writeState); + } else { + copiedState.env_start_close_door(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = copiedState._update_for_env_start_close_door(); + _OpCache_with_parameter_env_start_close_door.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_close_door"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_28 = _trid_28_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_28) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_start_close_door readState = state._projected_state_for_env_start_close_door(); - - auto _OpCache_with_parameter_env_start_close_door_ptr = _OpCache_env_start_close_door.find(param); - if(_OpCache_with_parameter_env_start_close_door_ptr == _OpCache_env_start_close_door.end()) { + copiedState.stateAccessedVia = "env_start_close_door"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_start_close_door_lock(_ProjectionRead_env_start_close_door_mutex); - copiedState.env_start_close_door(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = copiedState._update_for_env_start_close_door(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual>(); - _OpCache_with_parameter_env_start_close_door.insert({readState, writeState}); - _OpCache_env_start_close_door.insert({param, _OpCache_with_parameter_env_start_close_door}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_28 = _trid_28_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_28) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_start_close_door readState = state._projected_state_for_env_start_close_door(); { std::unique_lock<std::mutex> _ProjectionRead_env_start_close_door_lock(_ProjectionRead_env_start_close_door_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = _OpCache_with_parameter_env_start_close_door_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_start_close_door.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_start_close_door.end()) { - LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = writeState_ptr->second; - copiedState._apply_update_for_env_start_close_door(writeState); - } else { + auto _OpCache_with_parameter_env_start_close_door_ptr = _OpCache_env_start_close_door.find(param); + if(_OpCache_with_parameter_env_start_close_door_ptr == _OpCache_env_start_close_door.end()) { copiedState.env_start_close_door(_tmp_1); LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = copiedState._update_for_env_start_close_door(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual>(); _OpCache_with_parameter_env_start_close_door.insert({readState, writeState}); + _OpCache_env_start_close_door.insert({param, _OpCache_with_parameter_env_start_close_door}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_start_close_door, LandingGear_R6::_ProjectionWrite_env_start_close_door, LandingGear_R6::_ProjectionRead_env_start_close_door::Hash, LandingGear_R6::_ProjectionRead_env_start_close_door::HashEqual> _OpCache_with_parameter_env_start_close_door = _OpCache_with_parameter_env_start_close_door_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_start_close_door.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_start_close_door.end()) { + LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = writeState_ptr->second; + copiedState._apply_update_for_env_start_close_door(writeState); + } else { + copiedState.env_start_close_door(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_start_close_door writeState = copiedState._update_for_env_start_close_door(); + _OpCache_with_parameter_env_start_close_door.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_start_close_door"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_start_close_door"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_close_door read__tr_env_close_door_state = state._projected_state_for__tr_env_close_door(); - auto _trid_29_ptr = _OpCache_tr_env_close_door.find(read__tr_env_close_door_state); - if(_trid_29_ptr == _OpCache_tr_env_close_door.end()) { - BSet<LandingGear_R6::POSITION> _trid_29 = state._tr_env_close_door(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_close_door_lock(_ProjectionRead__tr_env_close_door_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_close_door_lock(_ProjectionRead__tr_env_close_door_mutex); + auto _trid_29_ptr = _OpCache_tr_env_close_door.find(read__tr_env_close_door_state); + if(_trid_29_ptr == _OpCache_tr_env_close_door.end()) { + BSet<LandingGear_R6::POSITION> _trid_29 = state._tr_env_close_door(); _OpCache_tr_env_close_door.insert({read__tr_env_close_door_state, _trid_29}); - } - for(const LandingGear_R6::POSITION& param : _trid_29) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_close_door readState = state._projected_state_for_env_close_door(); + for(const LandingGear_R6::POSITION& param : _trid_29) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_close_door_ptr = _OpCache_env_close_door.find(param); - if(_OpCache_with_parameter_env_close_door_ptr == _OpCache_env_close_door.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_close_door readState = state._projected_state_for_env_close_door(); { std::unique_lock<std::mutex> _ProjectionRead_env_close_door_lock(_ProjectionRead_env_close_door_mutex); - copiedState.env_close_door(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_close_door writeState = copiedState._update_for_env_close_door(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual>(); - _OpCache_with_parameter_env_close_door.insert({readState, writeState}); - _OpCache_env_close_door.insert({param, _OpCache_with_parameter_env_close_door}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_close_door_lock(_ProjectionRead_env_close_door_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = _OpCache_with_parameter_env_close_door_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_close_door.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_close_door.end()) { - LandingGear_R6::_ProjectionWrite_env_close_door writeState = writeState_ptr->second; - copiedState._apply_update_for_env_close_door(writeState); - } else { + auto _OpCache_with_parameter_env_close_door_ptr = _OpCache_env_close_door.find(param); + if(_OpCache_with_parameter_env_close_door_ptr == _OpCache_env_close_door.end()) { copiedState.env_close_door(_tmp_1); LandingGear_R6::_ProjectionWrite_env_close_door writeState = copiedState._update_for_env_close_door(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual>(); _OpCache_with_parameter_env_close_door.insert({readState, writeState}); + _OpCache_env_close_door.insert({param, _OpCache_with_parameter_env_close_door}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = _OpCache_with_parameter_env_close_door_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_close_door.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_close_door.end()) { + LandingGear_R6::_ProjectionWrite_env_close_door writeState = writeState_ptr->second; + copiedState._apply_update_for_env_close_door(writeState); + } else { + copiedState.env_close_door(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_close_door writeState = copiedState._update_for_env_close_door(); + _OpCache_with_parameter_env_close_door.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_close_door"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_29 = _trid_29_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_29) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_close_door readState = state._projected_state_for_env_close_door(); - - auto _OpCache_with_parameter_env_close_door_ptr = _OpCache_env_close_door.find(param); - if(_OpCache_with_parameter_env_close_door_ptr == _OpCache_env_close_door.end()) { + copiedState.stateAccessedVia = "env_close_door"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_close_door_lock(_ProjectionRead_env_close_door_mutex); - copiedState.env_close_door(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_close_door writeState = copiedState._update_for_env_close_door(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual>(); - _OpCache_with_parameter_env_close_door.insert({readState, writeState}); - _OpCache_env_close_door.insert({param, _OpCache_with_parameter_env_close_door}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_29 = _trid_29_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_29) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_close_door readState = state._projected_state_for_env_close_door(); { std::unique_lock<std::mutex> _ProjectionRead_env_close_door_lock(_ProjectionRead_env_close_door_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = _OpCache_with_parameter_env_close_door_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_close_door.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_close_door.end()) { - LandingGear_R6::_ProjectionWrite_env_close_door writeState = writeState_ptr->second; - copiedState._apply_update_for_env_close_door(writeState); - } else { + auto _OpCache_with_parameter_env_close_door_ptr = _OpCache_env_close_door.find(param); + if(_OpCache_with_parameter_env_close_door_ptr == _OpCache_env_close_door.end()) { copiedState.env_close_door(_tmp_1); LandingGear_R6::_ProjectionWrite_env_close_door writeState = copiedState._update_for_env_close_door(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual>(); _OpCache_with_parameter_env_close_door.insert({readState, writeState}); + _OpCache_env_close_door.insert({param, _OpCache_with_parameter_env_close_door}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door, LandingGear_R6::_ProjectionWrite_env_close_door, LandingGear_R6::_ProjectionRead_env_close_door::Hash, LandingGear_R6::_ProjectionRead_env_close_door::HashEqual> _OpCache_with_parameter_env_close_door = _OpCache_with_parameter_env_close_door_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_close_door.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_close_door.end()) { + LandingGear_R6::_ProjectionWrite_env_close_door writeState = writeState_ptr->second; + copiedState._apply_update_for_env_close_door(writeState); + } else { + copiedState.env_close_door(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_close_door writeState = copiedState._update_for_env_close_door(); + _OpCache_with_parameter_env_close_door.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_close_door"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_close_door"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_env_close_door_skip read__tr_env_close_door_skip_state = state._projected_state_for__tr_env_close_door_skip(); - auto _trid_30_ptr = _OpCache_tr_env_close_door_skip.find(read__tr_env_close_door_skip_state); - if(_trid_30_ptr == _OpCache_tr_env_close_door_skip.end()) { - BSet<LandingGear_R6::POSITION> _trid_30 = state._tr_env_close_door_skip(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_close_door_skip_lock(_ProjectionRead__tr_env_close_door_skip_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_close_door_skip_lock(_ProjectionRead__tr_env_close_door_skip_mutex); + auto _trid_30_ptr = _OpCache_tr_env_close_door_skip.find(read__tr_env_close_door_skip_state); + if(_trid_30_ptr == _OpCache_tr_env_close_door_skip.end()) { + BSet<LandingGear_R6::POSITION> _trid_30 = state._tr_env_close_door_skip(); _OpCache_tr_env_close_door_skip.insert({read__tr_env_close_door_skip_state, _trid_30}); - } - for(const LandingGear_R6::POSITION& param : _trid_30) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_close_door_skip readState = state._projected_state_for_env_close_door_skip(); + for(const LandingGear_R6::POSITION& param : _trid_30) { + LandingGear_R6::POSITION _tmp_1 = param; - auto _OpCache_with_parameter_env_close_door_skip_ptr = _OpCache_env_close_door_skip.find(param); - if(_OpCache_with_parameter_env_close_door_skip_ptr == _OpCache_env_close_door_skip.end()) { + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_close_door_skip readState = state._projected_state_for_env_close_door_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_close_door_skip_lock(_ProjectionRead_env_close_door_skip_mutex); - copiedState.env_close_door_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = copiedState._update_for_env_close_door_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual>(); - _OpCache_with_parameter_env_close_door_skip.insert({readState, writeState}); - _OpCache_env_close_door_skip.insert({param, _OpCache_with_parameter_env_close_door_skip}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_close_door_skip_lock(_ProjectionRead_env_close_door_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = _OpCache_with_parameter_env_close_door_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_close_door_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_close_door_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_close_door_skip(writeState); - } else { + auto _OpCache_with_parameter_env_close_door_skip_ptr = _OpCache_env_close_door_skip.find(param); + if(_OpCache_with_parameter_env_close_door_skip_ptr == _OpCache_env_close_door_skip.end()) { copiedState.env_close_door_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = copiedState._update_for_env_close_door_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual>(); _OpCache_with_parameter_env_close_door_skip.insert({readState, writeState}); + _OpCache_env_close_door_skip.insert({param, _OpCache_with_parameter_env_close_door_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = _OpCache_with_parameter_env_close_door_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_close_door_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_close_door_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_close_door_skip(writeState); + } else { + copiedState.env_close_door_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = copiedState._update_for_env_close_door_skip(); + _OpCache_with_parameter_env_close_door_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_close_door_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<LandingGear_R6::POSITION> _trid_30 = _trid_30_ptr->second; - for(const LandingGear_R6::POSITION& param : _trid_30) { - LandingGear_R6::POSITION _tmp_1 = param; - - LandingGear_R6 copiedState = state._copy(); - LandingGear_R6::_ProjectionRead_env_close_door_skip readState = state._projected_state_for_env_close_door_skip(); - - auto _OpCache_with_parameter_env_close_door_skip_ptr = _OpCache_env_close_door_skip.find(param); - if(_OpCache_with_parameter_env_close_door_skip_ptr == _OpCache_env_close_door_skip.end()) { + copiedState.stateAccessedVia = "env_close_door_skip"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_close_door_skip_lock(_ProjectionRead_env_close_door_skip_mutex); - copiedState.env_close_door_skip(_tmp_1); - LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = copiedState._update_for_env_close_door_skip(); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual>(); - _OpCache_with_parameter_env_close_door_skip.insert({readState, writeState}); - _OpCache_env_close_door_skip.insert({param, _OpCache_with_parameter_env_close_door_skip}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<LandingGear_R6::POSITION> _trid_30 = _trid_30_ptr->second; + for(const LandingGear_R6::POSITION& param : _trid_30) { + LandingGear_R6::POSITION _tmp_1 = param; + + LandingGear_R6 copiedState = state._copy(); + LandingGear_R6::_ProjectionRead_env_close_door_skip readState = state._projected_state_for_env_close_door_skip(); { std::unique_lock<std::mutex> _ProjectionRead_env_close_door_skip_lock(_ProjectionRead_env_close_door_skip_mutex); - std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = _OpCache_with_parameter_env_close_door_skip_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_close_door_skip.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_close_door_skip.end()) { - LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = writeState_ptr->second; - copiedState._apply_update_for_env_close_door_skip(writeState); - } else { + auto _OpCache_with_parameter_env_close_door_skip_ptr = _OpCache_env_close_door_skip.find(param); + if(_OpCache_with_parameter_env_close_door_skip_ptr == _OpCache_env_close_door_skip.end()) { copiedState.env_close_door_skip(_tmp_1); LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = copiedState._update_for_env_close_door_skip(); + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual>(); _OpCache_with_parameter_env_close_door_skip.insert({readState, writeState}); + _OpCache_env_close_door_skip.insert({param, _OpCache_with_parameter_env_close_door_skip}); + } else { + std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_door_skip, LandingGear_R6::_ProjectionWrite_env_close_door_skip, LandingGear_R6::_ProjectionRead_env_close_door_skip::Hash, LandingGear_R6::_ProjectionRead_env_close_door_skip::HashEqual> _OpCache_with_parameter_env_close_door_skip = _OpCache_with_parameter_env_close_door_skip_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_close_door_skip.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_close_door_skip.end()) { + LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = writeState_ptr->second; + copiedState._apply_update_for_env_close_door_skip(writeState); + } else { + copiedState.env_close_door_skip(_tmp_1); + LandingGear_R6::_ProjectionWrite_env_close_door_skip writeState = copiedState._update_for_env_close_door_skip(); + _OpCache_with_parameter_env_close_door_skip.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_close_door_skip"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_close_door_skip"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } LandingGear_R6::_ProjectionRead__tr_toggle_handle_up read__tr_toggle_handle_up_state = state._projected_state_for__tr_toggle_handle_up(); bool _trid_31 = false; - auto _obj__trid_31_ptr = _OpCache_tr_toggle_handle_up.find(read__tr_toggle_handle_up_state); - if(_obj__trid_31_ptr == _OpCache_tr_toggle_handle_up.end()) { - _trid_31 = state._tr_toggle_handle_up(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_toggle_handle_up_lock(_ProjectionRead__tr_toggle_handle_up_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_toggle_handle_up_lock(_ProjectionRead__tr_toggle_handle_up_mutex); + auto _obj__trid_31_ptr = _OpCache_tr_toggle_handle_up.find(read__tr_toggle_handle_up_state); + if(_obj__trid_31_ptr == _OpCache_tr_toggle_handle_up.end()) { + _trid_31 = state._tr_toggle_handle_up(); _OpCache_tr_toggle_handle_up.insert({read__tr_toggle_handle_up_state, _trid_31}); + } else { + _trid_31 = _obj__trid_31_ptr->second; } - } else { - _trid_31 = _obj__trid_31_ptr->second; } if(_trid_31) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_toggle_handle_up readState = state._projected_state_for_toggle_handle_up(); - - auto _OpCache_with_parameter_toggle_handle_up_ptr = _OpCache_toggle_handle_up.find(_trid_31); - if(_OpCache_with_parameter_toggle_handle_up_ptr == _OpCache_toggle_handle_up.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_toggle_handle_up_lock(_ProjectionRead_toggle_handle_up_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_toggle_handle_up_lock(_ProjectionRead_toggle_handle_up_mutex); + auto _OpCache_with_parameter_toggle_handle_up_ptr = _OpCache_toggle_handle_up.find(_trid_31); + if(_OpCache_with_parameter_toggle_handle_up_ptr == _OpCache_toggle_handle_up.end()) { copiedState.toggle_handle_up(); LandingGear_R6::_ProjectionWrite_toggle_handle_up writeState = copiedState._update_for_toggle_handle_up(); std::unordered_map<LandingGear_R6::_ProjectionRead_toggle_handle_up, LandingGear_R6::_ProjectionWrite_toggle_handle_up, LandingGear_R6::_ProjectionRead_toggle_handle_up::Hash, LandingGear_R6::_ProjectionRead_toggle_handle_up::HashEqual> _OpCache_with_parameter_toggle_handle_up = std::unordered_map<LandingGear_R6::_ProjectionRead_toggle_handle_up, LandingGear_R6::_ProjectionWrite_toggle_handle_up, LandingGear_R6::_ProjectionRead_toggle_handle_up::Hash, LandingGear_R6::_ProjectionRead_toggle_handle_up::HashEqual>(); _OpCache_with_parameter_toggle_handle_up.insert({readState, writeState}); _OpCache_toggle_handle_up.insert({_trid_31, _OpCache_with_parameter_toggle_handle_up}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_toggle_handle_up_lock(_ProjectionRead_toggle_handle_up_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_toggle_handle_up, LandingGear_R6::_ProjectionWrite_toggle_handle_up, LandingGear_R6::_ProjectionRead_toggle_handle_up::Hash, LandingGear_R6::_ProjectionRead_toggle_handle_up::HashEqual> _OpCache_with_parameter_toggle_handle_up = _OpCache_with_parameter_toggle_handle_up_ptr->second; auto writeState_ptr = _OpCache_with_parameter_toggle_handle_up.find(readState); if(writeState_ptr != _OpCache_with_parameter_toggle_handle_up.end()) { @@ -12574,7 +12360,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "toggle_handle_up"; result.insert(copiedState); { @@ -12584,33 +12369,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_toggle_handle_down read__tr_toggle_handle_down_state = state._projected_state_for__tr_toggle_handle_down(); bool _trid_32 = false; - auto _obj__trid_32_ptr = _OpCache_tr_toggle_handle_down.find(read__tr_toggle_handle_down_state); - if(_obj__trid_32_ptr == _OpCache_tr_toggle_handle_down.end()) { - _trid_32 = state._tr_toggle_handle_down(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_toggle_handle_down_lock(_ProjectionRead__tr_toggle_handle_down_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_toggle_handle_down_lock(_ProjectionRead__tr_toggle_handle_down_mutex); + auto _obj__trid_32_ptr = _OpCache_tr_toggle_handle_down.find(read__tr_toggle_handle_down_state); + if(_obj__trid_32_ptr == _OpCache_tr_toggle_handle_down.end()) { + _trid_32 = state._tr_toggle_handle_down(); _OpCache_tr_toggle_handle_down.insert({read__tr_toggle_handle_down_state, _trid_32}); + } else { + _trid_32 = _obj__trid_32_ptr->second; } - } else { - _trid_32 = _obj__trid_32_ptr->second; } if(_trid_32) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_toggle_handle_down readState = state._projected_state_for_toggle_handle_down(); - - auto _OpCache_with_parameter_toggle_handle_down_ptr = _OpCache_toggle_handle_down.find(_trid_32); - if(_OpCache_with_parameter_toggle_handle_down_ptr == _OpCache_toggle_handle_down.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_toggle_handle_down_lock(_ProjectionRead_toggle_handle_down_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_toggle_handle_down_lock(_ProjectionRead_toggle_handle_down_mutex); + auto _OpCache_with_parameter_toggle_handle_down_ptr = _OpCache_toggle_handle_down.find(_trid_32); + if(_OpCache_with_parameter_toggle_handle_down_ptr == _OpCache_toggle_handle_down.end()) { copiedState.toggle_handle_down(); LandingGear_R6::_ProjectionWrite_toggle_handle_down writeState = copiedState._update_for_toggle_handle_down(); std::unordered_map<LandingGear_R6::_ProjectionRead_toggle_handle_down, LandingGear_R6::_ProjectionWrite_toggle_handle_down, LandingGear_R6::_ProjectionRead_toggle_handle_down::Hash, LandingGear_R6::_ProjectionRead_toggle_handle_down::HashEqual> _OpCache_with_parameter_toggle_handle_down = std::unordered_map<LandingGear_R6::_ProjectionRead_toggle_handle_down, LandingGear_R6::_ProjectionWrite_toggle_handle_down, LandingGear_R6::_ProjectionRead_toggle_handle_down::Hash, LandingGear_R6::_ProjectionRead_toggle_handle_down::HashEqual>(); _OpCache_with_parameter_toggle_handle_down.insert({readState, writeState}); _OpCache_toggle_handle_down.insert({_trid_32, _OpCache_with_parameter_toggle_handle_down}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_toggle_handle_down_lock(_ProjectionRead_toggle_handle_down_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_toggle_handle_down, LandingGear_R6::_ProjectionWrite_toggle_handle_down, LandingGear_R6::_ProjectionRead_toggle_handle_down::Hash, LandingGear_R6::_ProjectionRead_toggle_handle_down::HashEqual> _OpCache_with_parameter_toggle_handle_down = _OpCache_with_parameter_toggle_handle_down_ptr->second; auto writeState_ptr = _OpCache_with_parameter_toggle_handle_down.find(readState); if(writeState_ptr != _OpCache_with_parameter_toggle_handle_down.end()) { @@ -12623,7 +12404,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "toggle_handle_down"; result.insert(copiedState); { @@ -12633,33 +12413,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stimulate_general_valve read__tr_con_stimulate_general_valve_state = state._projected_state_for__tr_con_stimulate_general_valve(); bool _trid_33 = false; - auto _obj__trid_33_ptr = _OpCache_tr_con_stimulate_general_valve.find(read__tr_con_stimulate_general_valve_state); - if(_obj__trid_33_ptr == _OpCache_tr_con_stimulate_general_valve.end()) { - _trid_33 = state._tr_con_stimulate_general_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_general_valve_lock(_ProjectionRead__tr_con_stimulate_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stimulate_general_valve_lock(_ProjectionRead__tr_con_stimulate_general_valve_mutex); + auto _obj__trid_33_ptr = _OpCache_tr_con_stimulate_general_valve.find(read__tr_con_stimulate_general_valve_state); + if(_obj__trid_33_ptr == _OpCache_tr_con_stimulate_general_valve.end()) { + _trid_33 = state._tr_con_stimulate_general_valve(); _OpCache_tr_con_stimulate_general_valve.insert({read__tr_con_stimulate_general_valve_state, _trid_33}); + } else { + _trid_33 = _obj__trid_33_ptr->second; } - } else { - _trid_33 = _obj__trid_33_ptr->second; } if(_trid_33) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stimulate_general_valve readState = state._projected_state_for_con_stimulate_general_valve(); - - auto _OpCache_with_parameter_con_stimulate_general_valve_ptr = _OpCache_con_stimulate_general_valve.find(_trid_33); - if(_OpCache_with_parameter_con_stimulate_general_valve_ptr == _OpCache_con_stimulate_general_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_general_valve_lock(_ProjectionRead_con_stimulate_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_general_valve_lock(_ProjectionRead_con_stimulate_general_valve_mutex); + auto _OpCache_with_parameter_con_stimulate_general_valve_ptr = _OpCache_con_stimulate_general_valve.find(_trid_33); + if(_OpCache_with_parameter_con_stimulate_general_valve_ptr == _OpCache_con_stimulate_general_valve.end()) { copiedState.con_stimulate_general_valve(); LandingGear_R6::_ProjectionWrite_con_stimulate_general_valve writeState = copiedState._update_for_con_stimulate_general_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_general_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_general_valve, LandingGear_R6::_ProjectionRead_con_stimulate_general_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_general_valve::HashEqual> _OpCache_with_parameter_con_stimulate_general_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_general_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_general_valve, LandingGear_R6::_ProjectionRead_con_stimulate_general_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_general_valve::HashEqual>(); _OpCache_with_parameter_con_stimulate_general_valve.insert({readState, writeState}); _OpCache_con_stimulate_general_valve.insert({_trid_33, _OpCache_with_parameter_con_stimulate_general_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stimulate_general_valve_lock(_ProjectionRead_con_stimulate_general_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stimulate_general_valve, LandingGear_R6::_ProjectionWrite_con_stimulate_general_valve, LandingGear_R6::_ProjectionRead_con_stimulate_general_valve::Hash, LandingGear_R6::_ProjectionRead_con_stimulate_general_valve::HashEqual> _OpCache_with_parameter_con_stimulate_general_valve = _OpCache_with_parameter_con_stimulate_general_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stimulate_general_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stimulate_general_valve.end()) { @@ -12672,7 +12448,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stimulate_general_valve"; result.insert(copiedState); { @@ -12682,33 +12457,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_con_stop_stimulate_general_valve read__tr_con_stop_stimulate_general_valve_state = state._projected_state_for__tr_con_stop_stimulate_general_valve(); bool _trid_34 = false; - auto _obj__trid_34_ptr = _OpCache_tr_con_stop_stimulate_general_valve.find(read__tr_con_stop_stimulate_general_valve_state); - if(_obj__trid_34_ptr == _OpCache_tr_con_stop_stimulate_general_valve.end()) { - _trid_34 = state._tr_con_stop_stimulate_general_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_general_valve_lock(_ProjectionRead__tr_con_stop_stimulate_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_con_stop_stimulate_general_valve_lock(_ProjectionRead__tr_con_stop_stimulate_general_valve_mutex); + auto _obj__trid_34_ptr = _OpCache_tr_con_stop_stimulate_general_valve.find(read__tr_con_stop_stimulate_general_valve_state); + if(_obj__trid_34_ptr == _OpCache_tr_con_stop_stimulate_general_valve.end()) { + _trid_34 = state._tr_con_stop_stimulate_general_valve(); _OpCache_tr_con_stop_stimulate_general_valve.insert({read__tr_con_stop_stimulate_general_valve_state, _trid_34}); + } else { + _trid_34 = _obj__trid_34_ptr->second; } - } else { - _trid_34 = _obj__trid_34_ptr->second; } if(_trid_34) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve readState = state._projected_state_for_con_stop_stimulate_general_valve(); - - auto _OpCache_with_parameter_con_stop_stimulate_general_valve_ptr = _OpCache_con_stop_stimulate_general_valve.find(_trid_34); - if(_OpCache_with_parameter_con_stop_stimulate_general_valve_ptr == _OpCache_con_stop_stimulate_general_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_general_valve_lock(_ProjectionRead_con_stop_stimulate_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_general_valve_lock(_ProjectionRead_con_stop_stimulate_general_valve_mutex); + auto _OpCache_with_parameter_con_stop_stimulate_general_valve_ptr = _OpCache_con_stop_stimulate_general_valve.find(_trid_34); + if(_OpCache_with_parameter_con_stop_stimulate_general_valve_ptr == _OpCache_con_stop_stimulate_general_valve.end()) { copiedState.con_stop_stimulate_general_valve(); LandingGear_R6::_ProjectionWrite_con_stop_stimulate_general_valve writeState = copiedState._update_for_con_stop_stimulate_general_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_general_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_general_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_general_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve::HashEqual>(); _OpCache_with_parameter_con_stop_stimulate_general_valve.insert({readState, writeState}); _OpCache_con_stop_stimulate_general_valve.insert({_trid_34, _OpCache_with_parameter_con_stop_stimulate_general_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_con_stop_stimulate_general_valve_lock(_ProjectionRead_con_stop_stimulate_general_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve, LandingGear_R6::_ProjectionWrite_con_stop_stimulate_general_valve, LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve::Hash, LandingGear_R6::_ProjectionRead_con_stop_stimulate_general_valve::HashEqual> _OpCache_with_parameter_con_stop_stimulate_general_valve = _OpCache_with_parameter_con_stop_stimulate_general_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_con_stop_stimulate_general_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_con_stop_stimulate_general_valve.end()) { @@ -12721,7 +12492,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "con_stop_stimulate_general_valve"; result.insert(copiedState); { @@ -12731,33 +12501,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_evn_open_general_valve read__tr_evn_open_general_valve_state = state._projected_state_for__tr_evn_open_general_valve(); bool _trid_35 = false; - auto _obj__trid_35_ptr = _OpCache_tr_evn_open_general_valve.find(read__tr_evn_open_general_valve_state); - if(_obj__trid_35_ptr == _OpCache_tr_evn_open_general_valve.end()) { - _trid_35 = state._tr_evn_open_general_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_evn_open_general_valve_lock(_ProjectionRead__tr_evn_open_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_evn_open_general_valve_lock(_ProjectionRead__tr_evn_open_general_valve_mutex); + auto _obj__trid_35_ptr = _OpCache_tr_evn_open_general_valve.find(read__tr_evn_open_general_valve_state); + if(_obj__trid_35_ptr == _OpCache_tr_evn_open_general_valve.end()) { + _trid_35 = state._tr_evn_open_general_valve(); _OpCache_tr_evn_open_general_valve.insert({read__tr_evn_open_general_valve_state, _trid_35}); + } else { + _trid_35 = _obj__trid_35_ptr->second; } - } else { - _trid_35 = _obj__trid_35_ptr->second; } if(_trid_35) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_evn_open_general_valve readState = state._projected_state_for_evn_open_general_valve(); - - auto _OpCache_with_parameter_evn_open_general_valve_ptr = _OpCache_evn_open_general_valve.find(_trid_35); - if(_OpCache_with_parameter_evn_open_general_valve_ptr == _OpCache_evn_open_general_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_evn_open_general_valve_lock(_ProjectionRead_evn_open_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_evn_open_general_valve_lock(_ProjectionRead_evn_open_general_valve_mutex); + auto _OpCache_with_parameter_evn_open_general_valve_ptr = _OpCache_evn_open_general_valve.find(_trid_35); + if(_OpCache_with_parameter_evn_open_general_valve_ptr == _OpCache_evn_open_general_valve.end()) { copiedState.evn_open_general_valve(); LandingGear_R6::_ProjectionWrite_evn_open_general_valve writeState = copiedState._update_for_evn_open_general_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_evn_open_general_valve, LandingGear_R6::_ProjectionWrite_evn_open_general_valve, LandingGear_R6::_ProjectionRead_evn_open_general_valve::Hash, LandingGear_R6::_ProjectionRead_evn_open_general_valve::HashEqual> _OpCache_with_parameter_evn_open_general_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_evn_open_general_valve, LandingGear_R6::_ProjectionWrite_evn_open_general_valve, LandingGear_R6::_ProjectionRead_evn_open_general_valve::Hash, LandingGear_R6::_ProjectionRead_evn_open_general_valve::HashEqual>(); _OpCache_with_parameter_evn_open_general_valve.insert({readState, writeState}); _OpCache_evn_open_general_valve.insert({_trid_35, _OpCache_with_parameter_evn_open_general_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_evn_open_general_valve_lock(_ProjectionRead_evn_open_general_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_evn_open_general_valve, LandingGear_R6::_ProjectionWrite_evn_open_general_valve, LandingGear_R6::_ProjectionRead_evn_open_general_valve::Hash, LandingGear_R6::_ProjectionRead_evn_open_general_valve::HashEqual> _OpCache_with_parameter_evn_open_general_valve = _OpCache_with_parameter_evn_open_general_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_evn_open_general_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_evn_open_general_valve.end()) { @@ -12770,7 +12536,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "evn_open_general_valve"; result.insert(copiedState); { @@ -12780,33 +12545,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_evn_close_general_valve read__tr_evn_close_general_valve_state = state._projected_state_for__tr_evn_close_general_valve(); bool _trid_36 = false; - auto _obj__trid_36_ptr = _OpCache_tr_evn_close_general_valve.find(read__tr_evn_close_general_valve_state); - if(_obj__trid_36_ptr == _OpCache_tr_evn_close_general_valve.end()) { - _trid_36 = state._tr_evn_close_general_valve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_evn_close_general_valve_lock(_ProjectionRead__tr_evn_close_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_evn_close_general_valve_lock(_ProjectionRead__tr_evn_close_general_valve_mutex); + auto _obj__trid_36_ptr = _OpCache_tr_evn_close_general_valve.find(read__tr_evn_close_general_valve_state); + if(_obj__trid_36_ptr == _OpCache_tr_evn_close_general_valve.end()) { + _trid_36 = state._tr_evn_close_general_valve(); _OpCache_tr_evn_close_general_valve.insert({read__tr_evn_close_general_valve_state, _trid_36}); + } else { + _trid_36 = _obj__trid_36_ptr->second; } - } else { - _trid_36 = _obj__trid_36_ptr->second; } if(_trid_36) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_evn_close_general_valve readState = state._projected_state_for_evn_close_general_valve(); - - auto _OpCache_with_parameter_evn_close_general_valve_ptr = _OpCache_evn_close_general_valve.find(_trid_36); - if(_OpCache_with_parameter_evn_close_general_valve_ptr == _OpCache_evn_close_general_valve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_evn_close_general_valve_lock(_ProjectionRead_evn_close_general_valve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_evn_close_general_valve_lock(_ProjectionRead_evn_close_general_valve_mutex); + auto _OpCache_with_parameter_evn_close_general_valve_ptr = _OpCache_evn_close_general_valve.find(_trid_36); + if(_OpCache_with_parameter_evn_close_general_valve_ptr == _OpCache_evn_close_general_valve.end()) { copiedState.evn_close_general_valve(); LandingGear_R6::_ProjectionWrite_evn_close_general_valve writeState = copiedState._update_for_evn_close_general_valve(); std::unordered_map<LandingGear_R6::_ProjectionRead_evn_close_general_valve, LandingGear_R6::_ProjectionWrite_evn_close_general_valve, LandingGear_R6::_ProjectionRead_evn_close_general_valve::Hash, LandingGear_R6::_ProjectionRead_evn_close_general_valve::HashEqual> _OpCache_with_parameter_evn_close_general_valve = std::unordered_map<LandingGear_R6::_ProjectionRead_evn_close_general_valve, LandingGear_R6::_ProjectionWrite_evn_close_general_valve, LandingGear_R6::_ProjectionRead_evn_close_general_valve::Hash, LandingGear_R6::_ProjectionRead_evn_close_general_valve::HashEqual>(); _OpCache_with_parameter_evn_close_general_valve.insert({readState, writeState}); _OpCache_evn_close_general_valve.insert({_trid_36, _OpCache_with_parameter_evn_close_general_valve}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_evn_close_general_valve_lock(_ProjectionRead_evn_close_general_valve_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_evn_close_general_valve, LandingGear_R6::_ProjectionWrite_evn_close_general_valve, LandingGear_R6::_ProjectionRead_evn_close_general_valve::Hash, LandingGear_R6::_ProjectionRead_evn_close_general_valve::HashEqual> _OpCache_with_parameter_evn_close_general_valve = _OpCache_with_parameter_evn_close_general_valve_ptr->second; auto writeState_ptr = _OpCache_with_parameter_evn_close_general_valve.find(readState); if(writeState_ptr != _OpCache_with_parameter_evn_close_general_valve.end()) { @@ -12819,7 +12580,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "evn_close_general_valve"; result.insert(copiedState); { @@ -12829,33 +12589,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_env_close_analogical_switch read__tr_env_close_analogical_switch_state = state._projected_state_for__tr_env_close_analogical_switch(); bool _trid_37 = false; - auto _obj__trid_37_ptr = _OpCache_tr_env_close_analogical_switch.find(read__tr_env_close_analogical_switch_state); - if(_obj__trid_37_ptr == _OpCache_tr_env_close_analogical_switch.end()) { - _trid_37 = state._tr_env_close_analogical_switch(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_close_analogical_switch_lock(_ProjectionRead__tr_env_close_analogical_switch_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_close_analogical_switch_lock(_ProjectionRead__tr_env_close_analogical_switch_mutex); + auto _obj__trid_37_ptr = _OpCache_tr_env_close_analogical_switch.find(read__tr_env_close_analogical_switch_state); + if(_obj__trid_37_ptr == _OpCache_tr_env_close_analogical_switch.end()) { + _trid_37 = state._tr_env_close_analogical_switch(); _OpCache_tr_env_close_analogical_switch.insert({read__tr_env_close_analogical_switch_state, _trid_37}); + } else { + _trid_37 = _obj__trid_37_ptr->second; } - } else { - _trid_37 = _obj__trid_37_ptr->second; } if(_trid_37) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_env_close_analogical_switch readState = state._projected_state_for_env_close_analogical_switch(); - - auto _OpCache_with_parameter_env_close_analogical_switch_ptr = _OpCache_env_close_analogical_switch.find(_trid_37); - if(_OpCache_with_parameter_env_close_analogical_switch_ptr == _OpCache_env_close_analogical_switch.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_close_analogical_switch_lock(_ProjectionRead_env_close_analogical_switch_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_env_close_analogical_switch_lock(_ProjectionRead_env_close_analogical_switch_mutex); + auto _OpCache_with_parameter_env_close_analogical_switch_ptr = _OpCache_env_close_analogical_switch.find(_trid_37); + if(_OpCache_with_parameter_env_close_analogical_switch_ptr == _OpCache_env_close_analogical_switch.end()) { copiedState.env_close_analogical_switch(); LandingGear_R6::_ProjectionWrite_env_close_analogical_switch writeState = copiedState._update_for_env_close_analogical_switch(); std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_analogical_switch, LandingGear_R6::_ProjectionWrite_env_close_analogical_switch, LandingGear_R6::_ProjectionRead_env_close_analogical_switch::Hash, LandingGear_R6::_ProjectionRead_env_close_analogical_switch::HashEqual> _OpCache_with_parameter_env_close_analogical_switch = std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_analogical_switch, LandingGear_R6::_ProjectionWrite_env_close_analogical_switch, LandingGear_R6::_ProjectionRead_env_close_analogical_switch::Hash, LandingGear_R6::_ProjectionRead_env_close_analogical_switch::HashEqual>(); _OpCache_with_parameter_env_close_analogical_switch.insert({readState, writeState}); _OpCache_env_close_analogical_switch.insert({_trid_37, _OpCache_with_parameter_env_close_analogical_switch}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_close_analogical_switch_lock(_ProjectionRead_env_close_analogical_switch_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_env_close_analogical_switch, LandingGear_R6::_ProjectionWrite_env_close_analogical_switch, LandingGear_R6::_ProjectionRead_env_close_analogical_switch::Hash, LandingGear_R6::_ProjectionRead_env_close_analogical_switch::HashEqual> _OpCache_with_parameter_env_close_analogical_switch = _OpCache_with_parameter_env_close_analogical_switch_ptr->second; auto writeState_ptr = _OpCache_with_parameter_env_close_analogical_switch.find(readState); if(writeState_ptr != _OpCache_with_parameter_env_close_analogical_switch.end()) { @@ -12868,7 +12624,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "env_close_analogical_switch"; result.insert(copiedState); { @@ -12878,33 +12633,29 @@ class ModelChecker { } LandingGear_R6::_ProjectionRead__tr_env_open_analogical_switch read__tr_env_open_analogical_switch_state = state._projected_state_for__tr_env_open_analogical_switch(); bool _trid_38 = false; - auto _obj__trid_38_ptr = _OpCache_tr_env_open_analogical_switch.find(read__tr_env_open_analogical_switch_state); - if(_obj__trid_38_ptr == _OpCache_tr_env_open_analogical_switch.end()) { - _trid_38 = state._tr_env_open_analogical_switch(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_open_analogical_switch_lock(_ProjectionRead__tr_env_open_analogical_switch_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_open_analogical_switch_lock(_ProjectionRead__tr_env_open_analogical_switch_mutex); + auto _obj__trid_38_ptr = _OpCache_tr_env_open_analogical_switch.find(read__tr_env_open_analogical_switch_state); + if(_obj__trid_38_ptr == _OpCache_tr_env_open_analogical_switch.end()) { + _trid_38 = state._tr_env_open_analogical_switch(); _OpCache_tr_env_open_analogical_switch.insert({read__tr_env_open_analogical_switch_state, _trid_38}); + } else { + _trid_38 = _obj__trid_38_ptr->second; } - } else { - _trid_38 = _obj__trid_38_ptr->second; } if(_trid_38) { LandingGear_R6 copiedState = state._copy(); LandingGear_R6::_ProjectionRead_env_open_analogical_switch readState = state._projected_state_for_env_open_analogical_switch(); - - auto _OpCache_with_parameter_env_open_analogical_switch_ptr = _OpCache_env_open_analogical_switch.find(_trid_38); - if(_OpCache_with_parameter_env_open_analogical_switch_ptr == _OpCache_env_open_analogical_switch.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_open_analogical_switch_lock(_ProjectionRead_env_open_analogical_switch_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_env_open_analogical_switch_lock(_ProjectionRead_env_open_analogical_switch_mutex); + auto _OpCache_with_parameter_env_open_analogical_switch_ptr = _OpCache_env_open_analogical_switch.find(_trid_38); + if(_OpCache_with_parameter_env_open_analogical_switch_ptr == _OpCache_env_open_analogical_switch.end()) { copiedState.env_open_analogical_switch(); LandingGear_R6::_ProjectionWrite_env_open_analogical_switch writeState = copiedState._update_for_env_open_analogical_switch(); std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_analogical_switch, LandingGear_R6::_ProjectionWrite_env_open_analogical_switch, LandingGear_R6::_ProjectionRead_env_open_analogical_switch::Hash, LandingGear_R6::_ProjectionRead_env_open_analogical_switch::HashEqual> _OpCache_with_parameter_env_open_analogical_switch = std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_analogical_switch, LandingGear_R6::_ProjectionWrite_env_open_analogical_switch, LandingGear_R6::_ProjectionRead_env_open_analogical_switch::Hash, LandingGear_R6::_ProjectionRead_env_open_analogical_switch::HashEqual>(); _OpCache_with_parameter_env_open_analogical_switch.insert({readState, writeState}); _OpCache_env_open_analogical_switch.insert({_trid_38, _OpCache_with_parameter_env_open_analogical_switch}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_open_analogical_switch_lock(_ProjectionRead_env_open_analogical_switch_mutex); + } else { std::unordered_map<LandingGear_R6::_ProjectionRead_env_open_analogical_switch, LandingGear_R6::_ProjectionWrite_env_open_analogical_switch, LandingGear_R6::_ProjectionRead_env_open_analogical_switch::Hash, LandingGear_R6::_ProjectionRead_env_open_analogical_switch::HashEqual> _OpCache_with_parameter_env_open_analogical_switch = _OpCache_with_parameter_env_open_analogical_switch_ptr->second; auto writeState_ptr = _OpCache_with_parameter_env_open_analogical_switch.find(readState); if(writeState_ptr != _OpCache_with_parameter_env_open_analogical_switch.end()) { @@ -12917,7 +12668,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "env_open_analogical_switch"; result.insert(copiedState); { diff --git a/benchmarks/model_checking_opreuse/C++/Lift_MC_Large.cpp b/benchmarks/model_checking_opreuse/C++/Lift_MC_Large.cpp index b96870822..8d859d21d 100644 --- a/benchmarks/model_checking_opreuse/C++/Lift_MC_Large.cpp +++ b/benchmarks/model_checking_opreuse/C++/Lift_MC_Large.cpp @@ -792,33 +792,29 @@ class ModelChecker { if(isCaching) { Lift_MC_Large::_ProjectionRead__tr_inc read__tr_inc_state = state._projected_state_for__tr_inc(); bool _trid_1 = false; - auto _obj__trid_1_ptr = _OpCache_tr_inc.find(read__tr_inc_state); - if(_obj__trid_1_ptr == _OpCache_tr_inc.end()) { - _trid_1 = state._tr_inc(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_inc_lock(_ProjectionRead__tr_inc_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_inc_lock(_ProjectionRead__tr_inc_mutex); + auto _obj__trid_1_ptr = _OpCache_tr_inc.find(read__tr_inc_state); + if(_obj__trid_1_ptr == _OpCache_tr_inc.end()) { + _trid_1 = state._tr_inc(); _OpCache_tr_inc.insert({read__tr_inc_state, _trid_1}); + } else { + _trid_1 = _obj__trid_1_ptr->second; } - } else { - _trid_1 = _obj__trid_1_ptr->second; } if(_trid_1) { Lift_MC_Large copiedState = state._copy(); Lift_MC_Large::_ProjectionRead_inc readState = state._projected_state_for_inc(); - - auto _OpCache_with_parameter_inc_ptr = _OpCache_inc.find(_trid_1); - if(_OpCache_with_parameter_inc_ptr == _OpCache_inc.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_inc_lock(_ProjectionRead_inc_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_inc_lock(_ProjectionRead_inc_mutex); + auto _OpCache_with_parameter_inc_ptr = _OpCache_inc.find(_trid_1); + if(_OpCache_with_parameter_inc_ptr == _OpCache_inc.end()) { copiedState.inc(); Lift_MC_Large::_ProjectionWrite_inc writeState = copiedState._update_for_inc(); std::unordered_map<Lift_MC_Large::_ProjectionRead_inc, Lift_MC_Large::_ProjectionWrite_inc, Lift_MC_Large::_ProjectionRead_inc::Hash, Lift_MC_Large::_ProjectionRead_inc::HashEqual> _OpCache_with_parameter_inc = std::unordered_map<Lift_MC_Large::_ProjectionRead_inc, Lift_MC_Large::_ProjectionWrite_inc, Lift_MC_Large::_ProjectionRead_inc::Hash, Lift_MC_Large::_ProjectionRead_inc::HashEqual>(); _OpCache_with_parameter_inc.insert({readState, writeState}); _OpCache_inc.insert({_trid_1, _OpCache_with_parameter_inc}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_inc_lock(_ProjectionRead_inc_mutex); + } else { std::unordered_map<Lift_MC_Large::_ProjectionRead_inc, Lift_MC_Large::_ProjectionWrite_inc, Lift_MC_Large::_ProjectionRead_inc::Hash, Lift_MC_Large::_ProjectionRead_inc::HashEqual> _OpCache_with_parameter_inc = _OpCache_with_parameter_inc_ptr->second; auto writeState_ptr = _OpCache_with_parameter_inc.find(readState); if(writeState_ptr != _OpCache_with_parameter_inc.end()) { @@ -831,7 +827,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "inc"; result.insert(copiedState); { @@ -841,33 +836,29 @@ class ModelChecker { } Lift_MC_Large::_ProjectionRead__tr_dec read__tr_dec_state = state._projected_state_for__tr_dec(); bool _trid_2 = false; - auto _obj__trid_2_ptr = _OpCache_tr_dec.find(read__tr_dec_state); - if(_obj__trid_2_ptr == _OpCache_tr_dec.end()) { - _trid_2 = state._tr_dec(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_dec_lock(_ProjectionRead__tr_dec_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_dec_lock(_ProjectionRead__tr_dec_mutex); + auto _obj__trid_2_ptr = _OpCache_tr_dec.find(read__tr_dec_state); + if(_obj__trid_2_ptr == _OpCache_tr_dec.end()) { + _trid_2 = state._tr_dec(); _OpCache_tr_dec.insert({read__tr_dec_state, _trid_2}); + } else { + _trid_2 = _obj__trid_2_ptr->second; } - } else { - _trid_2 = _obj__trid_2_ptr->second; } if(_trid_2) { Lift_MC_Large copiedState = state._copy(); Lift_MC_Large::_ProjectionRead_dec readState = state._projected_state_for_dec(); - - auto _OpCache_with_parameter_dec_ptr = _OpCache_dec.find(_trid_2); - if(_OpCache_with_parameter_dec_ptr == _OpCache_dec.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_dec_lock(_ProjectionRead_dec_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_dec_lock(_ProjectionRead_dec_mutex); + auto _OpCache_with_parameter_dec_ptr = _OpCache_dec.find(_trid_2); + if(_OpCache_with_parameter_dec_ptr == _OpCache_dec.end()) { copiedState.dec(); Lift_MC_Large::_ProjectionWrite_dec writeState = copiedState._update_for_dec(); std::unordered_map<Lift_MC_Large::_ProjectionRead_dec, Lift_MC_Large::_ProjectionWrite_dec, Lift_MC_Large::_ProjectionRead_dec::Hash, Lift_MC_Large::_ProjectionRead_dec::HashEqual> _OpCache_with_parameter_dec = std::unordered_map<Lift_MC_Large::_ProjectionRead_dec, Lift_MC_Large::_ProjectionWrite_dec, Lift_MC_Large::_ProjectionRead_dec::Hash, Lift_MC_Large::_ProjectionRead_dec::HashEqual>(); _OpCache_with_parameter_dec.insert({readState, writeState}); _OpCache_dec.insert({_trid_2, _OpCache_with_parameter_dec}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_dec_lock(_ProjectionRead_dec_mutex); + } else { std::unordered_map<Lift_MC_Large::_ProjectionRead_dec, Lift_MC_Large::_ProjectionWrite_dec, Lift_MC_Large::_ProjectionRead_dec::Hash, Lift_MC_Large::_ProjectionRead_dec::HashEqual> _OpCache_with_parameter_dec = _OpCache_with_parameter_dec_ptr->second; auto writeState_ptr = _OpCache_with_parameter_dec.find(readState); if(writeState_ptr != _OpCache_with_parameter_dec.end()) { @@ -880,7 +871,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "dec"; result.insert(copiedState); { diff --git a/benchmarks/model_checking_opreuse/C++/Makefile b/benchmarks/model_checking_opreuse/C++/Makefile index 41de09df1..4d185e250 100644 --- a/benchmarks/model_checking_opreuse/C++/Makefile +++ b/benchmarks/model_checking_opreuse/C++/Makefile @@ -12,19 +12,19 @@ CPPC ?= clang++ IMMERFLAGS=-DIMMER_NO_THREAD_SAFETY CPPFLAGS ?= -std=c++14 -O1 -flto -mtune=native -fbracket-depth=1000 STRATEGY=mixed -THREADS=1 -CACHING=false +THREADS=8 +CACHING=true OUTPUT=runtimes.txt %.exec : %.cpp $(CPPC) $(CPPFLAGS) -o $@ $< % : %.exec - timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) - timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) - timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) - timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) - timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) + -timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) + -timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) + -timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) + -timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) + -timeout 60m gtime -f "%C %E %M" -ao $(OUTPUT) ./$< $(STRATEGY) $(THREADS) $(CACHING) clean: rm -f *.exec diff --git a/benchmarks/model_checking_opreuse/C++/QueensWithEvents_4.cpp b/benchmarks/model_checking_opreuse/C++/QueensWithEvents_4.cpp index e0463e3e1..317e0d216 100644 --- a/benchmarks/model_checking_opreuse/C++/QueensWithEvents_4.cpp +++ b/benchmarks/model_checking_opreuse/C++/QueensWithEvents_4.cpp @@ -621,91 +621,81 @@ class ModelChecker { std::unordered_set<QueensWithEvents_4, QueensWithEvents_4::Hash, QueensWithEvents_4::HashEqual> result = std::unordered_set<QueensWithEvents_4, QueensWithEvents_4::Hash, QueensWithEvents_4::HashEqual>(); if(isCaching) { QueensWithEvents_4::_ProjectionRead__tr_Solve read__tr_Solve_state = state._projected_state_for__tr_Solve(); - auto _trid_1_ptr = _OpCache_tr_Solve.find(read__tr_Solve_state); - if(_trid_1_ptr == _OpCache_tr_Solve.end()) { - BSet<BRelation<BInteger, BInteger >> _trid_1 = state._tr_Solve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Solve_lock(_ProjectionRead__tr_Solve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Solve_lock(_ProjectionRead__tr_Solve_mutex); + auto _trid_1_ptr = _OpCache_tr_Solve.find(read__tr_Solve_state); + if(_trid_1_ptr == _OpCache_tr_Solve.end()) { + BSet<BRelation<BInteger, BInteger >> _trid_1 = state._tr_Solve(); _OpCache_tr_Solve.insert({read__tr_Solve_state, _trid_1}); - } - for(const BRelation<BInteger, BInteger >& param : _trid_1) { - BRelation<BInteger, BInteger > _tmp_1 = param; - - QueensWithEvents_4 copiedState = state._copy(); - QueensWithEvents_4::_ProjectionRead_Solve readState = state._projected_state_for_Solve(); + for(const BRelation<BInteger, BInteger >& param : _trid_1) { + BRelation<BInteger, BInteger > _tmp_1 = param; - auto _OpCache_with_parameter_Solve_ptr = _OpCache_Solve.find(param); - if(_OpCache_with_parameter_Solve_ptr == _OpCache_Solve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Solve_lock(_ProjectionRead_Solve_mutex); - copiedState.Solve(_tmp_1); - QueensWithEvents_4::_ProjectionWrite_Solve writeState = copiedState._update_for_Solve(); - std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual>(); - _OpCache_with_parameter_Solve.insert({readState, writeState}); - _OpCache_Solve.insert({param, _OpCache_with_parameter_Solve}); - } - } else { + QueensWithEvents_4 copiedState = state._copy(); + QueensWithEvents_4::_ProjectionRead_Solve readState = state._projected_state_for_Solve(); { std::unique_lock<std::mutex> _ProjectionRead_Solve_lock(_ProjectionRead_Solve_mutex); - std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = _OpCache_with_parameter_Solve_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Solve.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Solve.end()) { - QueensWithEvents_4::_ProjectionWrite_Solve writeState = writeState_ptr->second; - copiedState._apply_update_for_Solve(writeState); - } else { + auto _OpCache_with_parameter_Solve_ptr = _OpCache_Solve.find(param); + if(_OpCache_with_parameter_Solve_ptr == _OpCache_Solve.end()) { copiedState.Solve(_tmp_1); QueensWithEvents_4::_ProjectionWrite_Solve writeState = copiedState._update_for_Solve(); + std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual>(); _OpCache_with_parameter_Solve.insert({readState, writeState}); + _OpCache_Solve.insert({param, _OpCache_with_parameter_Solve}); + } else { + std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = _OpCache_with_parameter_Solve_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Solve.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Solve.end()) { + QueensWithEvents_4::_ProjectionWrite_Solve writeState = writeState_ptr->second; + copiedState._apply_update_for_Solve(writeState); + } else { + copiedState.Solve(_tmp_1); + QueensWithEvents_4::_ProjectionWrite_Solve writeState = copiedState._update_for_Solve(); + _OpCache_with_parameter_Solve.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Solve"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BRelation<BInteger, BInteger >> _trid_1 = _trid_1_ptr->second; - for(const BRelation<BInteger, BInteger >& param : _trid_1) { - BRelation<BInteger, BInteger > _tmp_1 = param; - - QueensWithEvents_4 copiedState = state._copy(); - QueensWithEvents_4::_ProjectionRead_Solve readState = state._projected_state_for_Solve(); - - auto _OpCache_with_parameter_Solve_ptr = _OpCache_Solve.find(param); - if(_OpCache_with_parameter_Solve_ptr == _OpCache_Solve.end()) { + copiedState.stateAccessedVia = "Solve"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Solve_lock(_ProjectionRead_Solve_mutex); - copiedState.Solve(_tmp_1); - QueensWithEvents_4::_ProjectionWrite_Solve writeState = copiedState._update_for_Solve(); - std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual>(); - _OpCache_with_parameter_Solve.insert({readState, writeState}); - _OpCache_Solve.insert({param, _OpCache_with_parameter_Solve}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BRelation<BInteger, BInteger >> _trid_1 = _trid_1_ptr->second; + for(const BRelation<BInteger, BInteger >& param : _trid_1) { + BRelation<BInteger, BInteger > _tmp_1 = param; + + QueensWithEvents_4 copiedState = state._copy(); + QueensWithEvents_4::_ProjectionRead_Solve readState = state._projected_state_for_Solve(); { std::unique_lock<std::mutex> _ProjectionRead_Solve_lock(_ProjectionRead_Solve_mutex); - std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = _OpCache_with_parameter_Solve_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Solve.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Solve.end()) { - QueensWithEvents_4::_ProjectionWrite_Solve writeState = writeState_ptr->second; - copiedState._apply_update_for_Solve(writeState); - } else { + auto _OpCache_with_parameter_Solve_ptr = _OpCache_Solve.find(param); + if(_OpCache_with_parameter_Solve_ptr == _OpCache_Solve.end()) { copiedState.Solve(_tmp_1); QueensWithEvents_4::_ProjectionWrite_Solve writeState = copiedState._update_for_Solve(); + std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual>(); _OpCache_with_parameter_Solve.insert({readState, writeState}); + _OpCache_Solve.insert({param, _OpCache_with_parameter_Solve}); + } else { + std::unordered_map<QueensWithEvents_4::_ProjectionRead_Solve, QueensWithEvents_4::_ProjectionWrite_Solve, QueensWithEvents_4::_ProjectionRead_Solve::Hash, QueensWithEvents_4::_ProjectionRead_Solve::HashEqual> _OpCache_with_parameter_Solve = _OpCache_with_parameter_Solve_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Solve.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Solve.end()) { + QueensWithEvents_4::_ProjectionWrite_Solve writeState = writeState_ptr->second; + copiedState._apply_update_for_Solve(writeState); + } else { + copiedState.Solve(_tmp_1); + QueensWithEvents_4::_ProjectionWrite_Solve writeState = copiedState._update_for_Solve(); + _OpCache_with_parameter_Solve.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Solve"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Solve"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/Train_1_beebook_deterministic_MC_POR_v3.cpp b/benchmarks/model_checking_opreuse/C++/Train_1_beebook_deterministic_MC_POR_v3.cpp index 4683abc6f..37b317493 100644 --- a/benchmarks/model_checking_opreuse/C++/Train_1_beebook_deterministic_MC_POR_v3.cpp +++ b/benchmarks/model_checking_opreuse/C++/Train_1_beebook_deterministic_MC_POR_v3.cpp @@ -3513,714 +3513,634 @@ class ModelChecker { std::unordered_set<Train_1_beebook_deterministic_MC_POR_v3, Train_1_beebook_deterministic_MC_POR_v3::Hash, Train_1_beebook_deterministic_MC_POR_v3::HashEqual> result = std::unordered_set<Train_1_beebook_deterministic_MC_POR_v3, Train_1_beebook_deterministic_MC_POR_v3::Hash, Train_1_beebook_deterministic_MC_POR_v3::HashEqual>(); if(isCaching) { Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_route_reservation read__tr_route_reservation_state = state._projected_state_for__tr_route_reservation(); - auto _trid_1_ptr = _OpCache_tr_route_reservation.find(read__tr_route_reservation_state); - if(_trid_1_ptr == _OpCache_tr_route_reservation.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_1 = state._tr_route_reservation(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_route_reservation_lock(_ProjectionRead__tr_route_reservation_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_route_reservation_lock(_ProjectionRead__tr_route_reservation_mutex); + auto _trid_1_ptr = _OpCache_tr_route_reservation.find(read__tr_route_reservation_state); + if(_trid_1_ptr == _OpCache_tr_route_reservation.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_1 = state._tr_route_reservation(); _OpCache_tr_route_reservation.insert({read__tr_route_reservation_state, _trid_1}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_1) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation readState = state._projected_state_for_route_reservation(); + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_1) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - auto _OpCache_with_parameter_route_reservation_ptr = _OpCache_route_reservation.find(param); - if(_OpCache_with_parameter_route_reservation_ptr == _OpCache_route_reservation.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_route_reservation_lock(_ProjectionRead_route_reservation_mutex); - copiedState.route_reservation(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = copiedState._update_for_route_reservation(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual>(); - _OpCache_with_parameter_route_reservation.insert({readState, writeState}); - _OpCache_route_reservation.insert({param, _OpCache_with_parameter_route_reservation}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation readState = state._projected_state_for_route_reservation(); { std::unique_lock<std::mutex> _ProjectionRead_route_reservation_lock(_ProjectionRead_route_reservation_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = _OpCache_with_parameter_route_reservation_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_route_reservation.find(readState); - if(writeState_ptr != _OpCache_with_parameter_route_reservation.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = writeState_ptr->second; - copiedState._apply_update_for_route_reservation(writeState); - } else { + auto _OpCache_with_parameter_route_reservation_ptr = _OpCache_route_reservation.find(param); + if(_OpCache_with_parameter_route_reservation_ptr == _OpCache_route_reservation.end()) { copiedState.route_reservation(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = copiedState._update_for_route_reservation(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual>(); _OpCache_with_parameter_route_reservation.insert({readState, writeState}); + _OpCache_route_reservation.insert({param, _OpCache_with_parameter_route_reservation}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = _OpCache_with_parameter_route_reservation_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_route_reservation.find(readState); + if(writeState_ptr != _OpCache_with_parameter_route_reservation.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = writeState_ptr->second; + copiedState._apply_update_for_route_reservation(writeState); + } else { + copiedState.route_reservation(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = copiedState._update_for_route_reservation(); + _OpCache_with_parameter_route_reservation.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "route_reservation"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_1 = _trid_1_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_1) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation readState = state._projected_state_for_route_reservation(); - - auto _OpCache_with_parameter_route_reservation_ptr = _OpCache_route_reservation.find(param); - if(_OpCache_with_parameter_route_reservation_ptr == _OpCache_route_reservation.end()) { + copiedState.stateAccessedVia = "route_reservation"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_route_reservation_lock(_ProjectionRead_route_reservation_mutex); - copiedState.route_reservation(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = copiedState._update_for_route_reservation(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual>(); - _OpCache_with_parameter_route_reservation.insert({readState, writeState}); - _OpCache_route_reservation.insert({param, _OpCache_with_parameter_route_reservation}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_1 = _trid_1_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_1) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation readState = state._projected_state_for_route_reservation(); { std::unique_lock<std::mutex> _ProjectionRead_route_reservation_lock(_ProjectionRead_route_reservation_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = _OpCache_with_parameter_route_reservation_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_route_reservation.find(readState); - if(writeState_ptr != _OpCache_with_parameter_route_reservation.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = writeState_ptr->second; - copiedState._apply_update_for_route_reservation(writeState); - } else { + auto _OpCache_with_parameter_route_reservation_ptr = _OpCache_route_reservation.find(param); + if(_OpCache_with_parameter_route_reservation_ptr == _OpCache_route_reservation.end()) { copiedState.route_reservation(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = copiedState._update_for_route_reservation(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual>(); _OpCache_with_parameter_route_reservation.insert({readState, writeState}); + _OpCache_route_reservation.insert({param, _OpCache_with_parameter_route_reservation}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_reservation::HashEqual> _OpCache_with_parameter_route_reservation = _OpCache_with_parameter_route_reservation_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_route_reservation.find(readState); + if(writeState_ptr != _OpCache_with_parameter_route_reservation.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = writeState_ptr->second; + copiedState._apply_update_for_route_reservation(writeState); + } else { + copiedState.route_reservation(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_reservation writeState = copiedState._update_for_route_reservation(); + _OpCache_with_parameter_route_reservation.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "route_reservation"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "route_reservation"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_route_freeing read__tr_route_freeing_state = state._projected_state_for__tr_route_freeing(); - auto _trid_2_ptr = _OpCache_tr_route_freeing.find(read__tr_route_freeing_state); - if(_trid_2_ptr == _OpCache_tr_route_freeing.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_2 = state._tr_route_freeing(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_route_freeing_lock(_ProjectionRead__tr_route_freeing_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_route_freeing_lock(_ProjectionRead__tr_route_freeing_mutex); + auto _trid_2_ptr = _OpCache_tr_route_freeing.find(read__tr_route_freeing_state); + if(_trid_2_ptr == _OpCache_tr_route_freeing.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_2 = state._tr_route_freeing(); _OpCache_tr_route_freeing.insert({read__tr_route_freeing_state, _trid_2}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_2) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing readState = state._projected_state_for_route_freeing(); + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_2) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - auto _OpCache_with_parameter_route_freeing_ptr = _OpCache_route_freeing.find(param); - if(_OpCache_with_parameter_route_freeing_ptr == _OpCache_route_freeing.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_route_freeing_lock(_ProjectionRead_route_freeing_mutex); - copiedState.route_freeing(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = copiedState._update_for_route_freeing(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual>(); - _OpCache_with_parameter_route_freeing.insert({readState, writeState}); - _OpCache_route_freeing.insert({param, _OpCache_with_parameter_route_freeing}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing readState = state._projected_state_for_route_freeing(); { std::unique_lock<std::mutex> _ProjectionRead_route_freeing_lock(_ProjectionRead_route_freeing_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = _OpCache_with_parameter_route_freeing_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_route_freeing.find(readState); - if(writeState_ptr != _OpCache_with_parameter_route_freeing.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = writeState_ptr->second; - copiedState._apply_update_for_route_freeing(writeState); - } else { + auto _OpCache_with_parameter_route_freeing_ptr = _OpCache_route_freeing.find(param); + if(_OpCache_with_parameter_route_freeing_ptr == _OpCache_route_freeing.end()) { copiedState.route_freeing(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = copiedState._update_for_route_freeing(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual>(); _OpCache_with_parameter_route_freeing.insert({readState, writeState}); + _OpCache_route_freeing.insert({param, _OpCache_with_parameter_route_freeing}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = _OpCache_with_parameter_route_freeing_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_route_freeing.find(readState); + if(writeState_ptr != _OpCache_with_parameter_route_freeing.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = writeState_ptr->second; + copiedState._apply_update_for_route_freeing(writeState); + } else { + copiedState.route_freeing(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = copiedState._update_for_route_freeing(); + _OpCache_with_parameter_route_freeing.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "route_freeing"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_2 = _trid_2_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_2) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing readState = state._projected_state_for_route_freeing(); - - auto _OpCache_with_parameter_route_freeing_ptr = _OpCache_route_freeing.find(param); - if(_OpCache_with_parameter_route_freeing_ptr == _OpCache_route_freeing.end()) { + copiedState.stateAccessedVia = "route_freeing"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_route_freeing_lock(_ProjectionRead_route_freeing_mutex); - copiedState.route_freeing(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = copiedState._update_for_route_freeing(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual>(); - _OpCache_with_parameter_route_freeing.insert({readState, writeState}); - _OpCache_route_freeing.insert({param, _OpCache_with_parameter_route_freeing}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_2 = _trid_2_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_2) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing readState = state._projected_state_for_route_freeing(); { std::unique_lock<std::mutex> _ProjectionRead_route_freeing_lock(_ProjectionRead_route_freeing_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = _OpCache_with_parameter_route_freeing_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_route_freeing.find(readState); - if(writeState_ptr != _OpCache_with_parameter_route_freeing.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = writeState_ptr->second; - copiedState._apply_update_for_route_freeing(writeState); - } else { + auto _OpCache_with_parameter_route_freeing_ptr = _OpCache_route_freeing.find(param); + if(_OpCache_with_parameter_route_freeing_ptr == _OpCache_route_freeing.end()) { copiedState.route_freeing(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = copiedState._update_for_route_freeing(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual>(); _OpCache_with_parameter_route_freeing.insert({readState, writeState}); + _OpCache_route_freeing.insert({param, _OpCache_with_parameter_route_freeing}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_freeing::HashEqual> _OpCache_with_parameter_route_freeing = _OpCache_with_parameter_route_freeing_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_route_freeing.find(readState); + if(writeState_ptr != _OpCache_with_parameter_route_freeing.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = writeState_ptr->second; + copiedState._apply_update_for_route_freeing(writeState); + } else { + copiedState.route_freeing(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_freeing writeState = copiedState._update_for_route_freeing(); + _OpCache_with_parameter_route_freeing.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "route_freeing"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "route_freeing"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_FRONT_MOVE_1 read__tr_FRONT_MOVE_1_state = state._projected_state_for__tr_FRONT_MOVE_1(); - auto _trid_3_ptr = _OpCache_tr_FRONT_MOVE_1.find(read__tr_FRONT_MOVE_1_state); - if(_trid_3_ptr == _OpCache_tr_FRONT_MOVE_1.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_3 = state._tr_FRONT_MOVE_1(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_FRONT_MOVE_1_lock(_ProjectionRead__tr_FRONT_MOVE_1_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_FRONT_MOVE_1_lock(_ProjectionRead__tr_FRONT_MOVE_1_mutex); + auto _trid_3_ptr = _OpCache_tr_FRONT_MOVE_1.find(read__tr_FRONT_MOVE_1_state); + if(_trid_3_ptr == _OpCache_tr_FRONT_MOVE_1.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_3 = state._tr_FRONT_MOVE_1(); _OpCache_tr_FRONT_MOVE_1.insert({read__tr_FRONT_MOVE_1_state, _trid_3}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_3) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1 readState = state._projected_state_for_FRONT_MOVE_1(); + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_3) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - auto _OpCache_with_parameter_FRONT_MOVE_1_ptr = _OpCache_FRONT_MOVE_1.find(param); - if(_OpCache_with_parameter_FRONT_MOVE_1_ptr == _OpCache_FRONT_MOVE_1.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_1_lock(_ProjectionRead_FRONT_MOVE_1_mutex); - copiedState.FRONT_MOVE_1(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = copiedState._update_for_FRONT_MOVE_1(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual>(); - _OpCache_with_parameter_FRONT_MOVE_1.insert({readState, writeState}); - _OpCache_FRONT_MOVE_1.insert({param, _OpCache_with_parameter_FRONT_MOVE_1}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1 readState = state._projected_state_for_FRONT_MOVE_1(); { std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_1_lock(_ProjectionRead_FRONT_MOVE_1_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = _OpCache_with_parameter_FRONT_MOVE_1_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_1.find(readState); - if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_1.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = writeState_ptr->second; - copiedState._apply_update_for_FRONT_MOVE_1(writeState); - } else { + auto _OpCache_with_parameter_FRONT_MOVE_1_ptr = _OpCache_FRONT_MOVE_1.find(param); + if(_OpCache_with_parameter_FRONT_MOVE_1_ptr == _OpCache_FRONT_MOVE_1.end()) { copiedState.FRONT_MOVE_1(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = copiedState._update_for_FRONT_MOVE_1(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual>(); _OpCache_with_parameter_FRONT_MOVE_1.insert({readState, writeState}); + _OpCache_FRONT_MOVE_1.insert({param, _OpCache_with_parameter_FRONT_MOVE_1}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = _OpCache_with_parameter_FRONT_MOVE_1_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_1.find(readState); + if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_1.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = writeState_ptr->second; + copiedState._apply_update_for_FRONT_MOVE_1(writeState); + } else { + copiedState.FRONT_MOVE_1(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = copiedState._update_for_FRONT_MOVE_1(); + _OpCache_with_parameter_FRONT_MOVE_1.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "FRONT_MOVE_1"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_3 = _trid_3_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_3) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1 readState = state._projected_state_for_FRONT_MOVE_1(); - - auto _OpCache_with_parameter_FRONT_MOVE_1_ptr = _OpCache_FRONT_MOVE_1.find(param); - if(_OpCache_with_parameter_FRONT_MOVE_1_ptr == _OpCache_FRONT_MOVE_1.end()) { + copiedState.stateAccessedVia = "FRONT_MOVE_1"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_1_lock(_ProjectionRead_FRONT_MOVE_1_mutex); - copiedState.FRONT_MOVE_1(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = copiedState._update_for_FRONT_MOVE_1(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual>(); - _OpCache_with_parameter_FRONT_MOVE_1.insert({readState, writeState}); - _OpCache_FRONT_MOVE_1.insert({param, _OpCache_with_parameter_FRONT_MOVE_1}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_3 = _trid_3_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_3) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1 readState = state._projected_state_for_FRONT_MOVE_1(); { std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_1_lock(_ProjectionRead_FRONT_MOVE_1_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = _OpCache_with_parameter_FRONT_MOVE_1_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_1.find(readState); - if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_1.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = writeState_ptr->second; - copiedState._apply_update_for_FRONT_MOVE_1(writeState); - } else { + auto _OpCache_with_parameter_FRONT_MOVE_1_ptr = _OpCache_FRONT_MOVE_1.find(param); + if(_OpCache_with_parameter_FRONT_MOVE_1_ptr == _OpCache_FRONT_MOVE_1.end()) { copiedState.FRONT_MOVE_1(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = copiedState._update_for_FRONT_MOVE_1(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual>(); _OpCache_with_parameter_FRONT_MOVE_1.insert({readState, writeState}); + _OpCache_FRONT_MOVE_1.insert({param, _OpCache_with_parameter_FRONT_MOVE_1}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_1::HashEqual> _OpCache_with_parameter_FRONT_MOVE_1 = _OpCache_with_parameter_FRONT_MOVE_1_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_1.find(readState); + if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_1.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = writeState_ptr->second; + copiedState._apply_update_for_FRONT_MOVE_1(writeState); + } else { + copiedState.FRONT_MOVE_1(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_1 writeState = copiedState._update_for_FRONT_MOVE_1(); + _OpCache_with_parameter_FRONT_MOVE_1.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "FRONT_MOVE_1"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "FRONT_MOVE_1"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_FRONT_MOVE_2 read__tr_FRONT_MOVE_2_state = state._projected_state_for__tr_FRONT_MOVE_2(); - auto _trid_4_ptr = _OpCache_tr_FRONT_MOVE_2.find(read__tr_FRONT_MOVE_2_state); - if(_trid_4_ptr == _OpCache_tr_FRONT_MOVE_2.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_4 = state._tr_FRONT_MOVE_2(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_FRONT_MOVE_2_lock(_ProjectionRead__tr_FRONT_MOVE_2_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_FRONT_MOVE_2_lock(_ProjectionRead__tr_FRONT_MOVE_2_mutex); + auto _trid_4_ptr = _OpCache_tr_FRONT_MOVE_2.find(read__tr_FRONT_MOVE_2_state); + if(_trid_4_ptr == _OpCache_tr_FRONT_MOVE_2.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_4 = state._tr_FRONT_MOVE_2(); _OpCache_tr_FRONT_MOVE_2.insert({read__tr_FRONT_MOVE_2_state, _trid_4}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_4) { - Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2 readState = state._projected_state_for_FRONT_MOVE_2(); + for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_4) { + Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - auto _OpCache_with_parameter_FRONT_MOVE_2_ptr = _OpCache_FRONT_MOVE_2.find(param); - if(_OpCache_with_parameter_FRONT_MOVE_2_ptr == _OpCache_FRONT_MOVE_2.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_2_lock(_ProjectionRead_FRONT_MOVE_2_mutex); - copiedState.FRONT_MOVE_2(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = copiedState._update_for_FRONT_MOVE_2(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual>(); - _OpCache_with_parameter_FRONT_MOVE_2.insert({readState, writeState}); - _OpCache_FRONT_MOVE_2.insert({param, _OpCache_with_parameter_FRONT_MOVE_2}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2 readState = state._projected_state_for_FRONT_MOVE_2(); { std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_2_lock(_ProjectionRead_FRONT_MOVE_2_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = _OpCache_with_parameter_FRONT_MOVE_2_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_2.find(readState); - if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_2.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = writeState_ptr->second; - copiedState._apply_update_for_FRONT_MOVE_2(writeState); - } else { + auto _OpCache_with_parameter_FRONT_MOVE_2_ptr = _OpCache_FRONT_MOVE_2.find(param); + if(_OpCache_with_parameter_FRONT_MOVE_2_ptr == _OpCache_FRONT_MOVE_2.end()) { copiedState.FRONT_MOVE_2(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = copiedState._update_for_FRONT_MOVE_2(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual>(); _OpCache_with_parameter_FRONT_MOVE_2.insert({readState, writeState}); + _OpCache_FRONT_MOVE_2.insert({param, _OpCache_with_parameter_FRONT_MOVE_2}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = _OpCache_with_parameter_FRONT_MOVE_2_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_2.find(readState); + if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_2.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = writeState_ptr->second; + copiedState._apply_update_for_FRONT_MOVE_2(writeState); + } else { + copiedState.FRONT_MOVE_2(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = copiedState._update_for_FRONT_MOVE_2(); + _OpCache_with_parameter_FRONT_MOVE_2.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "FRONT_MOVE_2"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_4 = _trid_4_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_4) { - Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2 readState = state._projected_state_for_FRONT_MOVE_2(); - - auto _OpCache_with_parameter_FRONT_MOVE_2_ptr = _OpCache_FRONT_MOVE_2.find(param); - if(_OpCache_with_parameter_FRONT_MOVE_2_ptr == _OpCache_FRONT_MOVE_2.end()) { + copiedState.stateAccessedVia = "FRONT_MOVE_2"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_2_lock(_ProjectionRead_FRONT_MOVE_2_mutex); - copiedState.FRONT_MOVE_2(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = copiedState._update_for_FRONT_MOVE_2(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual>(); - _OpCache_with_parameter_FRONT_MOVE_2.insert({readState, writeState}); - _OpCache_FRONT_MOVE_2.insert({param, _OpCache_with_parameter_FRONT_MOVE_2}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_4 = _trid_4_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_4) { + Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2 readState = state._projected_state_for_FRONT_MOVE_2(); { std::unique_lock<std::mutex> _ProjectionRead_FRONT_MOVE_2_lock(_ProjectionRead_FRONT_MOVE_2_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = _OpCache_with_parameter_FRONT_MOVE_2_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_2.find(readState); - if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_2.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = writeState_ptr->second; - copiedState._apply_update_for_FRONT_MOVE_2(writeState); - } else { + auto _OpCache_with_parameter_FRONT_MOVE_2_ptr = _OpCache_FRONT_MOVE_2.find(param); + if(_OpCache_with_parameter_FRONT_MOVE_2_ptr == _OpCache_FRONT_MOVE_2.end()) { copiedState.FRONT_MOVE_2(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = copiedState._update_for_FRONT_MOVE_2(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual>(); _OpCache_with_parameter_FRONT_MOVE_2.insert({readState, writeState}); + _OpCache_FRONT_MOVE_2.insert({param, _OpCache_with_parameter_FRONT_MOVE_2}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_FRONT_MOVE_2::HashEqual> _OpCache_with_parameter_FRONT_MOVE_2 = _OpCache_with_parameter_FRONT_MOVE_2_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_FRONT_MOVE_2.find(readState); + if(writeState_ptr != _OpCache_with_parameter_FRONT_MOVE_2.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = writeState_ptr->second; + copiedState._apply_update_for_FRONT_MOVE_2(writeState); + } else { + copiedState.FRONT_MOVE_2(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_FRONT_MOVE_2 writeState = copiedState._update_for_FRONT_MOVE_2(); + _OpCache_with_parameter_FRONT_MOVE_2.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "FRONT_MOVE_2"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "FRONT_MOVE_2"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_BACK_MOVE_1 read__tr_BACK_MOVE_1_state = state._projected_state_for__tr_BACK_MOVE_1(); - auto _trid_5_ptr = _OpCache_tr_BACK_MOVE_1.find(read__tr_BACK_MOVE_1_state); - if(_trid_5_ptr == _OpCache_tr_BACK_MOVE_1.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_5 = state._tr_BACK_MOVE_1(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_BACK_MOVE_1_lock(_ProjectionRead__tr_BACK_MOVE_1_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_BACK_MOVE_1_lock(_ProjectionRead__tr_BACK_MOVE_1_mutex); + auto _trid_5_ptr = _OpCache_tr_BACK_MOVE_1.find(read__tr_BACK_MOVE_1_state); + if(_trid_5_ptr == _OpCache_tr_BACK_MOVE_1.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_5 = state._tr_BACK_MOVE_1(); _OpCache_tr_BACK_MOVE_1.insert({read__tr_BACK_MOVE_1_state, _trid_5}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_5) { - Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1 readState = state._projected_state_for_BACK_MOVE_1(); + for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_5) { + Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - auto _OpCache_with_parameter_BACK_MOVE_1_ptr = _OpCache_BACK_MOVE_1.find(param); - if(_OpCache_with_parameter_BACK_MOVE_1_ptr == _OpCache_BACK_MOVE_1.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_1_lock(_ProjectionRead_BACK_MOVE_1_mutex); - copiedState.BACK_MOVE_1(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = copiedState._update_for_BACK_MOVE_1(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual>(); - _OpCache_with_parameter_BACK_MOVE_1.insert({readState, writeState}); - _OpCache_BACK_MOVE_1.insert({param, _OpCache_with_parameter_BACK_MOVE_1}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1 readState = state._projected_state_for_BACK_MOVE_1(); { std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_1_lock(_ProjectionRead_BACK_MOVE_1_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = _OpCache_with_parameter_BACK_MOVE_1_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_1.find(readState); - if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_1.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = writeState_ptr->second; - copiedState._apply_update_for_BACK_MOVE_1(writeState); - } else { + auto _OpCache_with_parameter_BACK_MOVE_1_ptr = _OpCache_BACK_MOVE_1.find(param); + if(_OpCache_with_parameter_BACK_MOVE_1_ptr == _OpCache_BACK_MOVE_1.end()) { copiedState.BACK_MOVE_1(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = copiedState._update_for_BACK_MOVE_1(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual>(); _OpCache_with_parameter_BACK_MOVE_1.insert({readState, writeState}); + _OpCache_BACK_MOVE_1.insert({param, _OpCache_with_parameter_BACK_MOVE_1}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = _OpCache_with_parameter_BACK_MOVE_1_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_1.find(readState); + if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_1.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = writeState_ptr->second; + copiedState._apply_update_for_BACK_MOVE_1(writeState); + } else { + copiedState.BACK_MOVE_1(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = copiedState._update_for_BACK_MOVE_1(); + _OpCache_with_parameter_BACK_MOVE_1.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "BACK_MOVE_1"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_5 = _trid_5_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_5) { - Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1 readState = state._projected_state_for_BACK_MOVE_1(); - - auto _OpCache_with_parameter_BACK_MOVE_1_ptr = _OpCache_BACK_MOVE_1.find(param); - if(_OpCache_with_parameter_BACK_MOVE_1_ptr == _OpCache_BACK_MOVE_1.end()) { + copiedState.stateAccessedVia = "BACK_MOVE_1"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_1_lock(_ProjectionRead_BACK_MOVE_1_mutex); - copiedState.BACK_MOVE_1(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = copiedState._update_for_BACK_MOVE_1(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual>(); - _OpCache_with_parameter_BACK_MOVE_1.insert({readState, writeState}); - _OpCache_BACK_MOVE_1.insert({param, _OpCache_with_parameter_BACK_MOVE_1}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_5 = _trid_5_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_5) { + Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1 readState = state._projected_state_for_BACK_MOVE_1(); { std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_1_lock(_ProjectionRead_BACK_MOVE_1_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = _OpCache_with_parameter_BACK_MOVE_1_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_1.find(readState); - if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_1.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = writeState_ptr->second; - copiedState._apply_update_for_BACK_MOVE_1(writeState); - } else { + auto _OpCache_with_parameter_BACK_MOVE_1_ptr = _OpCache_BACK_MOVE_1.find(param); + if(_OpCache_with_parameter_BACK_MOVE_1_ptr == _OpCache_BACK_MOVE_1.end()) { copiedState.BACK_MOVE_1(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = copiedState._update_for_BACK_MOVE_1(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual>(); _OpCache_with_parameter_BACK_MOVE_1.insert({readState, writeState}); + _OpCache_BACK_MOVE_1.insert({param, _OpCache_with_parameter_BACK_MOVE_1}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_1::HashEqual> _OpCache_with_parameter_BACK_MOVE_1 = _OpCache_with_parameter_BACK_MOVE_1_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_1.find(readState); + if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_1.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = writeState_ptr->second; + copiedState._apply_update_for_BACK_MOVE_1(writeState); + } else { + copiedState.BACK_MOVE_1(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_1 writeState = copiedState._update_for_BACK_MOVE_1(); + _OpCache_with_parameter_BACK_MOVE_1.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "BACK_MOVE_1"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "BACK_MOVE_1"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_BACK_MOVE_2 read__tr_BACK_MOVE_2_state = state._projected_state_for__tr_BACK_MOVE_2(); - auto _trid_6_ptr = _OpCache_tr_BACK_MOVE_2.find(read__tr_BACK_MOVE_2_state); - if(_trid_6_ptr == _OpCache_tr_BACK_MOVE_2.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_6 = state._tr_BACK_MOVE_2(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_BACK_MOVE_2_lock(_ProjectionRead__tr_BACK_MOVE_2_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_BACK_MOVE_2_lock(_ProjectionRead__tr_BACK_MOVE_2_mutex); + auto _trid_6_ptr = _OpCache_tr_BACK_MOVE_2.find(read__tr_BACK_MOVE_2_state); + if(_trid_6_ptr == _OpCache_tr_BACK_MOVE_2.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_6 = state._tr_BACK_MOVE_2(); _OpCache_tr_BACK_MOVE_2.insert({read__tr_BACK_MOVE_2_state, _trid_6}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_6) { - Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2 readState = state._projected_state_for_BACK_MOVE_2(); + for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_6) { + Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - auto _OpCache_with_parameter_BACK_MOVE_2_ptr = _OpCache_BACK_MOVE_2.find(param); - if(_OpCache_with_parameter_BACK_MOVE_2_ptr == _OpCache_BACK_MOVE_2.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_2_lock(_ProjectionRead_BACK_MOVE_2_mutex); - copiedState.BACK_MOVE_2(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = copiedState._update_for_BACK_MOVE_2(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual>(); - _OpCache_with_parameter_BACK_MOVE_2.insert({readState, writeState}); - _OpCache_BACK_MOVE_2.insert({param, _OpCache_with_parameter_BACK_MOVE_2}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2 readState = state._projected_state_for_BACK_MOVE_2(); { std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_2_lock(_ProjectionRead_BACK_MOVE_2_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = _OpCache_with_parameter_BACK_MOVE_2_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_2.find(readState); - if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_2.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = writeState_ptr->second; - copiedState._apply_update_for_BACK_MOVE_2(writeState); - } else { + auto _OpCache_with_parameter_BACK_MOVE_2_ptr = _OpCache_BACK_MOVE_2.find(param); + if(_OpCache_with_parameter_BACK_MOVE_2_ptr == _OpCache_BACK_MOVE_2.end()) { copiedState.BACK_MOVE_2(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = copiedState._update_for_BACK_MOVE_2(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual>(); _OpCache_with_parameter_BACK_MOVE_2.insert({readState, writeState}); + _OpCache_BACK_MOVE_2.insert({param, _OpCache_with_parameter_BACK_MOVE_2}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = _OpCache_with_parameter_BACK_MOVE_2_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_2.find(readState); + if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_2.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = writeState_ptr->second; + copiedState._apply_update_for_BACK_MOVE_2(writeState); + } else { + copiedState.BACK_MOVE_2(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = copiedState._update_for_BACK_MOVE_2(); + _OpCache_with_parameter_BACK_MOVE_2.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "BACK_MOVE_2"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_6 = _trid_6_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_6) { - Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2 readState = state._projected_state_for_BACK_MOVE_2(); - - auto _OpCache_with_parameter_BACK_MOVE_2_ptr = _OpCache_BACK_MOVE_2.find(param); - if(_OpCache_with_parameter_BACK_MOVE_2_ptr == _OpCache_BACK_MOVE_2.end()) { + copiedState.stateAccessedVia = "BACK_MOVE_2"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_2_lock(_ProjectionRead_BACK_MOVE_2_mutex); - copiedState.BACK_MOVE_2(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = copiedState._update_for_BACK_MOVE_2(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual>(); - _OpCache_with_parameter_BACK_MOVE_2.insert({readState, writeState}); - _OpCache_BACK_MOVE_2.insert({param, _OpCache_with_parameter_BACK_MOVE_2}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::BLOCKS> _trid_6 = _trid_6_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::BLOCKS& param : _trid_6) { + Train_1_beebook_deterministic_MC_POR_v3::BLOCKS _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2 readState = state._projected_state_for_BACK_MOVE_2(); { std::unique_lock<std::mutex> _ProjectionRead_BACK_MOVE_2_lock(_ProjectionRead_BACK_MOVE_2_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = _OpCache_with_parameter_BACK_MOVE_2_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_2.find(readState); - if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_2.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = writeState_ptr->second; - copiedState._apply_update_for_BACK_MOVE_2(writeState); - } else { + auto _OpCache_with_parameter_BACK_MOVE_2_ptr = _OpCache_BACK_MOVE_2.find(param); + if(_OpCache_with_parameter_BACK_MOVE_2_ptr == _OpCache_BACK_MOVE_2.end()) { copiedState.BACK_MOVE_2(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = copiedState._update_for_BACK_MOVE_2(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual>(); _OpCache_with_parameter_BACK_MOVE_2.insert({readState, writeState}); + _OpCache_BACK_MOVE_2.insert({param, _OpCache_with_parameter_BACK_MOVE_2}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_BACK_MOVE_2::HashEqual> _OpCache_with_parameter_BACK_MOVE_2 = _OpCache_with_parameter_BACK_MOVE_2_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_BACK_MOVE_2.find(readState); + if(writeState_ptr != _OpCache_with_parameter_BACK_MOVE_2.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = writeState_ptr->second; + copiedState._apply_update_for_BACK_MOVE_2(writeState); + } else { + copiedState.BACK_MOVE_2(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_BACK_MOVE_2 writeState = copiedState._update_for_BACK_MOVE_2(); + _OpCache_with_parameter_BACK_MOVE_2.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "BACK_MOVE_2"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "BACK_MOVE_2"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_point_positionning read__tr_point_positionning_state = state._projected_state_for__tr_point_positionning(); - auto _trid_7_ptr = _OpCache_tr_point_positionning.find(read__tr_point_positionning_state); - if(_trid_7_ptr == _OpCache_tr_point_positionning.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_7 = state._tr_point_positionning(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_point_positionning_lock(_ProjectionRead__tr_point_positionning_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_point_positionning_lock(_ProjectionRead__tr_point_positionning_mutex); + auto _trid_7_ptr = _OpCache_tr_point_positionning.find(read__tr_point_positionning_state); + if(_trid_7_ptr == _OpCache_tr_point_positionning.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_7 = state._tr_point_positionning(); _OpCache_tr_point_positionning.insert({read__tr_point_positionning_state, _trid_7}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_7) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning readState = state._projected_state_for_point_positionning(); + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_7) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - auto _OpCache_with_parameter_point_positionning_ptr = _OpCache_point_positionning.find(param); - if(_OpCache_with_parameter_point_positionning_ptr == _OpCache_point_positionning.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_point_positionning_lock(_ProjectionRead_point_positionning_mutex); - copiedState.point_positionning(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = copiedState._update_for_point_positionning(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual>(); - _OpCache_with_parameter_point_positionning.insert({readState, writeState}); - _OpCache_point_positionning.insert({param, _OpCache_with_parameter_point_positionning}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning readState = state._projected_state_for_point_positionning(); { std::unique_lock<std::mutex> _ProjectionRead_point_positionning_lock(_ProjectionRead_point_positionning_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = _OpCache_with_parameter_point_positionning_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_point_positionning.find(readState); - if(writeState_ptr != _OpCache_with_parameter_point_positionning.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = writeState_ptr->second; - copiedState._apply_update_for_point_positionning(writeState); - } else { + auto _OpCache_with_parameter_point_positionning_ptr = _OpCache_point_positionning.find(param); + if(_OpCache_with_parameter_point_positionning_ptr == _OpCache_point_positionning.end()) { copiedState.point_positionning(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = copiedState._update_for_point_positionning(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual>(); _OpCache_with_parameter_point_positionning.insert({readState, writeState}); + _OpCache_point_positionning.insert({param, _OpCache_with_parameter_point_positionning}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = _OpCache_with_parameter_point_positionning_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_point_positionning.find(readState); + if(writeState_ptr != _OpCache_with_parameter_point_positionning.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = writeState_ptr->second; + copiedState._apply_update_for_point_positionning(writeState); + } else { + copiedState.point_positionning(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = copiedState._update_for_point_positionning(); + _OpCache_with_parameter_point_positionning.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "point_positionning"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_7 = _trid_7_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_7) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning readState = state._projected_state_for_point_positionning(); - - auto _OpCache_with_parameter_point_positionning_ptr = _OpCache_point_positionning.find(param); - if(_OpCache_with_parameter_point_positionning_ptr == _OpCache_point_positionning.end()) { + copiedState.stateAccessedVia = "point_positionning"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_point_positionning_lock(_ProjectionRead_point_positionning_mutex); - copiedState.point_positionning(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = copiedState._update_for_point_positionning(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual>(); - _OpCache_with_parameter_point_positionning.insert({readState, writeState}); - _OpCache_point_positionning.insert({param, _OpCache_with_parameter_point_positionning}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_7 = _trid_7_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_7) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning readState = state._projected_state_for_point_positionning(); { std::unique_lock<std::mutex> _ProjectionRead_point_positionning_lock(_ProjectionRead_point_positionning_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = _OpCache_with_parameter_point_positionning_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_point_positionning.find(readState); - if(writeState_ptr != _OpCache_with_parameter_point_positionning.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = writeState_ptr->second; - copiedState._apply_update_for_point_positionning(writeState); - } else { + auto _OpCache_with_parameter_point_positionning_ptr = _OpCache_point_positionning.find(param); + if(_OpCache_with_parameter_point_positionning_ptr == _OpCache_point_positionning.end()) { copiedState.point_positionning(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = copiedState._update_for_point_positionning(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual>(); _OpCache_with_parameter_point_positionning.insert({readState, writeState}); + _OpCache_point_positionning.insert({param, _OpCache_with_parameter_point_positionning}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_point_positionning::HashEqual> _OpCache_with_parameter_point_positionning = _OpCache_with_parameter_point_positionning_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_point_positionning.find(readState); + if(writeState_ptr != _OpCache_with_parameter_point_positionning.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = writeState_ptr->second; + copiedState._apply_update_for_point_positionning(writeState); + } else { + copiedState.point_positionning(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_point_positionning writeState = copiedState._update_for_point_positionning(); + _OpCache_with_parameter_point_positionning.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "point_positionning"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "point_positionning"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead__tr_route_formation read__tr_route_formation_state = state._projected_state_for__tr_route_formation(); - auto _trid_8_ptr = _OpCache_tr_route_formation.find(read__tr_route_formation_state); - if(_trid_8_ptr == _OpCache_tr_route_formation.end()) { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_8 = state._tr_route_formation(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_route_formation_lock(_ProjectionRead__tr_route_formation_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_route_formation_lock(_ProjectionRead__tr_route_formation_mutex); + auto _trid_8_ptr = _OpCache_tr_route_formation.find(read__tr_route_formation_state); + if(_trid_8_ptr == _OpCache_tr_route_formation.end()) { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_8 = state._tr_route_formation(); _OpCache_tr_route_formation.insert({read__tr_route_formation_state, _trid_8}); - } - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_8) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation readState = state._projected_state_for_route_formation(); + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_8) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - auto _OpCache_with_parameter_route_formation_ptr = _OpCache_route_formation.find(param); - if(_OpCache_with_parameter_route_formation_ptr == _OpCache_route_formation.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_route_formation_lock(_ProjectionRead_route_formation_mutex); - copiedState.route_formation(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = copiedState._update_for_route_formation(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual>(); - _OpCache_with_parameter_route_formation.insert({readState, writeState}); - _OpCache_route_formation.insert({param, _OpCache_with_parameter_route_formation}); - } - } else { + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation readState = state._projected_state_for_route_formation(); { std::unique_lock<std::mutex> _ProjectionRead_route_formation_lock(_ProjectionRead_route_formation_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = _OpCache_with_parameter_route_formation_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_route_formation.find(readState); - if(writeState_ptr != _OpCache_with_parameter_route_formation.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = writeState_ptr->second; - copiedState._apply_update_for_route_formation(writeState); - } else { + auto _OpCache_with_parameter_route_formation_ptr = _OpCache_route_formation.find(param); + if(_OpCache_with_parameter_route_formation_ptr == _OpCache_route_formation.end()) { copiedState.route_formation(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = copiedState._update_for_route_formation(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual>(); _OpCache_with_parameter_route_formation.insert({readState, writeState}); + _OpCache_route_formation.insert({param, _OpCache_with_parameter_route_formation}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = _OpCache_with_parameter_route_formation_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_route_formation.find(readState); + if(writeState_ptr != _OpCache_with_parameter_route_formation.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = writeState_ptr->second; + copiedState._apply_update_for_route_formation(writeState); + } else { + copiedState.route_formation(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = copiedState._update_for_route_formation(); + _OpCache_with_parameter_route_formation.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "route_formation"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_8 = _trid_8_ptr->second; - for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_8) { - Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; - - Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation readState = state._projected_state_for_route_formation(); - - auto _OpCache_with_parameter_route_formation_ptr = _OpCache_route_formation.find(param); - if(_OpCache_with_parameter_route_formation_ptr == _OpCache_route_formation.end()) { + copiedState.stateAccessedVia = "route_formation"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_route_formation_lock(_ProjectionRead_route_formation_mutex); - copiedState.route_formation(_tmp_1); - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = copiedState._update_for_route_formation(); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual>(); - _OpCache_with_parameter_route_formation.insert({readState, writeState}); - _OpCache_route_formation.insert({param, _OpCache_with_parameter_route_formation}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<Train_1_beebook_deterministic_MC_POR_v3::ROUTES> _trid_8 = _trid_8_ptr->second; + for(const Train_1_beebook_deterministic_MC_POR_v3::ROUTES& param : _trid_8) { + Train_1_beebook_deterministic_MC_POR_v3::ROUTES _tmp_1 = param; + + Train_1_beebook_deterministic_MC_POR_v3 copiedState = state._copy(); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation readState = state._projected_state_for_route_formation(); { std::unique_lock<std::mutex> _ProjectionRead_route_formation_lock(_ProjectionRead_route_formation_mutex); - std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = _OpCache_with_parameter_route_formation_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_route_formation.find(readState); - if(writeState_ptr != _OpCache_with_parameter_route_formation.end()) { - Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = writeState_ptr->second; - copiedState._apply_update_for_route_formation(writeState); - } else { + auto _OpCache_with_parameter_route_formation_ptr = _OpCache_route_formation.find(param); + if(_OpCache_with_parameter_route_formation_ptr == _OpCache_route_formation.end()) { copiedState.route_formation(_tmp_1); Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = copiedState._update_for_route_formation(); + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual>(); _OpCache_with_parameter_route_formation.insert({readState, writeState}); + _OpCache_route_formation.insert({param, _OpCache_with_parameter_route_formation}); + } else { + std::unordered_map<Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::Hash, Train_1_beebook_deterministic_MC_POR_v3::_ProjectionRead_route_formation::HashEqual> _OpCache_with_parameter_route_formation = _OpCache_with_parameter_route_formation_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_route_formation.find(readState); + if(writeState_ptr != _OpCache_with_parameter_route_formation.end()) { + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = writeState_ptr->second; + copiedState._apply_update_for_route_formation(writeState); + } else { + copiedState.route_formation(_tmp_1); + Train_1_beebook_deterministic_MC_POR_v3::_ProjectionWrite_route_formation writeState = copiedState._update_for_route_formation(); + _OpCache_with_parameter_route_formation.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "route_formation"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "route_formation"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/nota_v2.cpp b/benchmarks/model_checking_opreuse/C++/nota_v2.cpp index 48221aba1..41ed40a43 100644 --- a/benchmarks/model_checking_opreuse/C++/nota_v2.cpp +++ b/benchmarks/model_checking_opreuse/C++/nota_v2.cpp @@ -5372,1318 +5372,1178 @@ class ModelChecker { std::unordered_set<nota_v2, nota_v2::Hash, nota_v2::HashEqual> result = std::unordered_set<nota_v2, nota_v2::Hash, nota_v2::HashEqual>(); if(isCaching) { nota_v2::_ProjectionRead__tr_constructor_interconnectNode read__tr_constructor_interconnectNode_state = state._projected_state_for__tr_constructor_interconnectNode(); - auto _trid_1_ptr = _OpCache_tr_constructor_interconnectNode.find(read__tr_constructor_interconnectNode_state); - if(_trid_1_ptr == _OpCache_tr_constructor_interconnectNode.end()) { - BSet<nota_v2::INTERCONNECTNODE> _trid_1 = state._tr_constructor_interconnectNode(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_interconnectNode_lock(_ProjectionRead__tr_constructor_interconnectNode_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_interconnectNode_lock(_ProjectionRead__tr_constructor_interconnectNode_mutex); + auto _trid_1_ptr = _OpCache_tr_constructor_interconnectNode.find(read__tr_constructor_interconnectNode_state); + if(_trid_1_ptr == _OpCache_tr_constructor_interconnectNode.end()) { + BSet<nota_v2::INTERCONNECTNODE> _trid_1 = state._tr_constructor_interconnectNode(); _OpCache_tr_constructor_interconnectNode.insert({read__tr_constructor_interconnectNode_state, _trid_1}); - } - for(const nota_v2::INTERCONNECTNODE& param : _trid_1) { - nota_v2::INTERCONNECTNODE _tmp_1 = param; - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_interconnectNode readState = state._projected_state_for_constructor_interconnectNode(); + for(const nota_v2::INTERCONNECTNODE& param : _trid_1) { + nota_v2::INTERCONNECTNODE _tmp_1 = param; - auto _OpCache_with_parameter_constructor_interconnectNode_ptr = _OpCache_constructor_interconnectNode.find(param); - if(_OpCache_with_parameter_constructor_interconnectNode_ptr == _OpCache_constructor_interconnectNode.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_constructor_interconnectNode_lock(_ProjectionRead_constructor_interconnectNode_mutex); - copiedState.constructor_interconnectNode(_tmp_1); - nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = copiedState._update_for_constructor_interconnectNode(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual>(); - _OpCache_with_parameter_constructor_interconnectNode.insert({readState, writeState}); - _OpCache_constructor_interconnectNode.insert({param, _OpCache_with_parameter_constructor_interconnectNode}); - } - } else { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_interconnectNode readState = state._projected_state_for_constructor_interconnectNode(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_interconnectNode_lock(_ProjectionRead_constructor_interconnectNode_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = _OpCache_with_parameter_constructor_interconnectNode_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_interconnectNode.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_interconnectNode.end()) { - nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_interconnectNode(writeState); - } else { + auto _OpCache_with_parameter_constructor_interconnectNode_ptr = _OpCache_constructor_interconnectNode.find(param); + if(_OpCache_with_parameter_constructor_interconnectNode_ptr == _OpCache_constructor_interconnectNode.end()) { copiedState.constructor_interconnectNode(_tmp_1); nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = copiedState._update_for_constructor_interconnectNode(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual>(); _OpCache_with_parameter_constructor_interconnectNode.insert({readState, writeState}); + _OpCache_constructor_interconnectNode.insert({param, _OpCache_with_parameter_constructor_interconnectNode}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = _OpCache_with_parameter_constructor_interconnectNode_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_interconnectNode.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_interconnectNode.end()) { + nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_interconnectNode(writeState); + } else { + copiedState.constructor_interconnectNode(_tmp_1); + nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = copiedState._update_for_constructor_interconnectNode(); + _OpCache_with_parameter_constructor_interconnectNode.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_interconnectNode"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<nota_v2::INTERCONNECTNODE> _trid_1 = _trid_1_ptr->second; - for(const nota_v2::INTERCONNECTNODE& param : _trid_1) { - nota_v2::INTERCONNECTNODE _tmp_1 = param; - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_interconnectNode readState = state._projected_state_for_constructor_interconnectNode(); - - auto _OpCache_with_parameter_constructor_interconnectNode_ptr = _OpCache_constructor_interconnectNode.find(param); - if(_OpCache_with_parameter_constructor_interconnectNode_ptr == _OpCache_constructor_interconnectNode.end()) { + copiedState.stateAccessedVia = "constructor_interconnectNode"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_constructor_interconnectNode_lock(_ProjectionRead_constructor_interconnectNode_mutex); - copiedState.constructor_interconnectNode(_tmp_1); - nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = copiedState._update_for_constructor_interconnectNode(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual>(); - _OpCache_with_parameter_constructor_interconnectNode.insert({readState, writeState}); - _OpCache_constructor_interconnectNode.insert({param, _OpCache_with_parameter_constructor_interconnectNode}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<nota_v2::INTERCONNECTNODE> _trid_1 = _trid_1_ptr->second; + for(const nota_v2::INTERCONNECTNODE& param : _trid_1) { + nota_v2::INTERCONNECTNODE _tmp_1 = param; + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_interconnectNode readState = state._projected_state_for_constructor_interconnectNode(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_interconnectNode_lock(_ProjectionRead_constructor_interconnectNode_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = _OpCache_with_parameter_constructor_interconnectNode_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_interconnectNode.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_interconnectNode.end()) { - nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_interconnectNode(writeState); - } else { + auto _OpCache_with_parameter_constructor_interconnectNode_ptr = _OpCache_constructor_interconnectNode.find(param); + if(_OpCache_with_parameter_constructor_interconnectNode_ptr == _OpCache_constructor_interconnectNode.end()) { copiedState.constructor_interconnectNode(_tmp_1); nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = copiedState._update_for_constructor_interconnectNode(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual>(); _OpCache_with_parameter_constructor_interconnectNode.insert({readState, writeState}); + _OpCache_constructor_interconnectNode.insert({param, _OpCache_with_parameter_constructor_interconnectNode}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_interconnectNode, nota_v2::_ProjectionWrite_constructor_interconnectNode, nota_v2::_ProjectionRead_constructor_interconnectNode::Hash, nota_v2::_ProjectionRead_constructor_interconnectNode::HashEqual> _OpCache_with_parameter_constructor_interconnectNode = _OpCache_with_parameter_constructor_interconnectNode_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_interconnectNode.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_interconnectNode.end()) { + nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_interconnectNode(writeState); + } else { + copiedState.constructor_interconnectNode(_tmp_1); + nota_v2::_ProjectionWrite_constructor_interconnectNode writeState = copiedState._update_for_constructor_interconnectNode(); + _OpCache_with_parameter_constructor_interconnectNode.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_interconnectNode"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "constructor_interconnectNode"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_constructor_resourceManager read__tr_constructor_resourceManager_state = state._projected_state_for__tr_constructor_resourceManager(); - auto _trid_2_ptr = _OpCache_tr_constructor_resourceManager.find(read__tr_constructor_resourceManager_state); - if(_trid_2_ptr == _OpCache_tr_constructor_resourceManager.end()) { - BSet<nota_v2::RESOURCEMANAGER> _trid_2 = state._tr_constructor_resourceManager(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_resourceManager_lock(_ProjectionRead__tr_constructor_resourceManager_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_resourceManager_lock(_ProjectionRead__tr_constructor_resourceManager_mutex); + auto _trid_2_ptr = _OpCache_tr_constructor_resourceManager.find(read__tr_constructor_resourceManager_state); + if(_trid_2_ptr == _OpCache_tr_constructor_resourceManager.end()) { + BSet<nota_v2::RESOURCEMANAGER> _trid_2 = state._tr_constructor_resourceManager(); _OpCache_tr_constructor_resourceManager.insert({read__tr_constructor_resourceManager_state, _trid_2}); - } - for(const nota_v2::RESOURCEMANAGER& param : _trid_2) { - nota_v2::RESOURCEMANAGER _tmp_1 = param; + for(const nota_v2::RESOURCEMANAGER& param : _trid_2) { + nota_v2::RESOURCEMANAGER _tmp_1 = param; - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_resourceManager readState = state._projected_state_for_constructor_resourceManager(); - - auto _OpCache_with_parameter_constructor_resourceManager_ptr = _OpCache_constructor_resourceManager.find(param); - if(_OpCache_with_parameter_constructor_resourceManager_ptr == _OpCache_constructor_resourceManager.end()) { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_resourceManager readState = state._projected_state_for_constructor_resourceManager(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_resourceManager_lock(_ProjectionRead_constructor_resourceManager_mutex); - copiedState.constructor_resourceManager(_tmp_1); - nota_v2::_ProjectionWrite_constructor_resourceManager writeState = copiedState._update_for_constructor_resourceManager(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual>(); - _OpCache_with_parameter_constructor_resourceManager.insert({readState, writeState}); - _OpCache_constructor_resourceManager.insert({param, _OpCache_with_parameter_constructor_resourceManager}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_constructor_resourceManager_lock(_ProjectionRead_constructor_resourceManager_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = _OpCache_with_parameter_constructor_resourceManager_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_resourceManager.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_resourceManager.end()) { - nota_v2::_ProjectionWrite_constructor_resourceManager writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_resourceManager(writeState); - } else { + auto _OpCache_with_parameter_constructor_resourceManager_ptr = _OpCache_constructor_resourceManager.find(param); + if(_OpCache_with_parameter_constructor_resourceManager_ptr == _OpCache_constructor_resourceManager.end()) { copiedState.constructor_resourceManager(_tmp_1); nota_v2::_ProjectionWrite_constructor_resourceManager writeState = copiedState._update_for_constructor_resourceManager(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual>(); _OpCache_with_parameter_constructor_resourceManager.insert({readState, writeState}); + _OpCache_constructor_resourceManager.insert({param, _OpCache_with_parameter_constructor_resourceManager}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = _OpCache_with_parameter_constructor_resourceManager_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_resourceManager.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_resourceManager.end()) { + nota_v2::_ProjectionWrite_constructor_resourceManager writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_resourceManager(writeState); + } else { + copiedState.constructor_resourceManager(_tmp_1); + nota_v2::_ProjectionWrite_constructor_resourceManager writeState = copiedState._update_for_constructor_resourceManager(); + _OpCache_with_parameter_constructor_resourceManager.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_resourceManager"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<nota_v2::RESOURCEMANAGER> _trid_2 = _trid_2_ptr->second; - for(const nota_v2::RESOURCEMANAGER& param : _trid_2) { - nota_v2::RESOURCEMANAGER _tmp_1 = param; - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_resourceManager readState = state._projected_state_for_constructor_resourceManager(); - - auto _OpCache_with_parameter_constructor_resourceManager_ptr = _OpCache_constructor_resourceManager.find(param); - if(_OpCache_with_parameter_constructor_resourceManager_ptr == _OpCache_constructor_resourceManager.end()) { + copiedState.stateAccessedVia = "constructor_resourceManager"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_constructor_resourceManager_lock(_ProjectionRead_constructor_resourceManager_mutex); - copiedState.constructor_resourceManager(_tmp_1); - nota_v2::_ProjectionWrite_constructor_resourceManager writeState = copiedState._update_for_constructor_resourceManager(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual>(); - _OpCache_with_parameter_constructor_resourceManager.insert({readState, writeState}); - _OpCache_constructor_resourceManager.insert({param, _OpCache_with_parameter_constructor_resourceManager}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<nota_v2::RESOURCEMANAGER> _trid_2 = _trid_2_ptr->second; + for(const nota_v2::RESOURCEMANAGER& param : _trid_2) { + nota_v2::RESOURCEMANAGER _tmp_1 = param; + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_resourceManager readState = state._projected_state_for_constructor_resourceManager(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_resourceManager_lock(_ProjectionRead_constructor_resourceManager_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = _OpCache_with_parameter_constructor_resourceManager_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_resourceManager.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_resourceManager.end()) { - nota_v2::_ProjectionWrite_constructor_resourceManager writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_resourceManager(writeState); - } else { + auto _OpCache_with_parameter_constructor_resourceManager_ptr = _OpCache_constructor_resourceManager.find(param); + if(_OpCache_with_parameter_constructor_resourceManager_ptr == _OpCache_constructor_resourceManager.end()) { copiedState.constructor_resourceManager(_tmp_1); nota_v2::_ProjectionWrite_constructor_resourceManager writeState = copiedState._update_for_constructor_resourceManager(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual>(); _OpCache_with_parameter_constructor_resourceManager.insert({readState, writeState}); + _OpCache_constructor_resourceManager.insert({param, _OpCache_with_parameter_constructor_resourceManager}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_resourceManager, nota_v2::_ProjectionWrite_constructor_resourceManager, nota_v2::_ProjectionRead_constructor_resourceManager::Hash, nota_v2::_ProjectionRead_constructor_resourceManager::HashEqual> _OpCache_with_parameter_constructor_resourceManager = _OpCache_with_parameter_constructor_resourceManager_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_resourceManager.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_resourceManager.end()) { + nota_v2::_ProjectionWrite_constructor_resourceManager writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_resourceManager(writeState); + } else { + copiedState.constructor_resourceManager(_tmp_1); + nota_v2::_ProjectionWrite_constructor_resourceManager writeState = copiedState._update_for_constructor_resourceManager(); + _OpCache_with_parameter_constructor_resourceManager.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_resourceManager"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "constructor_resourceManager"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_constructor_service read__tr_constructor_service_state = state._projected_state_for__tr_constructor_service(); - auto _trid_3_ptr = _OpCache_tr_constructor_service.find(read__tr_constructor_service_state); - if(_trid_3_ptr == _OpCache_tr_constructor_service.end()) { - BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_3 = state._tr_constructor_service(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_service_lock(_ProjectionRead__tr_constructor_service_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_service_lock(_ProjectionRead__tr_constructor_service_mutex); + auto _trid_3_ptr = _OpCache_tr_constructor_service.find(read__tr_constructor_service_state); + if(_trid_3_ptr == _OpCache_tr_constructor_service.end()) { + BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_3 = state._tr_constructor_service(); _OpCache_tr_constructor_service.insert({read__tr_constructor_service_state, _trid_3}); - } - for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_3) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_service readState = state._projected_state_for_constructor_service(); + for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_3) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_constructor_service_ptr = _OpCache_constructor_service.find(param); - if(_OpCache_with_parameter_constructor_service_ptr == _OpCache_constructor_service.end()) { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_service readState = state._projected_state_for_constructor_service(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_service_lock(_ProjectionRead_constructor_service_mutex); - copiedState.constructor_service(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_constructor_service writeState = copiedState._update_for_constructor_service(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual>(); - _OpCache_with_parameter_constructor_service.insert({readState, writeState}); - _OpCache_constructor_service.insert({param, _OpCache_with_parameter_constructor_service}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_constructor_service_lock(_ProjectionRead_constructor_service_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = _OpCache_with_parameter_constructor_service_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_service.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_service.end()) { - nota_v2::_ProjectionWrite_constructor_service writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_service(writeState); - } else { + auto _OpCache_with_parameter_constructor_service_ptr = _OpCache_constructor_service.find(param); + if(_OpCache_with_parameter_constructor_service_ptr == _OpCache_constructor_service.end()) { copiedState.constructor_service(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_constructor_service writeState = copiedState._update_for_constructor_service(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual>(); _OpCache_with_parameter_constructor_service.insert({readState, writeState}); + _OpCache_constructor_service.insert({param, _OpCache_with_parameter_constructor_service}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = _OpCache_with_parameter_constructor_service_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_service.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_service.end()) { + nota_v2::_ProjectionWrite_constructor_service writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_service(writeState); + } else { + copiedState.constructor_service(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_constructor_service writeState = copiedState._update_for_constructor_service(); + _OpCache_with_parameter_constructor_service.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_service"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_3 = _trid_3_ptr->second; - for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_3) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_service readState = state._projected_state_for_constructor_service(); - - auto _OpCache_with_parameter_constructor_service_ptr = _OpCache_constructor_service.find(param); - if(_OpCache_with_parameter_constructor_service_ptr == _OpCache_constructor_service.end()) { + copiedState.stateAccessedVia = "constructor_service"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_constructor_service_lock(_ProjectionRead_constructor_service_mutex); - copiedState.constructor_service(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_constructor_service writeState = copiedState._update_for_constructor_service(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual>(); - _OpCache_with_parameter_constructor_service.insert({readState, writeState}); - _OpCache_constructor_service.insert({param, _OpCache_with_parameter_constructor_service}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_3 = _trid_3_ptr->second; + for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_3) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_service readState = state._projected_state_for_constructor_service(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_service_lock(_ProjectionRead_constructor_service_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = _OpCache_with_parameter_constructor_service_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_service.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_service.end()) { - nota_v2::_ProjectionWrite_constructor_service writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_service(writeState); - } else { + auto _OpCache_with_parameter_constructor_service_ptr = _OpCache_constructor_service.find(param); + if(_OpCache_with_parameter_constructor_service_ptr == _OpCache_constructor_service.end()) { copiedState.constructor_service(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_constructor_service writeState = copiedState._update_for_constructor_service(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual>(); _OpCache_with_parameter_constructor_service.insert({readState, writeState}); + _OpCache_constructor_service.insert({param, _OpCache_with_parameter_constructor_service}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_service, nota_v2::_ProjectionWrite_constructor_service, nota_v2::_ProjectionRead_constructor_service::Hash, nota_v2::_ProjectionRead_constructor_service::HashEqual> _OpCache_with_parameter_constructor_service = _OpCache_with_parameter_constructor_service_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_service.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_service.end()) { + nota_v2::_ProjectionWrite_constructor_service writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_service(writeState); + } else { + copiedState.constructor_service(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_constructor_service writeState = copiedState._update_for_constructor_service(); + _OpCache_with_parameter_constructor_service.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_service"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "constructor_service"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_constructor_socket read__tr_constructor_socket_state = state._projected_state_for__tr_constructor_socket(); - auto _trid_4_ptr = _OpCache_tr_constructor_socket.find(read__tr_constructor_socket_state); - if(_trid_4_ptr == _OpCache_tr_constructor_socket.end()) { - BSet<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_4 = state._tr_constructor_socket(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_socket_lock(_ProjectionRead__tr_constructor_socket_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_constructor_socket_lock(_ProjectionRead__tr_constructor_socket_mutex); + auto _trid_4_ptr = _OpCache_tr_constructor_socket.find(read__tr_constructor_socket_state); + if(_trid_4_ptr == _OpCache_tr_constructor_socket.end()) { + BSet<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_4 = state._tr_constructor_socket(); _OpCache_tr_constructor_socket.insert({read__tr_constructor_socket_state, _trid_4}); - } - for(const BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_4) { - nota_v2::SOCKET _tmp_1 = param.projection2(); - BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); - nota_v2::SID _tmp_3 = _tmp_2.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); - nota_v2::SID _tmp_5 = _tmp_4.projection2(); - nota_v2::INTERCONNECTNODE _tmp_6 = _tmp_4.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_socket readState = state._projected_state_for_constructor_socket(); - - auto _OpCache_with_parameter_constructor_socket_ptr = _OpCache_constructor_socket.find(param); - if(_OpCache_with_parameter_constructor_socket_ptr == _OpCache_constructor_socket.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_constructor_socket_lock(_ProjectionRead_constructor_socket_mutex); - copiedState.constructor_socket(_tmp_6, _tmp_5, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_constructor_socket writeState = copiedState._update_for_constructor_socket(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual>(); - _OpCache_with_parameter_constructor_socket.insert({readState, writeState}); - _OpCache_constructor_socket.insert({param, _OpCache_with_parameter_constructor_socket}); - } - } else { + for(const BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_4) { + nota_v2::SOCKET _tmp_1 = param.projection2(); + BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); + nota_v2::SID _tmp_3 = _tmp_2.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); + nota_v2::SID _tmp_5 = _tmp_4.projection2(); + nota_v2::INTERCONNECTNODE _tmp_6 = _tmp_4.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_socket readState = state._projected_state_for_constructor_socket(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_socket_lock(_ProjectionRead_constructor_socket_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = _OpCache_with_parameter_constructor_socket_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_socket.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_socket.end()) { - nota_v2::_ProjectionWrite_constructor_socket writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_socket(writeState); - } else { + auto _OpCache_with_parameter_constructor_socket_ptr = _OpCache_constructor_socket.find(param); + if(_OpCache_with_parameter_constructor_socket_ptr == _OpCache_constructor_socket.end()) { copiedState.constructor_socket(_tmp_6, _tmp_5, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_constructor_socket writeState = copiedState._update_for_constructor_socket(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual>(); _OpCache_with_parameter_constructor_socket.insert({readState, writeState}); + _OpCache_constructor_socket.insert({param, _OpCache_with_parameter_constructor_socket}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = _OpCache_with_parameter_constructor_socket_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_socket.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_socket.end()) { + nota_v2::_ProjectionWrite_constructor_socket writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_socket(writeState); + } else { + copiedState.constructor_socket(_tmp_6, _tmp_5, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_constructor_socket writeState = copiedState._update_for_constructor_socket(); + _OpCache_with_parameter_constructor_socket.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_socket"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_4 = _trid_4_ptr->second; - for(const BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_4) { - nota_v2::SOCKET _tmp_1 = param.projection2(); - BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); - nota_v2::SID _tmp_3 = _tmp_2.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); - nota_v2::SID _tmp_5 = _tmp_4.projection2(); - nota_v2::INTERCONNECTNODE _tmp_6 = _tmp_4.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_constructor_socket readState = state._projected_state_for_constructor_socket(); - - auto _OpCache_with_parameter_constructor_socket_ptr = _OpCache_constructor_socket.find(param); - if(_OpCache_with_parameter_constructor_socket_ptr == _OpCache_constructor_socket.end()) { + copiedState.stateAccessedVia = "constructor_socket"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_constructor_socket_lock(_ProjectionRead_constructor_socket_mutex); - copiedState.constructor_socket(_tmp_6, _tmp_5, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_constructor_socket writeState = copiedState._update_for_constructor_socket(); - std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual>(); - _OpCache_with_parameter_constructor_socket.insert({readState, writeState}); - _OpCache_constructor_socket.insert({param, _OpCache_with_parameter_constructor_socket}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_4 = _trid_4_ptr->second; + for(const BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_4) { + nota_v2::SOCKET _tmp_1 = param.projection2(); + BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); + nota_v2::SID _tmp_3 = _tmp_2.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); + nota_v2::SID _tmp_5 = _tmp_4.projection2(); + nota_v2::INTERCONNECTNODE _tmp_6 = _tmp_4.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_constructor_socket readState = state._projected_state_for_constructor_socket(); { std::unique_lock<std::mutex> _ProjectionRead_constructor_socket_lock(_ProjectionRead_constructor_socket_mutex); - std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = _OpCache_with_parameter_constructor_socket_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_constructor_socket.find(readState); - if(writeState_ptr != _OpCache_with_parameter_constructor_socket.end()) { - nota_v2::_ProjectionWrite_constructor_socket writeState = writeState_ptr->second; - copiedState._apply_update_for_constructor_socket(writeState); - } else { + auto _OpCache_with_parameter_constructor_socket_ptr = _OpCache_constructor_socket.find(param); + if(_OpCache_with_parameter_constructor_socket_ptr == _OpCache_constructor_socket.end()) { copiedState.constructor_socket(_tmp_6, _tmp_5, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_constructor_socket writeState = copiedState._update_for_constructor_socket(); + std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual>(); _OpCache_with_parameter_constructor_socket.insert({readState, writeState}); + _OpCache_constructor_socket.insert({param, _OpCache_with_parameter_constructor_socket}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_constructor_socket, nota_v2::_ProjectionWrite_constructor_socket, nota_v2::_ProjectionRead_constructor_socket::Hash, nota_v2::_ProjectionRead_constructor_socket::HashEqual> _OpCache_with_parameter_constructor_socket = _OpCache_with_parameter_constructor_socket_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_constructor_socket.find(readState); + if(writeState_ptr != _OpCache_with_parameter_constructor_socket.end()) { + nota_v2::_ProjectionWrite_constructor_socket writeState = writeState_ptr->second; + copiedState._apply_update_for_constructor_socket(writeState); + } else { + copiedState.constructor_socket(_tmp_6, _tmp_5, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_constructor_socket writeState = copiedState._update_for_constructor_socket(); + _OpCache_with_parameter_constructor_socket.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "constructor_socket"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "constructor_socket"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_rm_register read__tr_rm_register_state = state._projected_state_for__tr_rm_register(); - auto _trid_5_ptr = _OpCache_tr_rm_register.find(read__tr_rm_register_state); - if(_trid_5_ptr == _OpCache_tr_rm_register.end()) { - BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_5 = state._tr_rm_register(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_rm_register_lock(_ProjectionRead__tr_rm_register_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_rm_register_lock(_ProjectionRead__tr_rm_register_mutex); + auto _trid_5_ptr = _OpCache_tr_rm_register.find(read__tr_rm_register_state); + if(_trid_5_ptr == _OpCache_tr_rm_register.end()) { + BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_5 = state._tr_rm_register(); _OpCache_tr_rm_register.insert({read__tr_rm_register_state, _trid_5}); - } - for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_5) { - nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); - BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); - nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); - nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_register readState = state._projected_state_for_rm_register(); - - auto _OpCache_with_parameter_rm_register_ptr = _OpCache_rm_register.find(param); - if(_OpCache_with_parameter_rm_register_ptr == _OpCache_rm_register.end()) { + for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_5) { + nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); + BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); + nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); + nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_register readState = state._projected_state_for_rm_register(); { std::unique_lock<std::mutex> _ProjectionRead_rm_register_lock(_ProjectionRead_rm_register_mutex); - copiedState.rm_register(_tmp_4, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_rm_register writeState = copiedState._update_for_rm_register(); - std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual>(); - _OpCache_with_parameter_rm_register.insert({readState, writeState}); - _OpCache_rm_register.insert({param, _OpCache_with_parameter_rm_register}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_rm_register_lock(_ProjectionRead_rm_register_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = _OpCache_with_parameter_rm_register_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_register.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_register.end()) { - nota_v2::_ProjectionWrite_rm_register writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_register(writeState); - } else { + auto _OpCache_with_parameter_rm_register_ptr = _OpCache_rm_register.find(param); + if(_OpCache_with_parameter_rm_register_ptr == _OpCache_rm_register.end()) { copiedState.rm_register(_tmp_4, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_rm_register writeState = copiedState._update_for_rm_register(); + std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual>(); _OpCache_with_parameter_rm_register.insert({readState, writeState}); + _OpCache_rm_register.insert({param, _OpCache_with_parameter_rm_register}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = _OpCache_with_parameter_rm_register_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_register.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_register.end()) { + nota_v2::_ProjectionWrite_rm_register writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_register(writeState); + } else { + copiedState.rm_register(_tmp_4, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_rm_register writeState = copiedState._update_for_rm_register(); + _OpCache_with_parameter_rm_register.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_register"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_5 = _trid_5_ptr->second; - for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_5) { - nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); - BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); - nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); - nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_register readState = state._projected_state_for_rm_register(); - - auto _OpCache_with_parameter_rm_register_ptr = _OpCache_rm_register.find(param); - if(_OpCache_with_parameter_rm_register_ptr == _OpCache_rm_register.end()) { + copiedState.stateAccessedVia = "rm_register"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_rm_register_lock(_ProjectionRead_rm_register_mutex); - copiedState.rm_register(_tmp_4, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_rm_register writeState = copiedState._update_for_rm_register(); - std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual>(); - _OpCache_with_parameter_rm_register.insert({readState, writeState}); - _OpCache_rm_register.insert({param, _OpCache_with_parameter_rm_register}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_5 = _trid_5_ptr->second; + for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_5) { + nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); + BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); + nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); + nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_register readState = state._projected_state_for_rm_register(); { std::unique_lock<std::mutex> _ProjectionRead_rm_register_lock(_ProjectionRead_rm_register_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = _OpCache_with_parameter_rm_register_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_register.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_register.end()) { - nota_v2::_ProjectionWrite_rm_register writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_register(writeState); - } else { + auto _OpCache_with_parameter_rm_register_ptr = _OpCache_rm_register.find(param); + if(_OpCache_with_parameter_rm_register_ptr == _OpCache_rm_register.end()) { copiedState.rm_register(_tmp_4, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_rm_register writeState = copiedState._update_for_rm_register(); + std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual>(); _OpCache_with_parameter_rm_register.insert({readState, writeState}); + _OpCache_rm_register.insert({param, _OpCache_with_parameter_rm_register}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_register, nota_v2::_ProjectionWrite_rm_register, nota_v2::_ProjectionRead_rm_register::Hash, nota_v2::_ProjectionRead_rm_register::HashEqual> _OpCache_with_parameter_rm_register = _OpCache_with_parameter_rm_register_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_register.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_register.end()) { + nota_v2::_ProjectionWrite_rm_register writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_register(writeState); + } else { + copiedState.rm_register(_tmp_4, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_rm_register writeState = copiedState._update_for_rm_register(); + _OpCache_with_parameter_rm_register.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_register"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "rm_register"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_rm_deregister read__tr_rm_deregister_state = state._projected_state_for__tr_rm_deregister(); - auto _trid_6_ptr = _OpCache_tr_rm_deregister.find(read__tr_rm_deregister_state); - if(_trid_6_ptr == _OpCache_tr_rm_deregister.end()) { - BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_6 = state._tr_rm_deregister(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_rm_deregister_lock(_ProjectionRead__tr_rm_deregister_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_rm_deregister_lock(_ProjectionRead__tr_rm_deregister_mutex); + auto _trid_6_ptr = _OpCache_tr_rm_deregister.find(read__tr_rm_deregister_state); + if(_trid_6_ptr == _OpCache_tr_rm_deregister.end()) { + BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_6 = state._tr_rm_deregister(); _OpCache_tr_rm_deregister.insert({read__tr_rm_deregister_state, _trid_6}); - } - for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_6) { - nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); - BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); - nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); - nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_deregister readState = state._projected_state_for_rm_deregister(); - - auto _OpCache_with_parameter_rm_deregister_ptr = _OpCache_rm_deregister.find(param); - if(_OpCache_with_parameter_rm_deregister_ptr == _OpCache_rm_deregister.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_rm_deregister_lock(_ProjectionRead_rm_deregister_mutex); - copiedState.rm_deregister(_tmp_4, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_rm_deregister writeState = copiedState._update_for_rm_deregister(); - std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual>(); - _OpCache_with_parameter_rm_deregister.insert({readState, writeState}); - _OpCache_rm_deregister.insert({param, _OpCache_with_parameter_rm_deregister}); - } - } else { + for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_6) { + nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); + BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); + nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); + nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_deregister readState = state._projected_state_for_rm_deregister(); { std::unique_lock<std::mutex> _ProjectionRead_rm_deregister_lock(_ProjectionRead_rm_deregister_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = _OpCache_with_parameter_rm_deregister_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_deregister.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_deregister.end()) { - nota_v2::_ProjectionWrite_rm_deregister writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_deregister(writeState); - } else { + auto _OpCache_with_parameter_rm_deregister_ptr = _OpCache_rm_deregister.find(param); + if(_OpCache_with_parameter_rm_deregister_ptr == _OpCache_rm_deregister.end()) { copiedState.rm_deregister(_tmp_4, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_rm_deregister writeState = copiedState._update_for_rm_deregister(); + std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual>(); _OpCache_with_parameter_rm_deregister.insert({readState, writeState}); + _OpCache_rm_deregister.insert({param, _OpCache_with_parameter_rm_deregister}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = _OpCache_with_parameter_rm_deregister_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_deregister.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_deregister.end()) { + nota_v2::_ProjectionWrite_rm_deregister writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_deregister(writeState); + } else { + copiedState.rm_deregister(_tmp_4, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_rm_deregister writeState = copiedState._update_for_rm_deregister(); + _OpCache_with_parameter_rm_deregister.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_deregister"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_6 = _trid_6_ptr->second; - for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_6) { - nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); - BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); - nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); - nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_deregister readState = state._projected_state_for_rm_deregister(); - - auto _OpCache_with_parameter_rm_deregister_ptr = _OpCache_rm_deregister.find(param); - if(_OpCache_with_parameter_rm_deregister_ptr == _OpCache_rm_deregister.end()) { + copiedState.stateAccessedVia = "rm_deregister"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_rm_deregister_lock(_ProjectionRead_rm_deregister_mutex); - copiedState.rm_deregister(_tmp_4, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_rm_deregister writeState = copiedState._update_for_rm_deregister(); - std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual>(); - _OpCache_with_parameter_rm_deregister.insert({readState, writeState}); - _OpCache_rm_deregister.insert({param, _OpCache_with_parameter_rm_deregister}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >> _trid_6 = _trid_6_ptr->second; + for(const BTuple<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >, nota_v2::INTERCONNECTNODE >& param : _trid_6) { + nota_v2::INTERCONNECTNODE _tmp_1 = param.projection2(); + BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE > _tmp_2 = param.projection1(); + nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); + nota_v2::RESOURCEMANAGER _tmp_4 = _tmp_2.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_deregister readState = state._projected_state_for_rm_deregister(); { std::unique_lock<std::mutex> _ProjectionRead_rm_deregister_lock(_ProjectionRead_rm_deregister_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = _OpCache_with_parameter_rm_deregister_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_deregister.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_deregister.end()) { - nota_v2::_ProjectionWrite_rm_deregister writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_deregister(writeState); - } else { + auto _OpCache_with_parameter_rm_deregister_ptr = _OpCache_rm_deregister.find(param); + if(_OpCache_with_parameter_rm_deregister_ptr == _OpCache_rm_deregister.end()) { copiedState.rm_deregister(_tmp_4, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_rm_deregister writeState = copiedState._update_for_rm_deregister(); + std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual>(); _OpCache_with_parameter_rm_deregister.insert({readState, writeState}); + _OpCache_rm_deregister.insert({param, _OpCache_with_parameter_rm_deregister}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_deregister, nota_v2::_ProjectionWrite_rm_deregister, nota_v2::_ProjectionRead_rm_deregister::Hash, nota_v2::_ProjectionRead_rm_deregister::HashEqual> _OpCache_with_parameter_rm_deregister = _OpCache_with_parameter_rm_deregister_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_deregister.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_deregister.end()) { + nota_v2::_ProjectionWrite_rm_deregister writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_deregister(writeState); + } else { + copiedState.rm_deregister(_tmp_4, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_rm_deregister writeState = copiedState._update_for_rm_deregister(); + _OpCache_with_parameter_rm_deregister.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_deregister"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "rm_deregister"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_rm_getSid read__tr_rm_getSid_state = state._projected_state_for__tr_rm_getSid(); - auto _trid_7_ptr = _OpCache_tr_rm_getSid.find(read__tr_rm_getSid_state); - if(_trid_7_ptr == _OpCache_tr_rm_getSid.end()) { - BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_7 = state._tr_rm_getSid(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_rm_getSid_lock(_ProjectionRead__tr_rm_getSid_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_rm_getSid_lock(_ProjectionRead__tr_rm_getSid_mutex); + auto _trid_7_ptr = _OpCache_tr_rm_getSid.find(read__tr_rm_getSid_state); + if(_trid_7_ptr == _OpCache_tr_rm_getSid.end()) { + BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_7 = state._tr_rm_getSid(); _OpCache_tr_rm_getSid.insert({read__tr_rm_getSid_state, _trid_7}); - } - for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_7) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_getSid readState = state._projected_state_for_rm_getSid(); + for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_7) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_rm_getSid_ptr = _OpCache_rm_getSid.find(param); - if(_OpCache_with_parameter_rm_getSid_ptr == _OpCache_rm_getSid.end()) { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_getSid readState = state._projected_state_for_rm_getSid(); { std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_lock(_ProjectionRead_rm_getSid_mutex); - copiedState.rm_getSid(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_rm_getSid writeState = copiedState._update_for_rm_getSid(); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual>(); - _OpCache_with_parameter_rm_getSid.insert({readState, writeState}); - _OpCache_rm_getSid.insert({param, _OpCache_with_parameter_rm_getSid}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_lock(_ProjectionRead_rm_getSid_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = _OpCache_with_parameter_rm_getSid_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_getSid.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_getSid.end()) { - nota_v2::_ProjectionWrite_rm_getSid writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_getSid(writeState); - } else { + auto _OpCache_with_parameter_rm_getSid_ptr = _OpCache_rm_getSid.find(param); + if(_OpCache_with_parameter_rm_getSid_ptr == _OpCache_rm_getSid.end()) { copiedState.rm_getSid(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_rm_getSid writeState = copiedState._update_for_rm_getSid(); + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual>(); _OpCache_with_parameter_rm_getSid.insert({readState, writeState}); + _OpCache_rm_getSid.insert({param, _OpCache_with_parameter_rm_getSid}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = _OpCache_with_parameter_rm_getSid_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_getSid.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_getSid.end()) { + nota_v2::_ProjectionWrite_rm_getSid writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_getSid(writeState); + } else { + copiedState.rm_getSid(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_rm_getSid writeState = copiedState._update_for_rm_getSid(); + _OpCache_with_parameter_rm_getSid.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_getSid"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_7 = _trid_7_ptr->second; - for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_7) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_getSid readState = state._projected_state_for_rm_getSid(); - - auto _OpCache_with_parameter_rm_getSid_ptr = _OpCache_rm_getSid.find(param); - if(_OpCache_with_parameter_rm_getSid_ptr == _OpCache_rm_getSid.end()) { + copiedState.stateAccessedVia = "rm_getSid"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_lock(_ProjectionRead_rm_getSid_mutex); - copiedState.rm_getSid(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_rm_getSid writeState = copiedState._update_for_rm_getSid(); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual>(); - _OpCache_with_parameter_rm_getSid.insert({readState, writeState}); - _OpCache_rm_getSid.insert({param, _OpCache_with_parameter_rm_getSid}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_7 = _trid_7_ptr->second; + for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_7) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_getSid readState = state._projected_state_for_rm_getSid(); { std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_lock(_ProjectionRead_rm_getSid_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = _OpCache_with_parameter_rm_getSid_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_getSid.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_getSid.end()) { - nota_v2::_ProjectionWrite_rm_getSid writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_getSid(writeState); - } else { + auto _OpCache_with_parameter_rm_getSid_ptr = _OpCache_rm_getSid.find(param); + if(_OpCache_with_parameter_rm_getSid_ptr == _OpCache_rm_getSid.end()) { copiedState.rm_getSid(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_rm_getSid writeState = copiedState._update_for_rm_getSid(); + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual>(); _OpCache_with_parameter_rm_getSid.insert({readState, writeState}); + _OpCache_rm_getSid.insert({param, _OpCache_with_parameter_rm_getSid}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid, nota_v2::_ProjectionWrite_rm_getSid, nota_v2::_ProjectionRead_rm_getSid::Hash, nota_v2::_ProjectionRead_rm_getSid::HashEqual> _OpCache_with_parameter_rm_getSid = _OpCache_with_parameter_rm_getSid_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_getSid.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_getSid.end()) { + nota_v2::_ProjectionWrite_rm_getSid writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_getSid(writeState); + } else { + copiedState.rm_getSid(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_rm_getSid writeState = copiedState._update_for_rm_getSid(); + _OpCache_with_parameter_rm_getSid.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_getSid"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "rm_getSid"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_rm_getSid_Not_Found read__tr_rm_getSid_Not_Found_state = state._projected_state_for__tr_rm_getSid_Not_Found(); - auto _trid_8_ptr = _OpCache_tr_rm_getSid_Not_Found.find(read__tr_rm_getSid_Not_Found_state); - if(_trid_8_ptr == _OpCache_tr_rm_getSid_Not_Found.end()) { - BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_8 = state._tr_rm_getSid_Not_Found(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_rm_getSid_Not_Found_lock(_ProjectionRead__tr_rm_getSid_Not_Found_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_rm_getSid_Not_Found_lock(_ProjectionRead__tr_rm_getSid_Not_Found_mutex); + auto _trid_8_ptr = _OpCache_tr_rm_getSid_Not_Found.find(read__tr_rm_getSid_Not_Found_state); + if(_trid_8_ptr == _OpCache_tr_rm_getSid_Not_Found.end()) { + BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_8 = state._tr_rm_getSid_Not_Found(); _OpCache_tr_rm_getSid_Not_Found.insert({read__tr_rm_getSid_Not_Found_state, _trid_8}); - } - for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_8) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); + for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_8) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_getSid_Not_Found readState = state._projected_state_for_rm_getSid_Not_Found(); - - auto _OpCache_with_parameter_rm_getSid_Not_Found_ptr = _OpCache_rm_getSid_Not_Found.find(param); - if(_OpCache_with_parameter_rm_getSid_Not_Found_ptr == _OpCache_rm_getSid_Not_Found.end()) { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_getSid_Not_Found readState = state._projected_state_for_rm_getSid_Not_Found(); { std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_Not_Found_lock(_ProjectionRead_rm_getSid_Not_Found_mutex); - copiedState.rm_getSid_Not_Found(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = copiedState._update_for_rm_getSid_Not_Found(); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual>(); - _OpCache_with_parameter_rm_getSid_Not_Found.insert({readState, writeState}); - _OpCache_rm_getSid_Not_Found.insert({param, _OpCache_with_parameter_rm_getSid_Not_Found}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_Not_Found_lock(_ProjectionRead_rm_getSid_Not_Found_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = _OpCache_with_parameter_rm_getSid_Not_Found_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_getSid_Not_Found.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_getSid_Not_Found.end()) { - nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_getSid_Not_Found(writeState); - } else { + auto _OpCache_with_parameter_rm_getSid_Not_Found_ptr = _OpCache_rm_getSid_Not_Found.find(param); + if(_OpCache_with_parameter_rm_getSid_Not_Found_ptr == _OpCache_rm_getSid_Not_Found.end()) { copiedState.rm_getSid_Not_Found(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = copiedState._update_for_rm_getSid_Not_Found(); + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual>(); _OpCache_with_parameter_rm_getSid_Not_Found.insert({readState, writeState}); + _OpCache_rm_getSid_Not_Found.insert({param, _OpCache_with_parameter_rm_getSid_Not_Found}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = _OpCache_with_parameter_rm_getSid_Not_Found_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_getSid_Not_Found.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_getSid_Not_Found.end()) { + nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_getSid_Not_Found(writeState); + } else { + copiedState.rm_getSid_Not_Found(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = copiedState._update_for_rm_getSid_Not_Found(); + _OpCache_with_parameter_rm_getSid_Not_Found.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_getSid_Not_Found"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_8 = _trid_8_ptr->second; - for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_8) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_rm_getSid_Not_Found readState = state._projected_state_for_rm_getSid_Not_Found(); - - auto _OpCache_with_parameter_rm_getSid_Not_Found_ptr = _OpCache_rm_getSid_Not_Found.find(param); - if(_OpCache_with_parameter_rm_getSid_Not_Found_ptr == _OpCache_rm_getSid_Not_Found.end()) { + copiedState.stateAccessedVia = "rm_getSid_Not_Found"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_Not_Found_lock(_ProjectionRead_rm_getSid_Not_Found_mutex); - copiedState.rm_getSid_Not_Found(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = copiedState._update_for_rm_getSid_Not_Found(); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual>(); - _OpCache_with_parameter_rm_getSid_Not_Found.insert({readState, writeState}); - _OpCache_rm_getSid_Not_Found.insert({param, _OpCache_with_parameter_rm_getSid_Not_Found}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >> _trid_8 = _trid_8_ptr->second; + for(const BTuple<nota_v2::RESOURCEMANAGER, nota_v2::SERVICE >& param : _trid_8) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::RESOURCEMANAGER _tmp_2 = param.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_rm_getSid_Not_Found readState = state._projected_state_for_rm_getSid_Not_Found(); { std::unique_lock<std::mutex> _ProjectionRead_rm_getSid_Not_Found_lock(_ProjectionRead_rm_getSid_Not_Found_mutex); - std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = _OpCache_with_parameter_rm_getSid_Not_Found_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_rm_getSid_Not_Found.find(readState); - if(writeState_ptr != _OpCache_with_parameter_rm_getSid_Not_Found.end()) { - nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = writeState_ptr->second; - copiedState._apply_update_for_rm_getSid_Not_Found(writeState); - } else { + auto _OpCache_with_parameter_rm_getSid_Not_Found_ptr = _OpCache_rm_getSid_Not_Found.find(param); + if(_OpCache_with_parameter_rm_getSid_Not_Found_ptr == _OpCache_rm_getSid_Not_Found.end()) { copiedState.rm_getSid_Not_Found(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = copiedState._update_for_rm_getSid_Not_Found(); + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual>(); _OpCache_with_parameter_rm_getSid_Not_Found.insert({readState, writeState}); + _OpCache_rm_getSid_Not_Found.insert({param, _OpCache_with_parameter_rm_getSid_Not_Found}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_rm_getSid_Not_Found, nota_v2::_ProjectionWrite_rm_getSid_Not_Found, nota_v2::_ProjectionRead_rm_getSid_Not_Found::Hash, nota_v2::_ProjectionRead_rm_getSid_Not_Found::HashEqual> _OpCache_with_parameter_rm_getSid_Not_Found = _OpCache_with_parameter_rm_getSid_Not_Found_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_rm_getSid_Not_Found.find(readState); + if(writeState_ptr != _OpCache_with_parameter_rm_getSid_Not_Found.end()) { + nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = writeState_ptr->second; + copiedState._apply_update_for_rm_getSid_Not_Found(writeState); + } else { + copiedState.rm_getSid_Not_Found(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_rm_getSid_Not_Found writeState = copiedState._update_for_rm_getSid_Not_Found(); + _OpCache_with_parameter_rm_getSid_Not_Found.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "rm_getSid_Not_Found"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "rm_getSid_Not_Found"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_in_announceResourceManager read__tr_in_announceResourceManager_state = state._projected_state_for__tr_in_announceResourceManager(); - auto _trid_9_ptr = _OpCache_tr_in_announceResourceManager.find(read__tr_in_announceResourceManager_state); - if(_trid_9_ptr == _OpCache_tr_in_announceResourceManager.end()) { - BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >> _trid_9 = state._tr_in_announceResourceManager(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_in_announceResourceManager_lock(_ProjectionRead__tr_in_announceResourceManager_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_in_announceResourceManager_lock(_ProjectionRead__tr_in_announceResourceManager_mutex); + auto _trid_9_ptr = _OpCache_tr_in_announceResourceManager.find(read__tr_in_announceResourceManager_state); + if(_trid_9_ptr == _OpCache_tr_in_announceResourceManager.end()) { + BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >> _trid_9 = state._tr_in_announceResourceManager(); _OpCache_tr_in_announceResourceManager.insert({read__tr_in_announceResourceManager_state, _trid_9}); - } - for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >& param : _trid_9) { - nota_v2::RESOURCEMANAGER _tmp_1 = param.projection2(); - nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_announceResourceManager readState = state._projected_state_for_in_announceResourceManager(); + for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >& param : _trid_9) { + nota_v2::RESOURCEMANAGER _tmp_1 = param.projection2(); + nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_in_announceResourceManager_ptr = _OpCache_in_announceResourceManager.find(param); - if(_OpCache_with_parameter_in_announceResourceManager_ptr == _OpCache_in_announceResourceManager.end()) { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_announceResourceManager readState = state._projected_state_for_in_announceResourceManager(); { std::unique_lock<std::mutex> _ProjectionRead_in_announceResourceManager_lock(_ProjectionRead_in_announceResourceManager_mutex); - copiedState.in_announceResourceManager(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_in_announceResourceManager writeState = copiedState._update_for_in_announceResourceManager(); - std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual>(); - _OpCache_with_parameter_in_announceResourceManager.insert({readState, writeState}); - _OpCache_in_announceResourceManager.insert({param, _OpCache_with_parameter_in_announceResourceManager}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_in_announceResourceManager_lock(_ProjectionRead_in_announceResourceManager_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = _OpCache_with_parameter_in_announceResourceManager_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_announceResourceManager.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_announceResourceManager.end()) { - nota_v2::_ProjectionWrite_in_announceResourceManager writeState = writeState_ptr->second; - copiedState._apply_update_for_in_announceResourceManager(writeState); - } else { + auto _OpCache_with_parameter_in_announceResourceManager_ptr = _OpCache_in_announceResourceManager.find(param); + if(_OpCache_with_parameter_in_announceResourceManager_ptr == _OpCache_in_announceResourceManager.end()) { copiedState.in_announceResourceManager(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_in_announceResourceManager writeState = copiedState._update_for_in_announceResourceManager(); + std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual>(); _OpCache_with_parameter_in_announceResourceManager.insert({readState, writeState}); + _OpCache_in_announceResourceManager.insert({param, _OpCache_with_parameter_in_announceResourceManager}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = _OpCache_with_parameter_in_announceResourceManager_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_announceResourceManager.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_announceResourceManager.end()) { + nota_v2::_ProjectionWrite_in_announceResourceManager writeState = writeState_ptr->second; + copiedState._apply_update_for_in_announceResourceManager(writeState); + } else { + copiedState.in_announceResourceManager(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_in_announceResourceManager writeState = copiedState._update_for_in_announceResourceManager(); + _OpCache_with_parameter_in_announceResourceManager.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_announceResourceManager"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >> _trid_9 = _trid_9_ptr->second; - for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >& param : _trid_9) { - nota_v2::RESOURCEMANAGER _tmp_1 = param.projection2(); - nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_announceResourceManager readState = state._projected_state_for_in_announceResourceManager(); - - auto _OpCache_with_parameter_in_announceResourceManager_ptr = _OpCache_in_announceResourceManager.find(param); - if(_OpCache_with_parameter_in_announceResourceManager_ptr == _OpCache_in_announceResourceManager.end()) { + copiedState.stateAccessedVia = "in_announceResourceManager"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_in_announceResourceManager_lock(_ProjectionRead_in_announceResourceManager_mutex); - copiedState.in_announceResourceManager(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_in_announceResourceManager writeState = copiedState._update_for_in_announceResourceManager(); - std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual>(); - _OpCache_with_parameter_in_announceResourceManager.insert({readState, writeState}); - _OpCache_in_announceResourceManager.insert({param, _OpCache_with_parameter_in_announceResourceManager}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >> _trid_9 = _trid_9_ptr->second; + for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::RESOURCEMANAGER >& param : _trid_9) { + nota_v2::RESOURCEMANAGER _tmp_1 = param.projection2(); + nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_announceResourceManager readState = state._projected_state_for_in_announceResourceManager(); { std::unique_lock<std::mutex> _ProjectionRead_in_announceResourceManager_lock(_ProjectionRead_in_announceResourceManager_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = _OpCache_with_parameter_in_announceResourceManager_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_announceResourceManager.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_announceResourceManager.end()) { - nota_v2::_ProjectionWrite_in_announceResourceManager writeState = writeState_ptr->second; - copiedState._apply_update_for_in_announceResourceManager(writeState); - } else { + auto _OpCache_with_parameter_in_announceResourceManager_ptr = _OpCache_in_announceResourceManager.find(param); + if(_OpCache_with_parameter_in_announceResourceManager_ptr == _OpCache_in_announceResourceManager.end()) { copiedState.in_announceResourceManager(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_in_announceResourceManager writeState = copiedState._update_for_in_announceResourceManager(); + std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual>(); _OpCache_with_parameter_in_announceResourceManager.insert({readState, writeState}); + _OpCache_in_announceResourceManager.insert({param, _OpCache_with_parameter_in_announceResourceManager}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_announceResourceManager, nota_v2::_ProjectionWrite_in_announceResourceManager, nota_v2::_ProjectionRead_in_announceResourceManager::Hash, nota_v2::_ProjectionRead_in_announceResourceManager::HashEqual> _OpCache_with_parameter_in_announceResourceManager = _OpCache_with_parameter_in_announceResourceManager_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_announceResourceManager.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_announceResourceManager.end()) { + nota_v2::_ProjectionWrite_in_announceResourceManager writeState = writeState_ptr->second; + copiedState._apply_update_for_in_announceResourceManager(writeState); + } else { + copiedState.in_announceResourceManager(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_in_announceResourceManager writeState = copiedState._update_for_in_announceResourceManager(); + _OpCache_with_parameter_in_announceResourceManager.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_announceResourceManager"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "in_announceResourceManager"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_in_register_success read__tr_in_register_success_state = state._projected_state_for__tr_in_register_success(); - auto _trid_10_ptr = _OpCache_tr_in_register_success.find(read__tr_in_register_success_state); - if(_trid_10_ptr == _OpCache_tr_in_register_success.end()) { - BSet<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >> _trid_10 = state._tr_in_register_success(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_in_register_success_lock(_ProjectionRead__tr_in_register_success_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_in_register_success_lock(_ProjectionRead__tr_in_register_success_mutex); + auto _trid_10_ptr = _OpCache_tr_in_register_success.find(read__tr_in_register_success_state); + if(_trid_10_ptr == _OpCache_tr_in_register_success.end()) { + BSet<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >> _trid_10 = state._tr_in_register_success(); _OpCache_tr_in_register_success.insert({read__tr_in_register_success_state, _trid_10}); - } - for(const BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >& param : _trid_10) { - nota_v2::SID _tmp_1 = param.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE > _tmp_2 = param.projection1(); - nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); - nota_v2::INTERCONNECTNODE _tmp_4 = _tmp_2.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_register_success readState = state._projected_state_for_in_register_success(); - - auto _OpCache_with_parameter_in_register_success_ptr = _OpCache_in_register_success.find(param); - if(_OpCache_with_parameter_in_register_success_ptr == _OpCache_in_register_success.end()) { + for(const BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >& param : _trid_10) { + nota_v2::SID _tmp_1 = param.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE > _tmp_2 = param.projection1(); + nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); + nota_v2::INTERCONNECTNODE _tmp_4 = _tmp_2.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_register_success readState = state._projected_state_for_in_register_success(); { std::unique_lock<std::mutex> _ProjectionRead_in_register_success_lock(_ProjectionRead_in_register_success_mutex); - copiedState.in_register_success(_tmp_4, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_in_register_success writeState = copiedState._update_for_in_register_success(); - std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual>(); - _OpCache_with_parameter_in_register_success.insert({readState, writeState}); - _OpCache_in_register_success.insert({param, _OpCache_with_parameter_in_register_success}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_in_register_success_lock(_ProjectionRead_in_register_success_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = _OpCache_with_parameter_in_register_success_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_register_success.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_register_success.end()) { - nota_v2::_ProjectionWrite_in_register_success writeState = writeState_ptr->second; - copiedState._apply_update_for_in_register_success(writeState); - } else { + auto _OpCache_with_parameter_in_register_success_ptr = _OpCache_in_register_success.find(param); + if(_OpCache_with_parameter_in_register_success_ptr == _OpCache_in_register_success.end()) { copiedState.in_register_success(_tmp_4, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_in_register_success writeState = copiedState._update_for_in_register_success(); + std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual>(); _OpCache_with_parameter_in_register_success.insert({readState, writeState}); + _OpCache_in_register_success.insert({param, _OpCache_with_parameter_in_register_success}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = _OpCache_with_parameter_in_register_success_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_register_success.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_register_success.end()) { + nota_v2::_ProjectionWrite_in_register_success writeState = writeState_ptr->second; + copiedState._apply_update_for_in_register_success(writeState); + } else { + copiedState.in_register_success(_tmp_4, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_in_register_success writeState = copiedState._update_for_in_register_success(); + _OpCache_with_parameter_in_register_success.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_register_success"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >> _trid_10 = _trid_10_ptr->second; - for(const BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >& param : _trid_10) { - nota_v2::SID _tmp_1 = param.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE > _tmp_2 = param.projection1(); - nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); - nota_v2::INTERCONNECTNODE _tmp_4 = _tmp_2.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_register_success readState = state._projected_state_for_in_register_success(); - - auto _OpCache_with_parameter_in_register_success_ptr = _OpCache_in_register_success.find(param); - if(_OpCache_with_parameter_in_register_success_ptr == _OpCache_in_register_success.end()) { + copiedState.stateAccessedVia = "in_register_success"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_in_register_success_lock(_ProjectionRead_in_register_success_mutex); - copiedState.in_register_success(_tmp_4, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_in_register_success writeState = copiedState._update_for_in_register_success(); - std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual>(); - _OpCache_with_parameter_in_register_success.insert({readState, writeState}); - _OpCache_in_register_success.insert({param, _OpCache_with_parameter_in_register_success}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >> _trid_10 = _trid_10_ptr->second; + for(const BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >, nota_v2::SID >& param : _trid_10) { + nota_v2::SID _tmp_1 = param.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE > _tmp_2 = param.projection1(); + nota_v2::SERVICE _tmp_3 = _tmp_2.projection2(); + nota_v2::INTERCONNECTNODE _tmp_4 = _tmp_2.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_register_success readState = state._projected_state_for_in_register_success(); { std::unique_lock<std::mutex> _ProjectionRead_in_register_success_lock(_ProjectionRead_in_register_success_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = _OpCache_with_parameter_in_register_success_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_register_success.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_register_success.end()) { - nota_v2::_ProjectionWrite_in_register_success writeState = writeState_ptr->second; - copiedState._apply_update_for_in_register_success(writeState); - } else { + auto _OpCache_with_parameter_in_register_success_ptr = _OpCache_in_register_success.find(param); + if(_OpCache_with_parameter_in_register_success_ptr == _OpCache_in_register_success.end()) { copiedState.in_register_success(_tmp_4, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_in_register_success writeState = copiedState._update_for_in_register_success(); + std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual>(); _OpCache_with_parameter_in_register_success.insert({readState, writeState}); + _OpCache_in_register_success.insert({param, _OpCache_with_parameter_in_register_success}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_register_success, nota_v2::_ProjectionWrite_in_register_success, nota_v2::_ProjectionRead_in_register_success::Hash, nota_v2::_ProjectionRead_in_register_success::HashEqual> _OpCache_with_parameter_in_register_success = _OpCache_with_parameter_in_register_success_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_register_success.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_register_success.end()) { + nota_v2::_ProjectionWrite_in_register_success writeState = writeState_ptr->second; + copiedState._apply_update_for_in_register_success(writeState); + } else { + copiedState.in_register_success(_tmp_4, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_in_register_success writeState = copiedState._update_for_in_register_success(); + _OpCache_with_parameter_in_register_success.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_register_success"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "in_register_success"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_in_register_failed read__tr_in_register_failed_state = state._projected_state_for__tr_in_register_failed(); - auto _trid_11_ptr = _OpCache_tr_in_register_failed.find(read__tr_in_register_failed_state); - if(_trid_11_ptr == _OpCache_tr_in_register_failed.end()) { - BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_11 = state._tr_in_register_failed(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_in_register_failed_lock(_ProjectionRead__tr_in_register_failed_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_in_register_failed_lock(_ProjectionRead__tr_in_register_failed_mutex); + auto _trid_11_ptr = _OpCache_tr_in_register_failed.find(read__tr_in_register_failed_state); + if(_trid_11_ptr == _OpCache_tr_in_register_failed.end()) { + BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_11 = state._tr_in_register_failed(); _OpCache_tr_in_register_failed.insert({read__tr_in_register_failed_state, _trid_11}); - } - for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_11) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_register_failed readState = state._projected_state_for_in_register_failed(); + for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_11) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_in_register_failed_ptr = _OpCache_in_register_failed.find(param); - if(_OpCache_with_parameter_in_register_failed_ptr == _OpCache_in_register_failed.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_in_register_failed_lock(_ProjectionRead_in_register_failed_mutex); - copiedState.in_register_failed(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_in_register_failed writeState = copiedState._update_for_in_register_failed(); - std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual>(); - _OpCache_with_parameter_in_register_failed.insert({readState, writeState}); - _OpCache_in_register_failed.insert({param, _OpCache_with_parameter_in_register_failed}); - } - } else { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_register_failed readState = state._projected_state_for_in_register_failed(); { std::unique_lock<std::mutex> _ProjectionRead_in_register_failed_lock(_ProjectionRead_in_register_failed_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = _OpCache_with_parameter_in_register_failed_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_register_failed.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_register_failed.end()) { - nota_v2::_ProjectionWrite_in_register_failed writeState = writeState_ptr->second; - copiedState._apply_update_for_in_register_failed(writeState); - } else { + auto _OpCache_with_parameter_in_register_failed_ptr = _OpCache_in_register_failed.find(param); + if(_OpCache_with_parameter_in_register_failed_ptr == _OpCache_in_register_failed.end()) { copiedState.in_register_failed(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_in_register_failed writeState = copiedState._update_for_in_register_failed(); + std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual>(); _OpCache_with_parameter_in_register_failed.insert({readState, writeState}); + _OpCache_in_register_failed.insert({param, _OpCache_with_parameter_in_register_failed}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = _OpCache_with_parameter_in_register_failed_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_register_failed.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_register_failed.end()) { + nota_v2::_ProjectionWrite_in_register_failed writeState = writeState_ptr->second; + copiedState._apply_update_for_in_register_failed(writeState); + } else { + copiedState.in_register_failed(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_in_register_failed writeState = copiedState._update_for_in_register_failed(); + _OpCache_with_parameter_in_register_failed.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_register_failed"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_11 = _trid_11_ptr->second; - for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_11) { - nota_v2::SERVICE _tmp_1 = param.projection2(); - nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_register_failed readState = state._projected_state_for_in_register_failed(); - - auto _OpCache_with_parameter_in_register_failed_ptr = _OpCache_in_register_failed.find(param); - if(_OpCache_with_parameter_in_register_failed_ptr == _OpCache_in_register_failed.end()) { + copiedState.stateAccessedVia = "in_register_failed"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_in_register_failed_lock(_ProjectionRead_in_register_failed_mutex); - copiedState.in_register_failed(_tmp_2, _tmp_1); - nota_v2::_ProjectionWrite_in_register_failed writeState = copiedState._update_for_in_register_failed(); - std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual>(); - _OpCache_with_parameter_in_register_failed.insert({readState, writeState}); - _OpCache_in_register_failed.insert({param, _OpCache_with_parameter_in_register_failed}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >> _trid_11 = _trid_11_ptr->second; + for(const BTuple<nota_v2::INTERCONNECTNODE, nota_v2::SERVICE >& param : _trid_11) { + nota_v2::SERVICE _tmp_1 = param.projection2(); + nota_v2::INTERCONNECTNODE _tmp_2 = param.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_register_failed readState = state._projected_state_for_in_register_failed(); { std::unique_lock<std::mutex> _ProjectionRead_in_register_failed_lock(_ProjectionRead_in_register_failed_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = _OpCache_with_parameter_in_register_failed_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_register_failed.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_register_failed.end()) { - nota_v2::_ProjectionWrite_in_register_failed writeState = writeState_ptr->second; - copiedState._apply_update_for_in_register_failed(writeState); - } else { + auto _OpCache_with_parameter_in_register_failed_ptr = _OpCache_in_register_failed.find(param); + if(_OpCache_with_parameter_in_register_failed_ptr == _OpCache_in_register_failed.end()) { copiedState.in_register_failed(_tmp_2, _tmp_1); nota_v2::_ProjectionWrite_in_register_failed writeState = copiedState._update_for_in_register_failed(); + std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual>(); _OpCache_with_parameter_in_register_failed.insert({readState, writeState}); + _OpCache_in_register_failed.insert({param, _OpCache_with_parameter_in_register_failed}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_register_failed, nota_v2::_ProjectionWrite_in_register_failed, nota_v2::_ProjectionRead_in_register_failed::Hash, nota_v2::_ProjectionRead_in_register_failed::HashEqual> _OpCache_with_parameter_in_register_failed = _OpCache_with_parameter_in_register_failed_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_register_failed.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_register_failed.end()) { + nota_v2::_ProjectionWrite_in_register_failed writeState = writeState_ptr->second; + copiedState._apply_update_for_in_register_failed(writeState); + } else { + copiedState.in_register_failed(_tmp_2, _tmp_1); + nota_v2::_ProjectionWrite_in_register_failed writeState = copiedState._update_for_in_register_failed(); + _OpCache_with_parameter_in_register_failed.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_register_failed"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "in_register_failed"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_in_requestTargetSocket_Granted read__tr_in_requestTargetSocket_Granted_state = state._projected_state_for__tr_in_requestTargetSocket_Granted(); - auto _trid_12_ptr = _OpCache_tr_in_requestTargetSocket_Granted.find(read__tr_in_requestTargetSocket_Granted_state); - if(_trid_12_ptr == _OpCache_tr_in_requestTargetSocket_Granted.end()) { - BSet<BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_12 = state._tr_in_requestTargetSocket_Granted(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_in_requestTargetSocket_Granted_lock(_ProjectionRead__tr_in_requestTargetSocket_Granted_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_in_requestTargetSocket_Granted_lock(_ProjectionRead__tr_in_requestTargetSocket_Granted_mutex); + auto _trid_12_ptr = _OpCache_tr_in_requestTargetSocket_Granted.find(read__tr_in_requestTargetSocket_Granted_state); + if(_trid_12_ptr == _OpCache_tr_in_requestTargetSocket_Granted.end()) { + BSet<BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_12 = state._tr_in_requestTargetSocket_Granted(); _OpCache_tr_in_requestTargetSocket_Granted.insert({read__tr_in_requestTargetSocket_Granted_state, _trid_12}); - } - for(const BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_12) { - nota_v2::SOCKET _tmp_1 = param.projection2(); - BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); - nota_v2::SID _tmp_3 = _tmp_2.projection2(); - BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); - nota_v2::SID _tmp_5 = _tmp_4.projection2(); - BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_6 = _tmp_4.projection1(); - nota_v2::SOCKET _tmp_7 = _tmp_6.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_8 = _tmp_6.projection1(); - nota_v2::INTERCONNECTNODE _tmp_9 = _tmp_8.projection2(); - nota_v2::INTERCONNECTNODE _tmp_10 = _tmp_8.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_requestTargetSocket_Granted readState = state._projected_state_for_in_requestTargetSocket_Granted(); - - auto _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr = _OpCache_in_requestTargetSocket_Granted.find(param); - if(_OpCache_with_parameter_in_requestTargetSocket_Granted_ptr == _OpCache_in_requestTargetSocket_Granted.end()) { + for(const BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_12) { + nota_v2::SOCKET _tmp_1 = param.projection2(); + BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); + nota_v2::SID _tmp_3 = _tmp_2.projection2(); + BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); + nota_v2::SID _tmp_5 = _tmp_4.projection2(); + BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_6 = _tmp_4.projection1(); + nota_v2::SOCKET _tmp_7 = _tmp_6.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_8 = _tmp_6.projection1(); + nota_v2::INTERCONNECTNODE _tmp_9 = _tmp_8.projection2(); + nota_v2::INTERCONNECTNODE _tmp_10 = _tmp_8.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_requestTargetSocket_Granted readState = state._projected_state_for_in_requestTargetSocket_Granted(); { std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_Granted_lock(_ProjectionRead_in_requestTargetSocket_Granted_mutex); - copiedState.in_requestTargetSocket_Granted(_tmp_10, _tmp_9, _tmp_7, _tmp_5, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = copiedState._update_for_in_requestTargetSocket_Granted(); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual>(); - _OpCache_with_parameter_in_requestTargetSocket_Granted.insert({readState, writeState}); - _OpCache_in_requestTargetSocket_Granted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_Granted}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_Granted_lock(_ProjectionRead_in_requestTargetSocket_Granted_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_Granted.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_Granted.end()) { - nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = writeState_ptr->second; - copiedState._apply_update_for_in_requestTargetSocket_Granted(writeState); - } else { + auto _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr = _OpCache_in_requestTargetSocket_Granted.find(param); + if(_OpCache_with_parameter_in_requestTargetSocket_Granted_ptr == _OpCache_in_requestTargetSocket_Granted.end()) { copiedState.in_requestTargetSocket_Granted(_tmp_10, _tmp_9, _tmp_7, _tmp_5, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = copiedState._update_for_in_requestTargetSocket_Granted(); + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual>(); _OpCache_with_parameter_in_requestTargetSocket_Granted.insert({readState, writeState}); + _OpCache_in_requestTargetSocket_Granted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_Granted}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_Granted.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_Granted.end()) { + nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = writeState_ptr->second; + copiedState._apply_update_for_in_requestTargetSocket_Granted(writeState); + } else { + copiedState.in_requestTargetSocket_Granted(_tmp_10, _tmp_9, _tmp_7, _tmp_5, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = copiedState._update_for_in_requestTargetSocket_Granted(); + _OpCache_with_parameter_in_requestTargetSocket_Granted.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_requestTargetSocket_Granted"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_12 = _trid_12_ptr->second; - for(const BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_12) { - nota_v2::SOCKET _tmp_1 = param.projection2(); - BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); - nota_v2::SID _tmp_3 = _tmp_2.projection2(); - BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); - nota_v2::SID _tmp_5 = _tmp_4.projection2(); - BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_6 = _tmp_4.projection1(); - nota_v2::SOCKET _tmp_7 = _tmp_6.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_8 = _tmp_6.projection1(); - nota_v2::INTERCONNECTNODE _tmp_9 = _tmp_8.projection2(); - nota_v2::INTERCONNECTNODE _tmp_10 = _tmp_8.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_requestTargetSocket_Granted readState = state._projected_state_for_in_requestTargetSocket_Granted(); - - auto _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr = _OpCache_in_requestTargetSocket_Granted.find(param); - if(_OpCache_with_parameter_in_requestTargetSocket_Granted_ptr == _OpCache_in_requestTargetSocket_Granted.end()) { + copiedState.stateAccessedVia = "in_requestTargetSocket_Granted"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_Granted_lock(_ProjectionRead_in_requestTargetSocket_Granted_mutex); - copiedState.in_requestTargetSocket_Granted(_tmp_10, _tmp_9, _tmp_7, _tmp_5, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = copiedState._update_for_in_requestTargetSocket_Granted(); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual>(); - _OpCache_with_parameter_in_requestTargetSocket_Granted.insert({readState, writeState}); - _OpCache_in_requestTargetSocket_Granted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_Granted}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >> _trid_12 = _trid_12_ptr->second; + for(const BTuple<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >, nota_v2::SOCKET >& param : _trid_12) { + nota_v2::SOCKET _tmp_1 = param.projection2(); + BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID > _tmp_2 = param.projection1(); + nota_v2::SID _tmp_3 = _tmp_2.projection2(); + BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_4 = _tmp_2.projection1(); + nota_v2::SID _tmp_5 = _tmp_4.projection2(); + BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_6 = _tmp_4.projection1(); + nota_v2::SOCKET _tmp_7 = _tmp_6.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_8 = _tmp_6.projection1(); + nota_v2::INTERCONNECTNODE _tmp_9 = _tmp_8.projection2(); + nota_v2::INTERCONNECTNODE _tmp_10 = _tmp_8.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_requestTargetSocket_Granted readState = state._projected_state_for_in_requestTargetSocket_Granted(); { std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_Granted_lock(_ProjectionRead_in_requestTargetSocket_Granted_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_Granted.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_Granted.end()) { - nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = writeState_ptr->second; - copiedState._apply_update_for_in_requestTargetSocket_Granted(writeState); - } else { + auto _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr = _OpCache_in_requestTargetSocket_Granted.find(param); + if(_OpCache_with_parameter_in_requestTargetSocket_Granted_ptr == _OpCache_in_requestTargetSocket_Granted.end()) { copiedState.in_requestTargetSocket_Granted(_tmp_10, _tmp_9, _tmp_7, _tmp_5, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = copiedState._update_for_in_requestTargetSocket_Granted(); + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual>(); _OpCache_with_parameter_in_requestTargetSocket_Granted.insert({readState, writeState}); + _OpCache_in_requestTargetSocket_Granted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_Granted}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_Granted, nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_Granted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_Granted = _OpCache_with_parameter_in_requestTargetSocket_Granted_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_Granted.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_Granted.end()) { + nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = writeState_ptr->second; + copiedState._apply_update_for_in_requestTargetSocket_Granted(writeState); + } else { + copiedState.in_requestTargetSocket_Granted(_tmp_10, _tmp_9, _tmp_7, _tmp_5, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_in_requestTargetSocket_Granted writeState = copiedState._update_for_in_requestTargetSocket_Granted(); + _OpCache_with_parameter_in_requestTargetSocket_Granted.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_requestTargetSocket_Granted"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "in_requestTargetSocket_Granted"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_in_requestTargetSocket_NotGranted read__tr_in_requestTargetSocket_NotGranted_state = state._projected_state_for__tr_in_requestTargetSocket_NotGranted(); - auto _trid_13_ptr = _OpCache_tr_in_requestTargetSocket_NotGranted.find(read__tr_in_requestTargetSocket_NotGranted_state); - if(_trid_13_ptr == _OpCache_tr_in_requestTargetSocket_NotGranted.end()) { - BSet<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >> _trid_13 = state._tr_in_requestTargetSocket_NotGranted(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_in_requestTargetSocket_NotGranted_lock(_ProjectionRead__tr_in_requestTargetSocket_NotGranted_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_in_requestTargetSocket_NotGranted_lock(_ProjectionRead__tr_in_requestTargetSocket_NotGranted_mutex); + auto _trid_13_ptr = _OpCache_tr_in_requestTargetSocket_NotGranted.find(read__tr_in_requestTargetSocket_NotGranted_state); + if(_trid_13_ptr == _OpCache_tr_in_requestTargetSocket_NotGranted.end()) { + BSet<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >> _trid_13 = state._tr_in_requestTargetSocket_NotGranted(); _OpCache_tr_in_requestTargetSocket_NotGranted.insert({read__tr_in_requestTargetSocket_NotGranted_state, _trid_13}); - } - for(const BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >& param : _trid_13) { - nota_v2::SID _tmp_1 = param.projection2(); - BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_2 = param.projection1(); - nota_v2::SID _tmp_3 = _tmp_2.projection2(); - BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_4 = _tmp_2.projection1(); - nota_v2::SOCKET _tmp_5 = _tmp_4.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_6 = _tmp_4.projection1(); - nota_v2::INTERCONNECTNODE _tmp_7 = _tmp_6.projection2(); - nota_v2::INTERCONNECTNODE _tmp_8 = _tmp_6.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted readState = state._projected_state_for_in_requestTargetSocket_NotGranted(); - - auto _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr = _OpCache_in_requestTargetSocket_NotGranted.find(param); - if(_OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr == _OpCache_in_requestTargetSocket_NotGranted.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_NotGranted_lock(_ProjectionRead_in_requestTargetSocket_NotGranted_mutex); - copiedState.in_requestTargetSocket_NotGranted(_tmp_8, _tmp_7, _tmp_5, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = copiedState._update_for_in_requestTargetSocket_NotGranted(); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual>(); - _OpCache_with_parameter_in_requestTargetSocket_NotGranted.insert({readState, writeState}); - _OpCache_in_requestTargetSocket_NotGranted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_NotGranted}); - } - } else { + for(const BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >& param : _trid_13) { + nota_v2::SID _tmp_1 = param.projection2(); + BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_2 = param.projection1(); + nota_v2::SID _tmp_3 = _tmp_2.projection2(); + BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_4 = _tmp_2.projection1(); + nota_v2::SOCKET _tmp_5 = _tmp_4.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_6 = _tmp_4.projection1(); + nota_v2::INTERCONNECTNODE _tmp_7 = _tmp_6.projection2(); + nota_v2::INTERCONNECTNODE _tmp_8 = _tmp_6.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted readState = state._projected_state_for_in_requestTargetSocket_NotGranted(); { std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_NotGranted_lock(_ProjectionRead_in_requestTargetSocket_NotGranted_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_NotGranted.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_NotGranted.end()) { - nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = writeState_ptr->second; - copiedState._apply_update_for_in_requestTargetSocket_NotGranted(writeState); - } else { + auto _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr = _OpCache_in_requestTargetSocket_NotGranted.find(param); + if(_OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr == _OpCache_in_requestTargetSocket_NotGranted.end()) { copiedState.in_requestTargetSocket_NotGranted(_tmp_8, _tmp_7, _tmp_5, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = copiedState._update_for_in_requestTargetSocket_NotGranted(); + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual>(); _OpCache_with_parameter_in_requestTargetSocket_NotGranted.insert({readState, writeState}); + _OpCache_in_requestTargetSocket_NotGranted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_NotGranted}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_NotGranted.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_NotGranted.end()) { + nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = writeState_ptr->second; + copiedState._apply_update_for_in_requestTargetSocket_NotGranted(writeState); + } else { + copiedState.in_requestTargetSocket_NotGranted(_tmp_8, _tmp_7, _tmp_5, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = copiedState._update_for_in_requestTargetSocket_NotGranted(); + _OpCache_with_parameter_in_requestTargetSocket_NotGranted.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_requestTargetSocket_NotGranted"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >> _trid_13 = _trid_13_ptr->second; - for(const BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >& param : _trid_13) { - nota_v2::SID _tmp_1 = param.projection2(); - BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_2 = param.projection1(); - nota_v2::SID _tmp_3 = _tmp_2.projection2(); - BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_4 = _tmp_2.projection1(); - nota_v2::SOCKET _tmp_5 = _tmp_4.projection2(); - BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_6 = _tmp_4.projection1(); - nota_v2::INTERCONNECTNODE _tmp_7 = _tmp_6.projection2(); - nota_v2::INTERCONNECTNODE _tmp_8 = _tmp_6.projection1(); - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted readState = state._projected_state_for_in_requestTargetSocket_NotGranted(); - - auto _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr = _OpCache_in_requestTargetSocket_NotGranted.find(param); - if(_OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr == _OpCache_in_requestTargetSocket_NotGranted.end()) { + copiedState.stateAccessedVia = "in_requestTargetSocket_NotGranted"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_NotGranted_lock(_ProjectionRead_in_requestTargetSocket_NotGranted_mutex); - copiedState.in_requestTargetSocket_NotGranted(_tmp_8, _tmp_7, _tmp_5, _tmp_3, _tmp_1); - nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = copiedState._update_for_in_requestTargetSocket_NotGranted(); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual>(); - _OpCache_with_parameter_in_requestTargetSocket_NotGranted.insert({readState, writeState}); - _OpCache_in_requestTargetSocket_NotGranted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_NotGranted}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >> _trid_13 = _trid_13_ptr->second; + for(const BTuple<BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID >, nota_v2::SID >& param : _trid_13) { + nota_v2::SID _tmp_1 = param.projection2(); + BTuple<BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET >, nota_v2::SID > _tmp_2 = param.projection1(); + nota_v2::SID _tmp_3 = _tmp_2.projection2(); + BTuple<BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE >, nota_v2::SOCKET > _tmp_4 = _tmp_2.projection1(); + nota_v2::SOCKET _tmp_5 = _tmp_4.projection2(); + BTuple<nota_v2::INTERCONNECTNODE, nota_v2::INTERCONNECTNODE > _tmp_6 = _tmp_4.projection1(); + nota_v2::INTERCONNECTNODE _tmp_7 = _tmp_6.projection2(); + nota_v2::INTERCONNECTNODE _tmp_8 = _tmp_6.projection1(); + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted readState = state._projected_state_for_in_requestTargetSocket_NotGranted(); { std::unique_lock<std::mutex> _ProjectionRead_in_requestTargetSocket_NotGranted_lock(_ProjectionRead_in_requestTargetSocket_NotGranted_mutex); - std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_NotGranted.find(readState); - if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_NotGranted.end()) { - nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = writeState_ptr->second; - copiedState._apply_update_for_in_requestTargetSocket_NotGranted(writeState); - } else { + auto _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr = _OpCache_in_requestTargetSocket_NotGranted.find(param); + if(_OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr == _OpCache_in_requestTargetSocket_NotGranted.end()) { copiedState.in_requestTargetSocket_NotGranted(_tmp_8, _tmp_7, _tmp_5, _tmp_3, _tmp_1); nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = copiedState._update_for_in_requestTargetSocket_NotGranted(); + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual>(); _OpCache_with_parameter_in_requestTargetSocket_NotGranted.insert({readState, writeState}); + _OpCache_in_requestTargetSocket_NotGranted.insert({param, _OpCache_with_parameter_in_requestTargetSocket_NotGranted}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::Hash, nota_v2::_ProjectionRead_in_requestTargetSocket_NotGranted::HashEqual> _OpCache_with_parameter_in_requestTargetSocket_NotGranted = _OpCache_with_parameter_in_requestTargetSocket_NotGranted_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_in_requestTargetSocket_NotGranted.find(readState); + if(writeState_ptr != _OpCache_with_parameter_in_requestTargetSocket_NotGranted.end()) { + nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = writeState_ptr->second; + copiedState._apply_update_for_in_requestTargetSocket_NotGranted(writeState); + } else { + copiedState.in_requestTargetSocket_NotGranted(_tmp_8, _tmp_7, _tmp_5, _tmp_3, _tmp_1); + nota_v2::_ProjectionWrite_in_requestTargetSocket_NotGranted writeState = copiedState._update_for_in_requestTargetSocket_NotGranted(); + _OpCache_with_parameter_in_requestTargetSocket_NotGranted.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "in_requestTargetSocket_NotGranted"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "in_requestTargetSocket_NotGranted"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } nota_v2::_ProjectionRead__tr_svc_register read__tr_svc_register_state = state._projected_state_for__tr_svc_register(); - auto _trid_14_ptr = _OpCache_tr_svc_register.find(read__tr_svc_register_state); - if(_trid_14_ptr == _OpCache_tr_svc_register.end()) { - BSet<nota_v2::SERVICE> _trid_14 = state._tr_svc_register(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_svc_register_lock(_ProjectionRead__tr_svc_register_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_svc_register_lock(_ProjectionRead__tr_svc_register_mutex); + auto _trid_14_ptr = _OpCache_tr_svc_register.find(read__tr_svc_register_state); + if(_trid_14_ptr == _OpCache_tr_svc_register.end()) { + BSet<nota_v2::SERVICE> _trid_14 = state._tr_svc_register(); _OpCache_tr_svc_register.insert({read__tr_svc_register_state, _trid_14}); - } - for(const nota_v2::SERVICE& param : _trid_14) { - nota_v2::SERVICE _tmp_1 = param; + for(const nota_v2::SERVICE& param : _trid_14) { + nota_v2::SERVICE _tmp_1 = param; - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_svc_register readState = state._projected_state_for_svc_register(); - - auto _OpCache_with_parameter_svc_register_ptr = _OpCache_svc_register.find(param); - if(_OpCache_with_parameter_svc_register_ptr == _OpCache_svc_register.end()) { + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_svc_register readState = state._projected_state_for_svc_register(); { std::unique_lock<std::mutex> _ProjectionRead_svc_register_lock(_ProjectionRead_svc_register_mutex); - copiedState.svc_register(_tmp_1); - nota_v2::_ProjectionWrite_svc_register writeState = copiedState._update_for_svc_register(); - std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual>(); - _OpCache_with_parameter_svc_register.insert({readState, writeState}); - _OpCache_svc_register.insert({param, _OpCache_with_parameter_svc_register}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_svc_register_lock(_ProjectionRead_svc_register_mutex); - std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = _OpCache_with_parameter_svc_register_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_svc_register.find(readState); - if(writeState_ptr != _OpCache_with_parameter_svc_register.end()) { - nota_v2::_ProjectionWrite_svc_register writeState = writeState_ptr->second; - copiedState._apply_update_for_svc_register(writeState); - } else { + auto _OpCache_with_parameter_svc_register_ptr = _OpCache_svc_register.find(param); + if(_OpCache_with_parameter_svc_register_ptr == _OpCache_svc_register.end()) { copiedState.svc_register(_tmp_1); nota_v2::_ProjectionWrite_svc_register writeState = copiedState._update_for_svc_register(); + std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual>(); _OpCache_with_parameter_svc_register.insert({readState, writeState}); + _OpCache_svc_register.insert({param, _OpCache_with_parameter_svc_register}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = _OpCache_with_parameter_svc_register_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_svc_register.find(readState); + if(writeState_ptr != _OpCache_with_parameter_svc_register.end()) { + nota_v2::_ProjectionWrite_svc_register writeState = writeState_ptr->second; + copiedState._apply_update_for_svc_register(writeState); + } else { + copiedState.svc_register(_tmp_1); + nota_v2::_ProjectionWrite_svc_register writeState = copiedState._update_for_svc_register(); + _OpCache_with_parameter_svc_register.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "svc_register"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<nota_v2::SERVICE> _trid_14 = _trid_14_ptr->second; - for(const nota_v2::SERVICE& param : _trid_14) { - nota_v2::SERVICE _tmp_1 = param; - - nota_v2 copiedState = state._copy(); - nota_v2::_ProjectionRead_svc_register readState = state._projected_state_for_svc_register(); - - auto _OpCache_with_parameter_svc_register_ptr = _OpCache_svc_register.find(param); - if(_OpCache_with_parameter_svc_register_ptr == _OpCache_svc_register.end()) { + copiedState.stateAccessedVia = "svc_register"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_svc_register_lock(_ProjectionRead_svc_register_mutex); - copiedState.svc_register(_tmp_1); - nota_v2::_ProjectionWrite_svc_register writeState = copiedState._update_for_svc_register(); - std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual>(); - _OpCache_with_parameter_svc_register.insert({readState, writeState}); - _OpCache_svc_register.insert({param, _OpCache_with_parameter_svc_register}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<nota_v2::SERVICE> _trid_14 = _trid_14_ptr->second; + for(const nota_v2::SERVICE& param : _trid_14) { + nota_v2::SERVICE _tmp_1 = param; + + nota_v2 copiedState = state._copy(); + nota_v2::_ProjectionRead_svc_register readState = state._projected_state_for_svc_register(); { std::unique_lock<std::mutex> _ProjectionRead_svc_register_lock(_ProjectionRead_svc_register_mutex); - std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = _OpCache_with_parameter_svc_register_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_svc_register.find(readState); - if(writeState_ptr != _OpCache_with_parameter_svc_register.end()) { - nota_v2::_ProjectionWrite_svc_register writeState = writeState_ptr->second; - copiedState._apply_update_for_svc_register(writeState); - } else { + auto _OpCache_with_parameter_svc_register_ptr = _OpCache_svc_register.find(param); + if(_OpCache_with_parameter_svc_register_ptr == _OpCache_svc_register.end()) { copiedState.svc_register(_tmp_1); nota_v2::_ProjectionWrite_svc_register writeState = copiedState._update_for_svc_register(); + std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual>(); _OpCache_with_parameter_svc_register.insert({readState, writeState}); + _OpCache_svc_register.insert({param, _OpCache_with_parameter_svc_register}); + } else { + std::unordered_map<nota_v2::_ProjectionRead_svc_register, nota_v2::_ProjectionWrite_svc_register, nota_v2::_ProjectionRead_svc_register::Hash, nota_v2::_ProjectionRead_svc_register::HashEqual> _OpCache_with_parameter_svc_register = _OpCache_with_parameter_svc_register_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_svc_register.find(readState); + if(writeState_ptr != _OpCache_with_parameter_svc_register.end()) { + nota_v2::_ProjectionWrite_svc_register writeState = writeState_ptr->second; + copiedState._apply_update_for_svc_register(writeState); + } else { + copiedState.svc_register(_tmp_1); + nota_v2::_ProjectionWrite_svc_register writeState = copiedState._update_for_svc_register(); + _OpCache_with_parameter_svc_register.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "svc_register"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "svc_register"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/obsw_M001_1.cpp b/benchmarks/model_checking_opreuse/C++/obsw_M001_1.cpp index d353bb055..f14959069 100644 --- a/benchmarks/model_checking_opreuse/C++/obsw_M001_1.cpp +++ b/benchmarks/model_checking_opreuse/C++/obsw_M001_1.cpp @@ -5708,1903 +5708,1693 @@ class ModelChecker { std::unordered_set<obsw_M001_1, obsw_M001_1::Hash, obsw_M001_1::HashEqual> result = std::unordered_set<obsw_M001_1, obsw_M001_1::Hash, obsw_M001_1::HashEqual>(); if(isCaching) { obsw_M001_1::_ProjectionRead__tr_env_Receive_TC read__tr_env_Receive_TC_state = state._projected_state_for__tr_env_Receive_TC(); - auto _trid_1_ptr = _OpCache_tr_env_Receive_TC.find(read__tr_env_Receive_TC_state); - if(_trid_1_ptr == _OpCache_tr_env_Receive_TC.end()) { - BSet<BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = state._tr_env_Receive_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_Receive_TC_lock(_ProjectionRead__tr_env_Receive_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_Receive_TC_lock(_ProjectionRead__tr_env_Receive_TC_mutex); + auto _trid_1_ptr = _OpCache_tr_env_Receive_TC.find(read__tr_env_Receive_TC_state); + if(_trid_1_ptr == _OpCache_tr_env_Receive_TC.end()) { + BSet<BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = state._tr_env_Receive_TC(); _OpCache_tr_env_Receive_TC.insert({read__tr_env_Receive_TC_state, _trid_1}); - } - for(const BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_1::TC_SET _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); + for(const BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_1::TC_SET _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); - if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - copiedState.env_Receive_TC(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual>(); - _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); - _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); { std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { - obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Receive_TC(writeState); - } else { + auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); + if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { copiedState.env_Receive_TC(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual>(); _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { + obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Receive_TC(writeState); + } else { + copiedState.env_Receive_TC(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Receive_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = _trid_1_ptr->second; - for(const BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_1::TC_SET _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); - - auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); - if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { + copiedState.stateAccessedVia = "env_Receive_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - copiedState.env_Receive_TC(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual>(); - _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); - _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = _trid_1_ptr->second; + for(const BTuple<obsw_M001_1::TC_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_1::TC_SET _tmp_2 = param.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); { std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { - obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Receive_TC(writeState); - } else { + auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); + if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { copiedState.env_Receive_TC(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual>(); _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Receive_TC, obsw_M001_1::_ProjectionWrite_env_Receive_TC, obsw_M001_1::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_1::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { + obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Receive_TC(writeState); + } else { + copiedState.env_Receive_TC(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Receive_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_Receive_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Poll_TC read__tr_Poll_TC_state = state._projected_state_for__tr_Poll_TC(); - auto _trid_2_ptr = _OpCache_tr_Poll_TC.find(read__tr_Poll_TC_state); - if(_trid_2_ptr == _OpCache_tr_Poll_TC.end()) { - BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = state._tr_Poll_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Poll_TC_lock(_ProjectionRead__tr_Poll_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Poll_TC_lock(_ProjectionRead__tr_Poll_TC_mutex); + auto _trid_2_ptr = _OpCache_tr_Poll_TC.find(read__tr_Poll_TC_state); + if(_trid_2_ptr == _OpCache_tr_Poll_TC.end()) { + BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = state._tr_Poll_TC(); _OpCache_tr_Poll_TC.insert({read__tr_Poll_TC_state, _trid_2}); - } - for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); + for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); - if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - copiedState.Poll_TC(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual>(); - _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); - _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { - obsw_M001_1::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Poll_TC(writeState); - } else { + auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); + if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { copiedState.Poll_TC(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual>(); _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { + obsw_M001_1::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Poll_TC(writeState); + } else { + copiedState.Poll_TC(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Poll_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = _trid_2_ptr->second; - for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); - - auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); - if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { + copiedState.stateAccessedVia = "Poll_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - copiedState.Poll_TC(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual>(); - _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); - _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = _trid_2_ptr->second; + for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { - obsw_M001_1::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Poll_TC(writeState); - } else { + auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); + if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { copiedState.Poll_TC(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual>(); _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Poll_TC, obsw_M001_1::_ProjectionWrite_Poll_TC, obsw_M001_1::_ProjectionRead_Poll_TC::Hash, obsw_M001_1::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { + obsw_M001_1::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Poll_TC(writeState); + } else { + copiedState.Poll_TC(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Poll_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Poll_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Accept_TC read__tr_Accept_TC_state = state._projected_state_for__tr_Accept_TC(); - auto _trid_3_ptr = _OpCache_tr_Accept_TC.find(read__tr_Accept_TC_state); - if(_trid_3_ptr == _OpCache_tr_Accept_TC.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = state._tr_Accept_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Accept_TC_lock(_ProjectionRead__tr_Accept_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Accept_TC_lock(_ProjectionRead__tr_Accept_TC_mutex); + auto _trid_3_ptr = _OpCache_tr_Accept_TC.find(read__tr_Accept_TC_state); + if(_trid_3_ptr == _OpCache_tr_Accept_TC.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = state._tr_Accept_TC(); _OpCache_tr_Accept_TC.insert({read__tr_Accept_TC_state, _trid_3}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); - if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - copiedState.Accept_TC(_tmp_1); - obsw_M001_1::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual>(); - _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); - _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { - obsw_M001_1::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Accept_TC(writeState); - } else { + auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); + if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { copiedState.Accept_TC(_tmp_1); obsw_M001_1::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual>(); _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { + obsw_M001_1::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Accept_TC(writeState); + } else { + copiedState.Accept_TC(_tmp_1); + obsw_M001_1::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Accept_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = _trid_3_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); - - auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); - if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { + copiedState.stateAccessedVia = "Accept_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - copiedState.Accept_TC(_tmp_1); - obsw_M001_1::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual>(); - _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); - _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = _trid_3_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { - obsw_M001_1::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Accept_TC(writeState); - } else { + auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); + if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { copiedState.Accept_TC(_tmp_1); obsw_M001_1::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual>(); _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Accept_TC, obsw_M001_1::_ProjectionWrite_Accept_TC, obsw_M001_1::_ProjectionRead_Accept_TC::Hash, obsw_M001_1::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { + obsw_M001_1::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Accept_TC(writeState); + } else { + copiedState.Accept_TC(_tmp_1); + obsw_M001_1::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Accept_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Accept_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Reject_TC read__tr_Reject_TC_state = state._projected_state_for__tr_Reject_TC(); - auto _trid_4_ptr = _OpCache_tr_Reject_TC.find(read__tr_Reject_TC_state); - if(_trid_4_ptr == _OpCache_tr_Reject_TC.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = state._tr_Reject_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Reject_TC_lock(_ProjectionRead__tr_Reject_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Reject_TC_lock(_ProjectionRead__tr_Reject_TC_mutex); + auto _trid_4_ptr = _OpCache_tr_Reject_TC.find(read__tr_Reject_TC_state); + if(_trid_4_ptr == _OpCache_tr_Reject_TC.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = state._tr_Reject_TC(); _OpCache_tr_Reject_TC.insert({read__tr_Reject_TC_state, _trid_4}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); - if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - copiedState.Reject_TC(_tmp_1); - obsw_M001_1::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual>(); - _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); - _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { - obsw_M001_1::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Reject_TC(writeState); - } else { + auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); + if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { copiedState.Reject_TC(_tmp_1); obsw_M001_1::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual>(); _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { + obsw_M001_1::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Reject_TC(writeState); + } else { + copiedState.Reject_TC(_tmp_1); + obsw_M001_1::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reject_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = _trid_4_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); - - auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); - if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { + copiedState.stateAccessedVia = "Reject_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - copiedState.Reject_TC(_tmp_1); - obsw_M001_1::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual>(); - _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); - _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = _trid_4_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { - obsw_M001_1::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Reject_TC(writeState); - } else { + auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); + if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { copiedState.Reject_TC(_tmp_1); obsw_M001_1::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual>(); _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Reject_TC, obsw_M001_1::_ProjectionWrite_Reject_TC, obsw_M001_1::_ProjectionRead_Reject_TC::Hash, obsw_M001_1::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { + obsw_M001_1::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Reject_TC(writeState); + } else { + copiedState.Reject_TC(_tmp_1); + obsw_M001_1::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reject_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Reject_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Report_TC_Acceptance read__tr_Report_TC_Acceptance_state = state._projected_state_for__tr_Report_TC_Acceptance(); - auto _trid_5_ptr = _OpCache_tr_Report_TC_Acceptance.find(read__tr_Report_TC_Acceptance_state); - if(_trid_5_ptr == _OpCache_tr_Report_TC_Acceptance.end()) { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = state._tr_Report_TC_Acceptance(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Acceptance_lock(_ProjectionRead__tr_Report_TC_Acceptance_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Acceptance_lock(_ProjectionRead__tr_Report_TC_Acceptance_mutex); + auto _trid_5_ptr = _OpCache_tr_Report_TC_Acceptance.find(read__tr_Report_TC_Acceptance_state); + if(_trid_5_ptr == _OpCache_tr_Report_TC_Acceptance.end()) { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = state._tr_Report_TC_Acceptance(); _OpCache_tr_Report_TC_Acceptance.insert({read__tr_Report_TC_Acceptance_state, _trid_5}); - } - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); - - auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); - if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); - _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); - _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); - } - } else { + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Acceptance(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); + if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Acceptance(writeState); + } else { + copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Acceptance"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = _trid_5_ptr->second; - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); - - auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); - if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { + copiedState.stateAccessedVia = "Report_TC_Acceptance"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); - _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); - _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = _trid_5_ptr->second; + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Acceptance(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); + if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Acceptance, obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Acceptance(writeState); + } else { + copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Acceptance"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Acceptance"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Skip_TC_Acceptance_Report read__tr_Skip_TC_Acceptance_Report_state = state._projected_state_for__tr_Skip_TC_Acceptance_Report(); - auto _trid_6_ptr = _OpCache_tr_Skip_TC_Acceptance_Report.find(read__tr_Skip_TC_Acceptance_Report_state); - if(_trid_6_ptr == _OpCache_tr_Skip_TC_Acceptance_Report.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = state._tr_Skip_TC_Acceptance_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Acceptance_Report_lock(_ProjectionRead__tr_Skip_TC_Acceptance_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Acceptance_Report_lock(_ProjectionRead__tr_Skip_TC_Acceptance_Report_mutex); + auto _trid_6_ptr = _OpCache_tr_Skip_TC_Acceptance_Report.find(read__tr_Skip_TC_Acceptance_Report_state); + if(_trid_6_ptr == _OpCache_tr_Skip_TC_Acceptance_Report.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = state._tr_Skip_TC_Acceptance_Report(); _OpCache_tr_Skip_TC_Acceptance_Report.insert({read__tr_Skip_TC_Acceptance_Report_state, _trid_6}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - copiedState.Skip_TC_Acceptance_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { copiedState.Skip_TC_Acceptance_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); + } else { + copiedState.Skip_TC_Acceptance_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = _trid_6_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); - - auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - copiedState.Skip_TC_Acceptance_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = _trid_6_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { copiedState.Skip_TC_Acceptance_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); + } else { + copiedState.Skip_TC_Acceptance_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Report_TC_Rejection read__tr_Report_TC_Rejection_state = state._projected_state_for__tr_Report_TC_Rejection(); - auto _trid_7_ptr = _OpCache_tr_Report_TC_Rejection.find(read__tr_Report_TC_Rejection_state); - if(_trid_7_ptr == _OpCache_tr_Report_TC_Rejection.end()) { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = state._tr_Report_TC_Rejection(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Rejection_lock(_ProjectionRead__tr_Report_TC_Rejection_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Rejection_lock(_ProjectionRead__tr_Report_TC_Rejection_mutex); + auto _trid_7_ptr = _OpCache_tr_Report_TC_Rejection.find(read__tr_Report_TC_Rejection_state); + if(_trid_7_ptr == _OpCache_tr_Report_TC_Rejection.end()) { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = state._tr_Report_TC_Rejection(); _OpCache_tr_Report_TC_Rejection.insert({read__tr_Report_TC_Rejection_state, _trid_7}); - } - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); - - auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); - if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual>(); - _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); - _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); - } - } else { + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Rejection(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); + if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual>(); _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Rejection(writeState); + } else { + copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Rejection"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = _trid_7_ptr->second; - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); - - auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); - if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { + copiedState.stateAccessedVia = "Report_TC_Rejection"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual>(); - _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); - _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = _trid_7_ptr->second; + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Rejection(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); + if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual>(); _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Rejection, obsw_M001_1::_ProjectionWrite_Report_TC_Rejection, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Rejection(writeState); + } else { + copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Rejection"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Rejection"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Skip_TC_Rejection_Report read__tr_Skip_TC_Rejection_Report_state = state._projected_state_for__tr_Skip_TC_Rejection_Report(); - auto _trid_8_ptr = _OpCache_tr_Skip_TC_Rejection_Report.find(read__tr_Skip_TC_Rejection_Report_state); - if(_trid_8_ptr == _OpCache_tr_Skip_TC_Rejection_Report.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = state._tr_Skip_TC_Rejection_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Rejection_Report_lock(_ProjectionRead__tr_Skip_TC_Rejection_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Rejection_Report_lock(_ProjectionRead__tr_Skip_TC_Rejection_Report_mutex); + auto _trid_8_ptr = _OpCache_tr_Skip_TC_Rejection_Report.find(read__tr_Skip_TC_Rejection_Report_state); + if(_trid_8_ptr == _OpCache_tr_Skip_TC_Rejection_Report.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = state._tr_Skip_TC_Rejection_Report(); _OpCache_tr_Skip_TC_Rejection_Report.insert({read__tr_Skip_TC_Rejection_Report_state, _trid_8}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - copiedState.Skip_TC_Rejection_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { copiedState.Skip_TC_Rejection_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); + } else { + copiedState.Skip_TC_Rejection_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = _trid_8_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); - - auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - copiedState.Skip_TC_Rejection_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = _trid_8_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { copiedState.Skip_TC_Rejection_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); + } else { + copiedState.Skip_TC_Rejection_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Execute_TC_Successfully read__tr_Execute_TC_Successfully_state = state._projected_state_for__tr_Execute_TC_Successfully(); - auto _trid_9_ptr = _OpCache_tr_Execute_TC_Successfully.find(read__tr_Execute_TC_Successfully_state); - if(_trid_9_ptr == _OpCache_tr_Execute_TC_Successfully.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = state._tr_Execute_TC_Successfully(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Execute_TC_Successfully_lock(_ProjectionRead__tr_Execute_TC_Successfully_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Execute_TC_Successfully_lock(_ProjectionRead__tr_Execute_TC_Successfully_mutex); + auto _trid_9_ptr = _OpCache_tr_Execute_TC_Successfully.find(read__tr_Execute_TC_Successfully_state); + if(_trid_9_ptr == _OpCache_tr_Execute_TC_Successfully.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = state._tr_Execute_TC_Successfully(); _OpCache_tr_Execute_TC_Successfully.insert({read__tr_Execute_TC_Successfully_state, _trid_9}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); - if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); { std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - copiedState.Execute_TC_Successfully(_tmp_1); - obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); - _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); - _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { - obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; - copiedState._apply_update_for_Execute_TC_Successfully(writeState); - } else { + auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); + if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { copiedState.Execute_TC_Successfully(_tmp_1); obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { + obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; + copiedState._apply_update_for_Execute_TC_Successfully(writeState); + } else { + copiedState.Execute_TC_Successfully(_tmp_1); + obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Execute_TC_Successfully"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = _trid_9_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); - - auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); - if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { + copiedState.stateAccessedVia = "Execute_TC_Successfully"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - copiedState.Execute_TC_Successfully(_tmp_1); - obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); - _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); - _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = _trid_9_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); { std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { - obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; - copiedState._apply_update_for_Execute_TC_Successfully(writeState); - } else { + auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); + if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { copiedState.Execute_TC_Successfully(_tmp_1); obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Execute_TC_Successfully, obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_1::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { + obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; + copiedState._apply_update_for_Execute_TC_Successfully(writeState); + } else { + copiedState.Execute_TC_Successfully(_tmp_1); + obsw_M001_1::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Execute_TC_Successfully"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Execute_TC_Successfully"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Reset_TM_Buffer read__tr_Reset_TM_Buffer_state = state._projected_state_for__tr_Reset_TM_Buffer(); - auto _trid_10_ptr = _OpCache_tr_Reset_TM_Buffer.find(read__tr_Reset_TM_Buffer_state); - if(_trid_10_ptr == _OpCache_tr_Reset_TM_Buffer.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = state._tr_Reset_TM_Buffer(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Reset_TM_Buffer_lock(_ProjectionRead__tr_Reset_TM_Buffer_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Reset_TM_Buffer_lock(_ProjectionRead__tr_Reset_TM_Buffer_mutex); + auto _trid_10_ptr = _OpCache_tr_Reset_TM_Buffer.find(read__tr_Reset_TM_Buffer_state); + if(_trid_10_ptr == _OpCache_tr_Reset_TM_Buffer.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = state._tr_Reset_TM_Buffer(); _OpCache_tr_Reset_TM_Buffer.insert({read__tr_Reset_TM_Buffer_state, _trid_10}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); - if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); { std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - copiedState.Reset_TM_Buffer(_tmp_1); - obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); - _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); - _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { - obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; - copiedState._apply_update_for_Reset_TM_Buffer(writeState); - } else { + auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); + if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { copiedState.Reset_TM_Buffer(_tmp_1); obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { + obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; + copiedState._apply_update_for_Reset_TM_Buffer(writeState); + } else { + copiedState.Reset_TM_Buffer(_tmp_1); + obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reset_TM_Buffer"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = _trid_10_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); - - auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); - if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { + copiedState.stateAccessedVia = "Reset_TM_Buffer"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - copiedState.Reset_TM_Buffer(_tmp_1); - obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); - _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); - _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = _trid_10_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); { std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { - obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; - copiedState._apply_update_for_Reset_TM_Buffer(writeState); - } else { + auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); + if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { copiedState.Reset_TM_Buffer(_tmp_1); obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Reset_TM_Buffer, obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_1::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { + obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; + copiedState._apply_update_for_Reset_TM_Buffer(writeState); + } else { + copiedState.Reset_TM_Buffer(_tmp_1); + obsw_M001_1::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reset_TM_Buffer"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Reset_TM_Buffer"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Fail_TC_Execution read__tr_Fail_TC_Execution_state = state._projected_state_for__tr_Fail_TC_Execution(); - auto _trid_11_ptr = _OpCache_tr_Fail_TC_Execution.find(read__tr_Fail_TC_Execution_state); - if(_trid_11_ptr == _OpCache_tr_Fail_TC_Execution.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = state._tr_Fail_TC_Execution(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Fail_TC_Execution_lock(_ProjectionRead__tr_Fail_TC_Execution_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Fail_TC_Execution_lock(_ProjectionRead__tr_Fail_TC_Execution_mutex); + auto _trid_11_ptr = _OpCache_tr_Fail_TC_Execution.find(read__tr_Fail_TC_Execution_state); + if(_trid_11_ptr == _OpCache_tr_Fail_TC_Execution.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = state._tr_Fail_TC_Execution(); _OpCache_tr_Fail_TC_Execution.insert({read__tr_Fail_TC_Execution_state, _trid_11}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); - if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); { std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - copiedState.Fail_TC_Execution(_tmp_1); - obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual>(); - _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); - _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { - obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; - copiedState._apply_update_for_Fail_TC_Execution(writeState); - } else { + auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); + if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { copiedState.Fail_TC_Execution(_tmp_1); obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual>(); _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { + obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; + copiedState._apply_update_for_Fail_TC_Execution(writeState); + } else { + copiedState.Fail_TC_Execution(_tmp_1); + obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Fail_TC_Execution"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = _trid_11_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); - - auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); - if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { + copiedState.stateAccessedVia = "Fail_TC_Execution"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - copiedState.Fail_TC_Execution(_tmp_1); - obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual>(); - _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); - _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = _trid_11_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); { std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { - obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; - copiedState._apply_update_for_Fail_TC_Execution(writeState); - } else { + auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); + if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { copiedState.Fail_TC_Execution(_tmp_1); obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual>(); _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Fail_TC_Execution, obsw_M001_1::_ProjectionWrite_Fail_TC_Execution, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_1::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { + obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; + copiedState._apply_update_for_Fail_TC_Execution(writeState); + } else { + copiedState.Fail_TC_Execution(_tmp_1); + obsw_M001_1::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Fail_TC_Execution"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Fail_TC_Execution"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Report_TC_Execution_Success read__tr_Report_TC_Execution_Success_state = state._projected_state_for__tr_Report_TC_Execution_Success(); - auto _trid_12_ptr = _OpCache_tr_Report_TC_Execution_Success.find(read__tr_Report_TC_Execution_Success_state); - if(_trid_12_ptr == _OpCache_tr_Report_TC_Execution_Success.end()) { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = state._tr_Report_TC_Execution_Success(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Success_lock(_ProjectionRead__tr_Report_TC_Execution_Success_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Success_lock(_ProjectionRead__tr_Report_TC_Execution_Success_mutex); + auto _trid_12_ptr = _OpCache_tr_Report_TC_Execution_Success.find(read__tr_Report_TC_Execution_Success_state); + if(_trid_12_ptr == _OpCache_tr_Report_TC_Execution_Success.end()) { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = state._tr_Report_TC_Execution_Success(); _OpCache_tr_Report_TC_Execution_Success.insert({read__tr_Report_TC_Execution_Success_state, _trid_12}); - } - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); - - auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); - } - } else { + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Success(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Success(writeState); + } else { + copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Success"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = _trid_12_ptr->second; - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); - - auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { + copiedState.stateAccessedVia = "Report_TC_Execution_Success"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = _trid_12_ptr->second; + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Success(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Success(writeState); + } else { + copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Success"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Execution_Success"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Skip_TC_Success_Report read__tr_Skip_TC_Success_Report_state = state._projected_state_for__tr_Skip_TC_Success_Report(); - auto _trid_13_ptr = _OpCache_tr_Skip_TC_Success_Report.find(read__tr_Skip_TC_Success_Report_state); - if(_trid_13_ptr == _OpCache_tr_Skip_TC_Success_Report.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = state._tr_Skip_TC_Success_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Success_Report_lock(_ProjectionRead__tr_Skip_TC_Success_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Success_Report_lock(_ProjectionRead__tr_Skip_TC_Success_Report_mutex); + auto _trid_13_ptr = _OpCache_tr_Skip_TC_Success_Report.find(read__tr_Skip_TC_Success_Report_state); + if(_trid_13_ptr == _OpCache_tr_Skip_TC_Success_Report.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = state._tr_Skip_TC_Success_Report(); _OpCache_tr_Skip_TC_Success_Report.insert({read__tr_Skip_TC_Success_Report_state, _trid_13}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); - - auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - copiedState.Skip_TC_Success_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Success_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { copiedState.Skip_TC_Success_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Success_Report(writeState); + } else { + copiedState.Skip_TC_Success_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Success_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = _trid_13_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); - - auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Success_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - copiedState.Skip_TC_Success_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = _trid_13_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Success_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { copiedState.Skip_TC_Success_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Success_Report(writeState); + } else { + copiedState.Skip_TC_Success_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Success_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Success_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Report_TC_Execution_Failure read__tr_Report_TC_Execution_Failure_state = state._projected_state_for__tr_Report_TC_Execution_Failure(); - auto _trid_14_ptr = _OpCache_tr_Report_TC_Execution_Failure.find(read__tr_Report_TC_Execution_Failure_state); - if(_trid_14_ptr == _OpCache_tr_Report_TC_Execution_Failure.end()) { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = state._tr_Report_TC_Execution_Failure(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Failure_lock(_ProjectionRead__tr_Report_TC_Execution_Failure_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Failure_lock(_ProjectionRead__tr_Report_TC_Execution_Failure_mutex); + auto _trid_14_ptr = _OpCache_tr_Report_TC_Execution_Failure.find(read__tr_Report_TC_Execution_Failure_state); + if(_trid_14_ptr == _OpCache_tr_Report_TC_Execution_Failure.end()) { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = state._tr_Report_TC_Execution_Failure(); _OpCache_tr_Report_TC_Execution_Failure.insert({read__tr_Report_TC_Execution_Failure_state, _trid_14}); - } - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); - - auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); + } else { + copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = _trid_14_ptr->second; - for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); - - auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { + copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = _trid_14_ptr->second; + for(const BTuple<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET >, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_1::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_1::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { - obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_1::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); + } else { + copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_1::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Skip_TC_Failure_Report read__tr_Skip_TC_Failure_Report_state = state._projected_state_for__tr_Skip_TC_Failure_Report(); - auto _trid_15_ptr = _OpCache_tr_Skip_TC_Failure_Report.find(read__tr_Skip_TC_Failure_Report_state); - if(_trid_15_ptr == _OpCache_tr_Skip_TC_Failure_Report.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = state._tr_Skip_TC_Failure_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Failure_Report_lock(_ProjectionRead__tr_Skip_TC_Failure_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Failure_Report_lock(_ProjectionRead__tr_Skip_TC_Failure_Report_mutex); + auto _trid_15_ptr = _OpCache_tr_Skip_TC_Failure_Report.find(read__tr_Skip_TC_Failure_Report_state); + if(_trid_15_ptr == _OpCache_tr_Skip_TC_Failure_Report.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = state._tr_Skip_TC_Failure_Report(); _OpCache_tr_Skip_TC_Failure_Report.insert({read__tr_Skip_TC_Failure_Report_state, _trid_15}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - copiedState.Skip_TC_Failure_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { copiedState.Skip_TC_Failure_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); + } else { + copiedState.Skip_TC_Failure_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = _trid_15_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); - - auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - copiedState.Skip_TC_Failure_Report(_tmp_1); - obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = _trid_15_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { - obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { copiedState.Skip_TC_Failure_Report(_tmp_1); obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_1::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { + obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); + } else { + copiedState.Skip_TC_Failure_Report(_tmp_1); + obsw_M001_1::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Drop_TC read__tr_Drop_TC_state = state._projected_state_for__tr_Drop_TC(); - auto _trid_16_ptr = _OpCache_tr_Drop_TC.find(read__tr_Drop_TC_state); - if(_trid_16_ptr == _OpCache_tr_Drop_TC.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = state._tr_Drop_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TC_lock(_ProjectionRead__tr_Drop_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TC_lock(_ProjectionRead__tr_Drop_TC_mutex); + auto _trid_16_ptr = _OpCache_tr_Drop_TC.find(read__tr_Drop_TC_state); + if(_trid_16_ptr == _OpCache_tr_Drop_TC.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = state._tr_Drop_TC(); _OpCache_tr_Drop_TC.insert({read__tr_Drop_TC_state, _trid_16}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); - - auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); - if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - copiedState.Drop_TC(_tmp_1); - obsw_M001_1::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual>(); - _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); - _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { - obsw_M001_1::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TC(writeState); - } else { + auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); + if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { copiedState.Drop_TC(_tmp_1); obsw_M001_1::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual>(); _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { + obsw_M001_1::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TC(writeState); + } else { + copiedState.Drop_TC(_tmp_1); + obsw_M001_1::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = _trid_16_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); - - auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); - if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { + copiedState.stateAccessedVia = "Drop_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - copiedState.Drop_TC(_tmp_1); - obsw_M001_1::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual>(); - _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); - _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = _trid_16_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { - obsw_M001_1::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TC(writeState); - } else { + auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); + if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { copiedState.Drop_TC(_tmp_1); obsw_M001_1::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual>(); _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TC, obsw_M001_1::_ProjectionWrite_Drop_TC, obsw_M001_1::_ProjectionRead_Drop_TC::Hash, obsw_M001_1::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { + obsw_M001_1::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TC(writeState); + } else { + copiedState.Drop_TC(_tmp_1); + obsw_M001_1::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Drop_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Produce_TM read__tr_Produce_TM_state = state._projected_state_for__tr_Produce_TM(); - auto _trid_17_ptr = _OpCache_tr_Produce_TM.find(read__tr_Produce_TM_state); - if(_trid_17_ptr == _OpCache_tr_Produce_TM.end()) { - BSet<BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = state._tr_Produce_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Produce_TM_lock(_ProjectionRead__tr_Produce_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Produce_TM_lock(_ProjectionRead__tr_Produce_TM_mutex); + auto _trid_17_ptr = _OpCache_tr_Produce_TM.find(read__tr_Produce_TM_state); + if(_trid_17_ptr == _OpCache_tr_Produce_TM.end()) { + BSet<BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = state._tr_Produce_TM(); _OpCache_tr_Produce_TM.insert({read__tr_Produce_TM_state, _trid_17}); - } - for(const BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - obsw_M001_1::TM_SET _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); + for(const BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + obsw_M001_1::TM_SET _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); - if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - copiedState.Produce_TM(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual>(); - _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); - _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { - obsw_M001_1::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Produce_TM(writeState); - } else { + auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); + if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { copiedState.Produce_TM(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual>(); _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { + obsw_M001_1::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Produce_TM(writeState); + } else { + copiedState.Produce_TM(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Produce_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = _trid_17_ptr->second; - for(const BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - obsw_M001_1::TM_SET _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); - - auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); - if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { + copiedState.stateAccessedVia = "Produce_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - copiedState.Produce_TM(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual>(); - _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); - _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = _trid_17_ptr->second; + for(const BTuple<obsw_M001_1::TM_SET, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + obsw_M001_1::TM_SET _tmp_2 = param.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { - obsw_M001_1::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Produce_TM(writeState); - } else { + auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); + if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { copiedState.Produce_TM(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual>(); _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Produce_TM, obsw_M001_1::_ProjectionWrite_Produce_TM, obsw_M001_1::_ProjectionRead_Produce_TM::Hash, obsw_M001_1::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { + obsw_M001_1::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Produce_TM(writeState); + } else { + copiedState.Produce_TM(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Produce_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Produce_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Pass_TM read__tr_Pass_TM_state = state._projected_state_for__tr_Pass_TM(); - auto _trid_18_ptr = _OpCache_tr_Pass_TM.find(read__tr_Pass_TM_state); - if(_trid_18_ptr == _OpCache_tr_Pass_TM.end()) { - BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = state._tr_Pass_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Pass_TM_lock(_ProjectionRead__tr_Pass_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Pass_TM_lock(_ProjectionRead__tr_Pass_TM_mutex); + auto _trid_18_ptr = _OpCache_tr_Pass_TM.find(read__tr_Pass_TM_state); + if(_trid_18_ptr == _OpCache_tr_Pass_TM.end()) { + BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = state._tr_Pass_TM(); _OpCache_tr_Pass_TM.insert({read__tr_Pass_TM_state, _trid_18}); - } - for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); + for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); - - auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); - if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - copiedState.Pass_TM(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual>(); - _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); - _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { - obsw_M001_1::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Pass_TM(writeState); - } else { + auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); + if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { copiedState.Pass_TM(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual>(); _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { + obsw_M001_1::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Pass_TM(writeState); + } else { + copiedState.Pass_TM(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Pass_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = _trid_18_ptr->second; - for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); - - auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); - if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { + copiedState.stateAccessedVia = "Pass_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - copiedState.Pass_TM(_tmp_2, _tmp_1); - obsw_M001_1::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual>(); - _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); - _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = _trid_18_ptr->second; + for(const BTuple<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { - obsw_M001_1::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Pass_TM(writeState); - } else { + auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); + if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { copiedState.Pass_TM(_tmp_2, _tmp_1); obsw_M001_1::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual>(); _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Pass_TM, obsw_M001_1::_ProjectionWrite_Pass_TM, obsw_M001_1::_ProjectionRead_Pass_TM::Hash, obsw_M001_1::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { + obsw_M001_1::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Pass_TM(writeState); + } else { + copiedState.Pass_TM(_tmp_2, _tmp_1); + obsw_M001_1::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Pass_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Pass_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Cancel_TM read__tr_Cancel_TM_state = state._projected_state_for__tr_Cancel_TM(); - auto _trid_19_ptr = _OpCache_tr_Cancel_TM.find(read__tr_Cancel_TM_state); - if(_trid_19_ptr == _OpCache_tr_Cancel_TM.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = state._tr_Cancel_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Cancel_TM_lock(_ProjectionRead__tr_Cancel_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Cancel_TM_lock(_ProjectionRead__tr_Cancel_TM_mutex); + auto _trid_19_ptr = _OpCache_tr_Cancel_TM.find(read__tr_Cancel_TM_state); + if(_trid_19_ptr == _OpCache_tr_Cancel_TM.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = state._tr_Cancel_TM(); _OpCache_tr_Cancel_TM.insert({read__tr_Cancel_TM_state, _trid_19}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); - if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - copiedState.Cancel_TM(_tmp_1); - obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual>(); - _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); - _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { - obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Cancel_TM(writeState); - } else { + auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); + if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { copiedState.Cancel_TM(_tmp_1); obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual>(); _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { + obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Cancel_TM(writeState); + } else { + copiedState.Cancel_TM(_tmp_1); + obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Cancel_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = _trid_19_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); - - auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); - if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { + copiedState.stateAccessedVia = "Cancel_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - copiedState.Cancel_TM(_tmp_1); - obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual>(); - _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); - _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = _trid_19_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { - obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Cancel_TM(writeState); - } else { + auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); + if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { copiedState.Cancel_TM(_tmp_1); obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual>(); _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Cancel_TM, obsw_M001_1::_ProjectionWrite_Cancel_TM, obsw_M001_1::_ProjectionRead_Cancel_TM::Hash, obsw_M001_1::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { + obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Cancel_TM(writeState); + } else { + copiedState.Cancel_TM(_tmp_1); + obsw_M001_1::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Cancel_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Cancel_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_Drop_TM read__tr_Drop_TM_state = state._projected_state_for__tr_Drop_TM(); - auto _trid_20_ptr = _OpCache_tr_Drop_TM.find(read__tr_Drop_TM_state); - if(_trid_20_ptr == _OpCache_tr_Drop_TM.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = state._tr_Drop_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TM_lock(_ProjectionRead__tr_Drop_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TM_lock(_ProjectionRead__tr_Drop_TM_mutex); + auto _trid_20_ptr = _OpCache_tr_Drop_TM.find(read__tr_Drop_TM_state); + if(_trid_20_ptr == _OpCache_tr_Drop_TM.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = state._tr_Drop_TM(); _OpCache_tr_Drop_TM.insert({read__tr_Drop_TM_state, _trid_20}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); - if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - copiedState.Drop_TM(_tmp_1); - obsw_M001_1::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual>(); - _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); - _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); - } - } else { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { - obsw_M001_1::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TM(writeState); - } else { + auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); + if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { copiedState.Drop_TM(_tmp_1); obsw_M001_1::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual>(); _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { + obsw_M001_1::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TM(writeState); + } else { + copiedState.Drop_TM(_tmp_1); + obsw_M001_1::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = _trid_20_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); - - auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); - if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { + copiedState.stateAccessedVia = "Drop_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - copiedState.Drop_TM(_tmp_1); - obsw_M001_1::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual>(); - _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); - _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = _trid_20_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { - obsw_M001_1::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TM(writeState); - } else { + auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); + if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { copiedState.Drop_TM(_tmp_1); obsw_M001_1::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual>(); _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_Drop_TM, obsw_M001_1::_ProjectionWrite_Drop_TM, obsw_M001_1::_ProjectionRead_Drop_TM::Hash, obsw_M001_1::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { + obsw_M001_1::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TM(writeState); + } else { + copiedState.Drop_TM(_tmp_1); + obsw_M001_1::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Drop_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_1::_ProjectionRead__tr_env_Deliver_TM read__tr_env_Deliver_TM_state = state._projected_state_for__tr_env_Deliver_TM(); - auto _trid_21_ptr = _OpCache_tr_env_Deliver_TM.find(read__tr_env_Deliver_TM_state); - if(_trid_21_ptr == _OpCache_tr_env_Deliver_TM.end()) { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = state._tr_env_Deliver_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_Deliver_TM_lock(_ProjectionRead__tr_env_Deliver_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_Deliver_TM_lock(_ProjectionRead__tr_env_Deliver_TM_mutex); + auto _trid_21_ptr = _OpCache_tr_env_Deliver_TM.find(read__tr_env_Deliver_TM_state); + if(_trid_21_ptr == _OpCache_tr_env_Deliver_TM.end()) { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = state._tr_env_Deliver_TM(); _OpCache_tr_env_Deliver_TM.insert({read__tr_env_Deliver_TM_state, _trid_21}); - } - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; - auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); - if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); { std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - copiedState.env_Deliver_TM(_tmp_1); - obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual>(); - _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); - _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { - obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Deliver_TM(writeState); - } else { + auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); + if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { copiedState.env_Deliver_TM(_tmp_1); obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual>(); _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { + obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Deliver_TM(writeState); + } else { + copiedState.env_Deliver_TM(_tmp_1); + obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Deliver_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = _trid_21_ptr->second; - for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { - obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; - - obsw_M001_1 copiedState = state._copy(); - obsw_M001_1::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); - - auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); - if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { + copiedState.stateAccessedVia = "env_Deliver_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - copiedState.env_Deliver_TM(_tmp_1); - obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual>(); - _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); - _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = _trid_21_ptr->second; + for(const obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { + obsw_M001_1::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; + + obsw_M001_1 copiedState = state._copy(); + obsw_M001_1::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); { std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { - obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Deliver_TM(writeState); - } else { + auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); + if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { copiedState.env_Deliver_TM(_tmp_1); obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual>(); _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); + } else { + std::unordered_map<obsw_M001_1::_ProjectionRead_env_Deliver_TM, obsw_M001_1::_ProjectionWrite_env_Deliver_TM, obsw_M001_1::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_1::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { + obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Deliver_TM(writeState); + } else { + copiedState.env_Deliver_TM(_tmp_1); + obsw_M001_1::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Deliver_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_Deliver_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/obsw_M001_2.cpp b/benchmarks/model_checking_opreuse/C++/obsw_M001_2.cpp index 3048a11d3..7422fef0f 100644 --- a/benchmarks/model_checking_opreuse/C++/obsw_M001_2.cpp +++ b/benchmarks/model_checking_opreuse/C++/obsw_M001_2.cpp @@ -5708,1903 +5708,1693 @@ class ModelChecker { std::unordered_set<obsw_M001_2, obsw_M001_2::Hash, obsw_M001_2::HashEqual> result = std::unordered_set<obsw_M001_2, obsw_M001_2::Hash, obsw_M001_2::HashEqual>(); if(isCaching) { obsw_M001_2::_ProjectionRead__tr_env_Receive_TC read__tr_env_Receive_TC_state = state._projected_state_for__tr_env_Receive_TC(); - auto _trid_1_ptr = _OpCache_tr_env_Receive_TC.find(read__tr_env_Receive_TC_state); - if(_trid_1_ptr == _OpCache_tr_env_Receive_TC.end()) { - BSet<BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = state._tr_env_Receive_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_Receive_TC_lock(_ProjectionRead__tr_env_Receive_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_Receive_TC_lock(_ProjectionRead__tr_env_Receive_TC_mutex); + auto _trid_1_ptr = _OpCache_tr_env_Receive_TC.find(read__tr_env_Receive_TC_state); + if(_trid_1_ptr == _OpCache_tr_env_Receive_TC.end()) { + BSet<BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = state._tr_env_Receive_TC(); _OpCache_tr_env_Receive_TC.insert({read__tr_env_Receive_TC_state, _trid_1}); - } - for(const BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_2::TC_SET _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); + for(const BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_2::TC_SET _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); - if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - copiedState.env_Receive_TC(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual>(); - _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); - _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); { std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { - obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Receive_TC(writeState); - } else { + auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); + if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { copiedState.env_Receive_TC(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual>(); _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { + obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Receive_TC(writeState); + } else { + copiedState.env_Receive_TC(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Receive_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = _trid_1_ptr->second; - for(const BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_2::TC_SET _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); - - auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); - if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { + copiedState.stateAccessedVia = "env_Receive_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - copiedState.env_Receive_TC(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual>(); - _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); - _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_1 = _trid_1_ptr->second; + for(const BTuple<obsw_M001_2::TC_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_1) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_2::TC_SET _tmp_2 = param.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_env_Receive_TC readState = state._projected_state_for_env_Receive_TC(); { std::unique_lock<std::mutex> _ProjectionRead_env_Receive_TC_lock(_ProjectionRead_env_Receive_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { - obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Receive_TC(writeState); - } else { + auto _OpCache_with_parameter_env_Receive_TC_ptr = _OpCache_env_Receive_TC.find(param); + if(_OpCache_with_parameter_env_Receive_TC_ptr == _OpCache_env_Receive_TC.end()) { copiedState.env_Receive_TC(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual>(); _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + _OpCache_env_Receive_TC.insert({param, _OpCache_with_parameter_env_Receive_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Receive_TC, obsw_M001_2::_ProjectionWrite_env_Receive_TC, obsw_M001_2::_ProjectionRead_env_Receive_TC::Hash, obsw_M001_2::_ProjectionRead_env_Receive_TC::HashEqual> _OpCache_with_parameter_env_Receive_TC = _OpCache_with_parameter_env_Receive_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Receive_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Receive_TC.end()) { + obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Receive_TC(writeState); + } else { + copiedState.env_Receive_TC(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_env_Receive_TC writeState = copiedState._update_for_env_Receive_TC(); + _OpCache_with_parameter_env_Receive_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Receive_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_Receive_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Poll_TC read__tr_Poll_TC_state = state._projected_state_for__tr_Poll_TC(); - auto _trid_2_ptr = _OpCache_tr_Poll_TC.find(read__tr_Poll_TC_state); - if(_trid_2_ptr == _OpCache_tr_Poll_TC.end()) { - BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = state._tr_Poll_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Poll_TC_lock(_ProjectionRead__tr_Poll_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Poll_TC_lock(_ProjectionRead__tr_Poll_TC_mutex); + auto _trid_2_ptr = _OpCache_tr_Poll_TC.find(read__tr_Poll_TC_state); + if(_trid_2_ptr == _OpCache_tr_Poll_TC.end()) { + BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = state._tr_Poll_TC(); _OpCache_tr_Poll_TC.insert({read__tr_Poll_TC_state, _trid_2}); - } - for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); + for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); - if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - copiedState.Poll_TC(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual>(); - _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); - _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { - obsw_M001_2::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Poll_TC(writeState); - } else { + auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); + if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { copiedState.Poll_TC(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual>(); _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { + obsw_M001_2::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Poll_TC(writeState); + } else { + copiedState.Poll_TC(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Poll_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = _trid_2_ptr->second; - for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); - - auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); - if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { + copiedState.stateAccessedVia = "Poll_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - copiedState.Poll_TC(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual>(); - _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); - _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >> _trid_2 = _trid_2_ptr->second; + for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER >& param : _trid_2) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_BUFFER _tmp_1 = param.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_2 = param.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Poll_TC readState = state._projected_state_for_Poll_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Poll_TC_lock(_ProjectionRead_Poll_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { - obsw_M001_2::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Poll_TC(writeState); - } else { + auto _OpCache_with_parameter_Poll_TC_ptr = _OpCache_Poll_TC.find(param); + if(_OpCache_with_parameter_Poll_TC_ptr == _OpCache_Poll_TC.end()) { copiedState.Poll_TC(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual>(); _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + _OpCache_Poll_TC.insert({param, _OpCache_with_parameter_Poll_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Poll_TC, obsw_M001_2::_ProjectionWrite_Poll_TC, obsw_M001_2::_ProjectionRead_Poll_TC::Hash, obsw_M001_2::_ProjectionRead_Poll_TC::HashEqual> _OpCache_with_parameter_Poll_TC = _OpCache_with_parameter_Poll_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Poll_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Poll_TC.end()) { + obsw_M001_2::_ProjectionWrite_Poll_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Poll_TC(writeState); + } else { + copiedState.Poll_TC(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_Poll_TC writeState = copiedState._update_for_Poll_TC(); + _OpCache_with_parameter_Poll_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Poll_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Poll_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Accept_TC read__tr_Accept_TC_state = state._projected_state_for__tr_Accept_TC(); - auto _trid_3_ptr = _OpCache_tr_Accept_TC.find(read__tr_Accept_TC_state); - if(_trid_3_ptr == _OpCache_tr_Accept_TC.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = state._tr_Accept_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Accept_TC_lock(_ProjectionRead__tr_Accept_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Accept_TC_lock(_ProjectionRead__tr_Accept_TC_mutex); + auto _trid_3_ptr = _OpCache_tr_Accept_TC.find(read__tr_Accept_TC_state); + if(_trid_3_ptr == _OpCache_tr_Accept_TC.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = state._tr_Accept_TC(); _OpCache_tr_Accept_TC.insert({read__tr_Accept_TC_state, _trid_3}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); - if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - copiedState.Accept_TC(_tmp_1); - obsw_M001_2::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual>(); - _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); - _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { - obsw_M001_2::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Accept_TC(writeState); - } else { + auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); + if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { copiedState.Accept_TC(_tmp_1); obsw_M001_2::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual>(); _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { + obsw_M001_2::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Accept_TC(writeState); + } else { + copiedState.Accept_TC(_tmp_1); + obsw_M001_2::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Accept_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = _trid_3_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); - - auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); - if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { + copiedState.stateAccessedVia = "Accept_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - copiedState.Accept_TC(_tmp_1); - obsw_M001_2::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual>(); - _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); - _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_3 = _trid_3_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_3) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Accept_TC readState = state._projected_state_for_Accept_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Accept_TC_lock(_ProjectionRead_Accept_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { - obsw_M001_2::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Accept_TC(writeState); - } else { + auto _OpCache_with_parameter_Accept_TC_ptr = _OpCache_Accept_TC.find(param); + if(_OpCache_with_parameter_Accept_TC_ptr == _OpCache_Accept_TC.end()) { copiedState.Accept_TC(_tmp_1); obsw_M001_2::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual>(); _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + _OpCache_Accept_TC.insert({param, _OpCache_with_parameter_Accept_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Accept_TC, obsw_M001_2::_ProjectionWrite_Accept_TC, obsw_M001_2::_ProjectionRead_Accept_TC::Hash, obsw_M001_2::_ProjectionRead_Accept_TC::HashEqual> _OpCache_with_parameter_Accept_TC = _OpCache_with_parameter_Accept_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Accept_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Accept_TC.end()) { + obsw_M001_2::_ProjectionWrite_Accept_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Accept_TC(writeState); + } else { + copiedState.Accept_TC(_tmp_1); + obsw_M001_2::_ProjectionWrite_Accept_TC writeState = copiedState._update_for_Accept_TC(); + _OpCache_with_parameter_Accept_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Accept_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Accept_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Reject_TC read__tr_Reject_TC_state = state._projected_state_for__tr_Reject_TC(); - auto _trid_4_ptr = _OpCache_tr_Reject_TC.find(read__tr_Reject_TC_state); - if(_trid_4_ptr == _OpCache_tr_Reject_TC.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = state._tr_Reject_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Reject_TC_lock(_ProjectionRead__tr_Reject_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Reject_TC_lock(_ProjectionRead__tr_Reject_TC_mutex); + auto _trid_4_ptr = _OpCache_tr_Reject_TC.find(read__tr_Reject_TC_state); + if(_trid_4_ptr == _OpCache_tr_Reject_TC.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = state._tr_Reject_TC(); _OpCache_tr_Reject_TC.insert({read__tr_Reject_TC_state, _trid_4}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); - if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - copiedState.Reject_TC(_tmp_1); - obsw_M001_2::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual>(); - _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); - _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { - obsw_M001_2::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Reject_TC(writeState); - } else { + auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); + if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { copiedState.Reject_TC(_tmp_1); obsw_M001_2::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual>(); _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { + obsw_M001_2::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Reject_TC(writeState); + } else { + copiedState.Reject_TC(_tmp_1); + obsw_M001_2::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reject_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = _trid_4_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); - - auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); - if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { + copiedState.stateAccessedVia = "Reject_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - copiedState.Reject_TC(_tmp_1); - obsw_M001_2::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual>(); - _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); - _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_4 = _trid_4_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_4) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Reject_TC readState = state._projected_state_for_Reject_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Reject_TC_lock(_ProjectionRead_Reject_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { - obsw_M001_2::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Reject_TC(writeState); - } else { + auto _OpCache_with_parameter_Reject_TC_ptr = _OpCache_Reject_TC.find(param); + if(_OpCache_with_parameter_Reject_TC_ptr == _OpCache_Reject_TC.end()) { copiedState.Reject_TC(_tmp_1); obsw_M001_2::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual>(); _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + _OpCache_Reject_TC.insert({param, _OpCache_with_parameter_Reject_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Reject_TC, obsw_M001_2::_ProjectionWrite_Reject_TC, obsw_M001_2::_ProjectionRead_Reject_TC::Hash, obsw_M001_2::_ProjectionRead_Reject_TC::HashEqual> _OpCache_with_parameter_Reject_TC = _OpCache_with_parameter_Reject_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reject_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reject_TC.end()) { + obsw_M001_2::_ProjectionWrite_Reject_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Reject_TC(writeState); + } else { + copiedState.Reject_TC(_tmp_1); + obsw_M001_2::_ProjectionWrite_Reject_TC writeState = copiedState._update_for_Reject_TC(); + _OpCache_with_parameter_Reject_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reject_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Reject_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Report_TC_Acceptance read__tr_Report_TC_Acceptance_state = state._projected_state_for__tr_Report_TC_Acceptance(); - auto _trid_5_ptr = _OpCache_tr_Report_TC_Acceptance.find(read__tr_Report_TC_Acceptance_state); - if(_trid_5_ptr == _OpCache_tr_Report_TC_Acceptance.end()) { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = state._tr_Report_TC_Acceptance(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Acceptance_lock(_ProjectionRead__tr_Report_TC_Acceptance_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Acceptance_lock(_ProjectionRead__tr_Report_TC_Acceptance_mutex); + auto _trid_5_ptr = _OpCache_tr_Report_TC_Acceptance.find(read__tr_Report_TC_Acceptance_state); + if(_trid_5_ptr == _OpCache_tr_Report_TC_Acceptance.end()) { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = state._tr_Report_TC_Acceptance(); _OpCache_tr_Report_TC_Acceptance.insert({read__tr_Report_TC_Acceptance_state, _trid_5}); - } - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); - - auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); - if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); - _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); - _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); - } - } else { + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Acceptance(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); + if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Acceptance(writeState); + } else { + copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Acceptance"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = _trid_5_ptr->second; - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); - - auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); - if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { + copiedState.stateAccessedVia = "Report_TC_Acceptance"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); - _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); - _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_5 = _trid_5_ptr->second; + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_5) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Acceptance readState = state._projected_state_for_Report_TC_Acceptance(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Acceptance_lock(_ProjectionRead_Report_TC_Acceptance_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Acceptance(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Acceptance_ptr = _OpCache_Report_TC_Acceptance.find(param); + if(_OpCache_with_parameter_Report_TC_Acceptance_ptr == _OpCache_Report_TC_Acceptance.end()) { copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual>(); _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + _OpCache_Report_TC_Acceptance.insert({param, _OpCache_with_parameter_Report_TC_Acceptance}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Acceptance, obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Acceptance::HashEqual> _OpCache_with_parameter_Report_TC_Acceptance = _OpCache_with_parameter_Report_TC_Acceptance_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Acceptance.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Acceptance.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Acceptance(writeState); + } else { + copiedState.Report_TC_Acceptance(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Acceptance writeState = copiedState._update_for_Report_TC_Acceptance(); + _OpCache_with_parameter_Report_TC_Acceptance.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Acceptance"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Acceptance"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Skip_TC_Acceptance_Report read__tr_Skip_TC_Acceptance_Report_state = state._projected_state_for__tr_Skip_TC_Acceptance_Report(); - auto _trid_6_ptr = _OpCache_tr_Skip_TC_Acceptance_Report.find(read__tr_Skip_TC_Acceptance_Report_state); - if(_trid_6_ptr == _OpCache_tr_Skip_TC_Acceptance_Report.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = state._tr_Skip_TC_Acceptance_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Acceptance_Report_lock(_ProjectionRead__tr_Skip_TC_Acceptance_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Acceptance_Report_lock(_ProjectionRead__tr_Skip_TC_Acceptance_Report_mutex); + auto _trid_6_ptr = _OpCache_tr_Skip_TC_Acceptance_Report.find(read__tr_Skip_TC_Acceptance_Report_state); + if(_trid_6_ptr == _OpCache_tr_Skip_TC_Acceptance_Report.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = state._tr_Skip_TC_Acceptance_Report(); _OpCache_tr_Skip_TC_Acceptance_Report.insert({read__tr_Skip_TC_Acceptance_Report_state, _trid_6}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - copiedState.Skip_TC_Acceptance_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { copiedState.Skip_TC_Acceptance_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); + } else { + copiedState.Skip_TC_Acceptance_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = _trid_6_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); - - auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - copiedState.Skip_TC_Acceptance_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_6 = _trid_6_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_6) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report readState = state._projected_state_for_Skip_TC_Acceptance_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Acceptance_Report_lock(_ProjectionRead_Skip_TC_Acceptance_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr = _OpCache_Skip_TC_Acceptance_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr == _OpCache_Skip_TC_Acceptance_Report.end()) { copiedState.Skip_TC_Acceptance_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Acceptance_Report.insert({param, _OpCache_with_parameter_Skip_TC_Acceptance_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Acceptance_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Acceptance_Report = _OpCache_with_parameter_Skip_TC_Acceptance_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Acceptance_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Acceptance_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Acceptance_Report(writeState); + } else { + copiedState.Skip_TC_Acceptance_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Acceptance_Report writeState = copiedState._update_for_Skip_TC_Acceptance_Report(); + _OpCache_with_parameter_Skip_TC_Acceptance_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Acceptance_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Report_TC_Rejection read__tr_Report_TC_Rejection_state = state._projected_state_for__tr_Report_TC_Rejection(); - auto _trid_7_ptr = _OpCache_tr_Report_TC_Rejection.find(read__tr_Report_TC_Rejection_state); - if(_trid_7_ptr == _OpCache_tr_Report_TC_Rejection.end()) { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = state._tr_Report_TC_Rejection(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Rejection_lock(_ProjectionRead__tr_Report_TC_Rejection_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Rejection_lock(_ProjectionRead__tr_Report_TC_Rejection_mutex); + auto _trid_7_ptr = _OpCache_tr_Report_TC_Rejection.find(read__tr_Report_TC_Rejection_state); + if(_trid_7_ptr == _OpCache_tr_Report_TC_Rejection.end()) { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = state._tr_Report_TC_Rejection(); _OpCache_tr_Report_TC_Rejection.insert({read__tr_Report_TC_Rejection_state, _trid_7}); - } - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); - - auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); - if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual>(); - _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); - _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); - } - } else { + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Rejection(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); + if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual>(); _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Rejection(writeState); + } else { + copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Rejection"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = _trid_7_ptr->second; - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); - - auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); - if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { + copiedState.stateAccessedVia = "Report_TC_Rejection"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual>(); - _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); - _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_7 = _trid_7_ptr->second; + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_7) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Rejection readState = state._projected_state_for_Report_TC_Rejection(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Rejection_lock(_ProjectionRead_Report_TC_Rejection_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Rejection(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Rejection_ptr = _OpCache_Report_TC_Rejection.find(param); + if(_OpCache_with_parameter_Report_TC_Rejection_ptr == _OpCache_Report_TC_Rejection.end()) { copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual>(); _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + _OpCache_Report_TC_Rejection.insert({param, _OpCache_with_parameter_Report_TC_Rejection}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Rejection, obsw_M001_2::_ProjectionWrite_Report_TC_Rejection, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Rejection::HashEqual> _OpCache_with_parameter_Report_TC_Rejection = _OpCache_with_parameter_Report_TC_Rejection_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Rejection.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Rejection.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Rejection(writeState); + } else { + copiedState.Report_TC_Rejection(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Rejection writeState = copiedState._update_for_Report_TC_Rejection(); + _OpCache_with_parameter_Report_TC_Rejection.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Rejection"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Rejection"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Skip_TC_Rejection_Report read__tr_Skip_TC_Rejection_Report_state = state._projected_state_for__tr_Skip_TC_Rejection_Report(); - auto _trid_8_ptr = _OpCache_tr_Skip_TC_Rejection_Report.find(read__tr_Skip_TC_Rejection_Report_state); - if(_trid_8_ptr == _OpCache_tr_Skip_TC_Rejection_Report.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = state._tr_Skip_TC_Rejection_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Rejection_Report_lock(_ProjectionRead__tr_Skip_TC_Rejection_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Rejection_Report_lock(_ProjectionRead__tr_Skip_TC_Rejection_Report_mutex); + auto _trid_8_ptr = _OpCache_tr_Skip_TC_Rejection_Report.find(read__tr_Skip_TC_Rejection_Report_state); + if(_trid_8_ptr == _OpCache_tr_Skip_TC_Rejection_Report.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = state._tr_Skip_TC_Rejection_Report(); _OpCache_tr_Skip_TC_Rejection_Report.insert({read__tr_Skip_TC_Rejection_Report_state, _trid_8}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - copiedState.Skip_TC_Rejection_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { copiedState.Skip_TC_Rejection_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); + } else { + copiedState.Skip_TC_Rejection_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = _trid_8_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); - - auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - copiedState.Skip_TC_Rejection_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_8 = _trid_8_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_8) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report readState = state._projected_state_for_Skip_TC_Rejection_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Rejection_Report_lock(_ProjectionRead_Skip_TC_Rejection_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr = _OpCache_Skip_TC_Rejection_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Rejection_Report_ptr == _OpCache_Skip_TC_Rejection_Report.end()) { copiedState.Skip_TC_Rejection_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Rejection_Report.insert({param, _OpCache_with_parameter_Skip_TC_Rejection_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Rejection_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Rejection_Report = _OpCache_with_parameter_Skip_TC_Rejection_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Rejection_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Rejection_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Rejection_Report(writeState); + } else { + copiedState.Skip_TC_Rejection_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Rejection_Report writeState = copiedState._update_for_Skip_TC_Rejection_Report(); + _OpCache_with_parameter_Skip_TC_Rejection_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Rejection_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Execute_TC_Successfully read__tr_Execute_TC_Successfully_state = state._projected_state_for__tr_Execute_TC_Successfully(); - auto _trid_9_ptr = _OpCache_tr_Execute_TC_Successfully.find(read__tr_Execute_TC_Successfully_state); - if(_trid_9_ptr == _OpCache_tr_Execute_TC_Successfully.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = state._tr_Execute_TC_Successfully(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Execute_TC_Successfully_lock(_ProjectionRead__tr_Execute_TC_Successfully_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Execute_TC_Successfully_lock(_ProjectionRead__tr_Execute_TC_Successfully_mutex); + auto _trid_9_ptr = _OpCache_tr_Execute_TC_Successfully.find(read__tr_Execute_TC_Successfully_state); + if(_trid_9_ptr == _OpCache_tr_Execute_TC_Successfully.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = state._tr_Execute_TC_Successfully(); _OpCache_tr_Execute_TC_Successfully.insert({read__tr_Execute_TC_Successfully_state, _trid_9}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); - if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); { std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - copiedState.Execute_TC_Successfully(_tmp_1); - obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); - _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); - _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { - obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; - copiedState._apply_update_for_Execute_TC_Successfully(writeState); - } else { + auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); + if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { copiedState.Execute_TC_Successfully(_tmp_1); obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { + obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; + copiedState._apply_update_for_Execute_TC_Successfully(writeState); + } else { + copiedState.Execute_TC_Successfully(_tmp_1); + obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Execute_TC_Successfully"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = _trid_9_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); - - auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); - if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { + copiedState.stateAccessedVia = "Execute_TC_Successfully"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - copiedState.Execute_TC_Successfully(_tmp_1); - obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); - _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); - _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_9 = _trid_9_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_9) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Execute_TC_Successfully readState = state._projected_state_for_Execute_TC_Successfully(); { std::unique_lock<std::mutex> _ProjectionRead_Execute_TC_Successfully_lock(_ProjectionRead_Execute_TC_Successfully_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { - obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; - copiedState._apply_update_for_Execute_TC_Successfully(writeState); - } else { + auto _OpCache_with_parameter_Execute_TC_Successfully_ptr = _OpCache_Execute_TC_Successfully.find(param); + if(_OpCache_with_parameter_Execute_TC_Successfully_ptr == _OpCache_Execute_TC_Successfully.end()) { copiedState.Execute_TC_Successfully(_tmp_1); obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual>(); _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + _OpCache_Execute_TC_Successfully.insert({param, _OpCache_with_parameter_Execute_TC_Successfully}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Execute_TC_Successfully, obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::Hash, obsw_M001_2::_ProjectionRead_Execute_TC_Successfully::HashEqual> _OpCache_with_parameter_Execute_TC_Successfully = _OpCache_with_parameter_Execute_TC_Successfully_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Execute_TC_Successfully.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Execute_TC_Successfully.end()) { + obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = writeState_ptr->second; + copiedState._apply_update_for_Execute_TC_Successfully(writeState); + } else { + copiedState.Execute_TC_Successfully(_tmp_1); + obsw_M001_2::_ProjectionWrite_Execute_TC_Successfully writeState = copiedState._update_for_Execute_TC_Successfully(); + _OpCache_with_parameter_Execute_TC_Successfully.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Execute_TC_Successfully"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Execute_TC_Successfully"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Reset_TM_Buffer read__tr_Reset_TM_Buffer_state = state._projected_state_for__tr_Reset_TM_Buffer(); - auto _trid_10_ptr = _OpCache_tr_Reset_TM_Buffer.find(read__tr_Reset_TM_Buffer_state); - if(_trid_10_ptr == _OpCache_tr_Reset_TM_Buffer.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = state._tr_Reset_TM_Buffer(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Reset_TM_Buffer_lock(_ProjectionRead__tr_Reset_TM_Buffer_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Reset_TM_Buffer_lock(_ProjectionRead__tr_Reset_TM_Buffer_mutex); + auto _trid_10_ptr = _OpCache_tr_Reset_TM_Buffer.find(read__tr_Reset_TM_Buffer_state); + if(_trid_10_ptr == _OpCache_tr_Reset_TM_Buffer.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = state._tr_Reset_TM_Buffer(); _OpCache_tr_Reset_TM_Buffer.insert({read__tr_Reset_TM_Buffer_state, _trid_10}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); - if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); { std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - copiedState.Reset_TM_Buffer(_tmp_1); - obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); - _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); - _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { - obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; - copiedState._apply_update_for_Reset_TM_Buffer(writeState); - } else { + auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); + if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { copiedState.Reset_TM_Buffer(_tmp_1); obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { + obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; + copiedState._apply_update_for_Reset_TM_Buffer(writeState); + } else { + copiedState.Reset_TM_Buffer(_tmp_1); + obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reset_TM_Buffer"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = _trid_10_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); - - auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); - if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { + copiedState.stateAccessedVia = "Reset_TM_Buffer"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - copiedState.Reset_TM_Buffer(_tmp_1); - obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); - _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); - _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_10 = _trid_10_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_10) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Reset_TM_Buffer readState = state._projected_state_for_Reset_TM_Buffer(); { std::unique_lock<std::mutex> _ProjectionRead_Reset_TM_Buffer_lock(_ProjectionRead_Reset_TM_Buffer_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { - obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; - copiedState._apply_update_for_Reset_TM_Buffer(writeState); - } else { + auto _OpCache_with_parameter_Reset_TM_Buffer_ptr = _OpCache_Reset_TM_Buffer.find(param); + if(_OpCache_with_parameter_Reset_TM_Buffer_ptr == _OpCache_Reset_TM_Buffer.end()) { copiedState.Reset_TM_Buffer(_tmp_1); obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual>(); _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + _OpCache_Reset_TM_Buffer.insert({param, _OpCache_with_parameter_Reset_TM_Buffer}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Reset_TM_Buffer, obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::Hash, obsw_M001_2::_ProjectionRead_Reset_TM_Buffer::HashEqual> _OpCache_with_parameter_Reset_TM_Buffer = _OpCache_with_parameter_Reset_TM_Buffer_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Reset_TM_Buffer.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Reset_TM_Buffer.end()) { + obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = writeState_ptr->second; + copiedState._apply_update_for_Reset_TM_Buffer(writeState); + } else { + copiedState.Reset_TM_Buffer(_tmp_1); + obsw_M001_2::_ProjectionWrite_Reset_TM_Buffer writeState = copiedState._update_for_Reset_TM_Buffer(); + _OpCache_with_parameter_Reset_TM_Buffer.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Reset_TM_Buffer"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Reset_TM_Buffer"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Fail_TC_Execution read__tr_Fail_TC_Execution_state = state._projected_state_for__tr_Fail_TC_Execution(); - auto _trid_11_ptr = _OpCache_tr_Fail_TC_Execution.find(read__tr_Fail_TC_Execution_state); - if(_trid_11_ptr == _OpCache_tr_Fail_TC_Execution.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = state._tr_Fail_TC_Execution(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Fail_TC_Execution_lock(_ProjectionRead__tr_Fail_TC_Execution_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Fail_TC_Execution_lock(_ProjectionRead__tr_Fail_TC_Execution_mutex); + auto _trid_11_ptr = _OpCache_tr_Fail_TC_Execution.find(read__tr_Fail_TC_Execution_state); + if(_trid_11_ptr == _OpCache_tr_Fail_TC_Execution.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = state._tr_Fail_TC_Execution(); _OpCache_tr_Fail_TC_Execution.insert({read__tr_Fail_TC_Execution_state, _trid_11}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); - if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); { std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - copiedState.Fail_TC_Execution(_tmp_1); - obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual>(); - _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); - _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { - obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; - copiedState._apply_update_for_Fail_TC_Execution(writeState); - } else { + auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); + if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { copiedState.Fail_TC_Execution(_tmp_1); obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual>(); _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { + obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; + copiedState._apply_update_for_Fail_TC_Execution(writeState); + } else { + copiedState.Fail_TC_Execution(_tmp_1); + obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Fail_TC_Execution"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = _trid_11_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); - - auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); - if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { + copiedState.stateAccessedVia = "Fail_TC_Execution"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - copiedState.Fail_TC_Execution(_tmp_1); - obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual>(); - _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); - _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_11 = _trid_11_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_11) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Fail_TC_Execution readState = state._projected_state_for_Fail_TC_Execution(); { std::unique_lock<std::mutex> _ProjectionRead_Fail_TC_Execution_lock(_ProjectionRead_Fail_TC_Execution_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { - obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; - copiedState._apply_update_for_Fail_TC_Execution(writeState); - } else { + auto _OpCache_with_parameter_Fail_TC_Execution_ptr = _OpCache_Fail_TC_Execution.find(param); + if(_OpCache_with_parameter_Fail_TC_Execution_ptr == _OpCache_Fail_TC_Execution.end()) { copiedState.Fail_TC_Execution(_tmp_1); obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual>(); _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + _OpCache_Fail_TC_Execution.insert({param, _OpCache_with_parameter_Fail_TC_Execution}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Fail_TC_Execution, obsw_M001_2::_ProjectionWrite_Fail_TC_Execution, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::Hash, obsw_M001_2::_ProjectionRead_Fail_TC_Execution::HashEqual> _OpCache_with_parameter_Fail_TC_Execution = _OpCache_with_parameter_Fail_TC_Execution_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Fail_TC_Execution.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Fail_TC_Execution.end()) { + obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = writeState_ptr->second; + copiedState._apply_update_for_Fail_TC_Execution(writeState); + } else { + copiedState.Fail_TC_Execution(_tmp_1); + obsw_M001_2::_ProjectionWrite_Fail_TC_Execution writeState = copiedState._update_for_Fail_TC_Execution(); + _OpCache_with_parameter_Fail_TC_Execution.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Fail_TC_Execution"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Fail_TC_Execution"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Report_TC_Execution_Success read__tr_Report_TC_Execution_Success_state = state._projected_state_for__tr_Report_TC_Execution_Success(); - auto _trid_12_ptr = _OpCache_tr_Report_TC_Execution_Success.find(read__tr_Report_TC_Execution_Success_state); - if(_trid_12_ptr == _OpCache_tr_Report_TC_Execution_Success.end()) { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = state._tr_Report_TC_Execution_Success(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Success_lock(_ProjectionRead__tr_Report_TC_Execution_Success_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Success_lock(_ProjectionRead__tr_Report_TC_Execution_Success_mutex); + auto _trid_12_ptr = _OpCache_tr_Report_TC_Execution_Success.find(read__tr_Report_TC_Execution_Success_state); + if(_trid_12_ptr == _OpCache_tr_Report_TC_Execution_Success.end()) { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = state._tr_Report_TC_Execution_Success(); _OpCache_tr_Report_TC_Execution_Success.insert({read__tr_Report_TC_Execution_Success_state, _trid_12}); - } - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); - - auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); - } - } else { + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Success(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Success(writeState); + } else { + copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Success"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = _trid_12_ptr->second; - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); - - auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { + copiedState.stateAccessedVia = "Report_TC_Execution_Success"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_12 = _trid_12_ptr->second; + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_12) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success readState = state._projected_state_for_Report_TC_Execution_Success(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Success_lock(_ProjectionRead_Report_TC_Execution_Success_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Success(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Success_ptr = _OpCache_Report_TC_Execution_Success.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Success_ptr == _OpCache_Report_TC_Execution_Success.end()) { copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Success.insert({param, _OpCache_with_parameter_Report_TC_Execution_Success}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Success::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Success = _OpCache_with_parameter_Report_TC_Execution_Success_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Success.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Success.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Success(writeState); + } else { + copiedState.Report_TC_Execution_Success(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Success writeState = copiedState._update_for_Report_TC_Execution_Success(); + _OpCache_with_parameter_Report_TC_Execution_Success.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Success"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Execution_Success"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Skip_TC_Success_Report read__tr_Skip_TC_Success_Report_state = state._projected_state_for__tr_Skip_TC_Success_Report(); - auto _trid_13_ptr = _OpCache_tr_Skip_TC_Success_Report.find(read__tr_Skip_TC_Success_Report_state); - if(_trid_13_ptr == _OpCache_tr_Skip_TC_Success_Report.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = state._tr_Skip_TC_Success_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Success_Report_lock(_ProjectionRead__tr_Skip_TC_Success_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Success_Report_lock(_ProjectionRead__tr_Skip_TC_Success_Report_mutex); + auto _trid_13_ptr = _OpCache_tr_Skip_TC_Success_Report.find(read__tr_Skip_TC_Success_Report_state); + if(_trid_13_ptr == _OpCache_tr_Skip_TC_Success_Report.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = state._tr_Skip_TC_Success_Report(); _OpCache_tr_Skip_TC_Success_Report.insert({read__tr_Skip_TC_Success_Report_state, _trid_13}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); - - auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - copiedState.Skip_TC_Success_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Success_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { copiedState.Skip_TC_Success_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Success_Report(writeState); + } else { + copiedState.Skip_TC_Success_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Success_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = _trid_13_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); - - auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Success_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - copiedState.Skip_TC_Success_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_13 = _trid_13_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_13) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report readState = state._projected_state_for_Skip_TC_Success_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Success_Report_lock(_ProjectionRead_Skip_TC_Success_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Success_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Success_Report_ptr = _OpCache_Skip_TC_Success_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Success_Report_ptr == _OpCache_Skip_TC_Success_Report.end()) { copiedState.Skip_TC_Success_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Success_Report.insert({param, _OpCache_with_parameter_Skip_TC_Success_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Success_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Success_Report = _OpCache_with_parameter_Skip_TC_Success_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Success_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Success_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Success_Report(writeState); + } else { + copiedState.Skip_TC_Success_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Success_Report writeState = copiedState._update_for_Skip_TC_Success_Report(); + _OpCache_with_parameter_Skip_TC_Success_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Success_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Success_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Report_TC_Execution_Failure read__tr_Report_TC_Execution_Failure_state = state._projected_state_for__tr_Report_TC_Execution_Failure(); - auto _trid_14_ptr = _OpCache_tr_Report_TC_Execution_Failure.find(read__tr_Report_TC_Execution_Failure_state); - if(_trid_14_ptr == _OpCache_tr_Report_TC_Execution_Failure.end()) { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = state._tr_Report_TC_Execution_Failure(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Failure_lock(_ProjectionRead__tr_Report_TC_Execution_Failure_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Report_TC_Execution_Failure_lock(_ProjectionRead__tr_Report_TC_Execution_Failure_mutex); + auto _trid_14_ptr = _OpCache_tr_Report_TC_Execution_Failure.find(read__tr_Report_TC_Execution_Failure_state); + if(_trid_14_ptr == _OpCache_tr_Report_TC_Execution_Failure.end()) { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = state._tr_Report_TC_Execution_Failure(); _OpCache_tr_Report_TC_Execution_Failure.insert({read__tr_Report_TC_Execution_Failure_state, _trid_14}); - } - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); - - auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); + } else { + copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = _trid_14_ptr->second; - for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); - obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); - - auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); - if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { + copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); - _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); - _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_14 = _trid_14_ptr->second; + for(const BTuple<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET >, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_14) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL, obsw_M001_2::TM_SET > _tmp_2 = param.projection1(); + obsw_M001_2::TM_SET _tmp_3 = _tmp_2.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_4 = _tmp_2.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure readState = state._projected_state_for_Report_TC_Execution_Failure(); { std::unique_lock<std::mutex> _ProjectionRead_Report_TC_Execution_Failure_lock(_ProjectionRead_Report_TC_Execution_Failure_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { - obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; - copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); - } else { + auto _OpCache_with_parameter_Report_TC_Execution_Failure_ptr = _OpCache_Report_TC_Execution_Failure.find(param); + if(_OpCache_with_parameter_Report_TC_Execution_Failure_ptr == _OpCache_Report_TC_Execution_Failure.end()) { copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual>(); _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + _OpCache_Report_TC_Execution_Failure.insert({param, _OpCache_with_parameter_Report_TC_Execution_Failure}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::Hash, obsw_M001_2::_ProjectionRead_Report_TC_Execution_Failure::HashEqual> _OpCache_with_parameter_Report_TC_Execution_Failure = _OpCache_with_parameter_Report_TC_Execution_Failure_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Report_TC_Execution_Failure.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Report_TC_Execution_Failure.end()) { + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = writeState_ptr->second; + copiedState._apply_update_for_Report_TC_Execution_Failure(writeState); + } else { + copiedState.Report_TC_Execution_Failure(_tmp_4, _tmp_3, _tmp_1); + obsw_M001_2::_ProjectionWrite_Report_TC_Execution_Failure writeState = copiedState._update_for_Report_TC_Execution_Failure(); + _OpCache_with_parameter_Report_TC_Execution_Failure.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Report_TC_Execution_Failure"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Skip_TC_Failure_Report read__tr_Skip_TC_Failure_Report_state = state._projected_state_for__tr_Skip_TC_Failure_Report(); - auto _trid_15_ptr = _OpCache_tr_Skip_TC_Failure_Report.find(read__tr_Skip_TC_Failure_Report_state); - if(_trid_15_ptr == _OpCache_tr_Skip_TC_Failure_Report.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = state._tr_Skip_TC_Failure_Report(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Failure_Report_lock(_ProjectionRead__tr_Skip_TC_Failure_Report_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Skip_TC_Failure_Report_lock(_ProjectionRead__tr_Skip_TC_Failure_Report_mutex); + auto _trid_15_ptr = _OpCache_tr_Skip_TC_Failure_Report.find(read__tr_Skip_TC_Failure_Report_state); + if(_trid_15_ptr == _OpCache_tr_Skip_TC_Failure_Report.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = state._tr_Skip_TC_Failure_Report(); _OpCache_tr_Skip_TC_Failure_Report.insert({read__tr_Skip_TC_Failure_Report_state, _trid_15}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - copiedState.Skip_TC_Failure_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { copiedState.Skip_TC_Failure_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); + } else { + copiedState.Skip_TC_Failure_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = _trid_15_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); - - auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); - if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { + copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - copiedState.Skip_TC_Failure_Report(_tmp_1); - obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); - _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); - _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_15 = _trid_15_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_15) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report readState = state._projected_state_for_Skip_TC_Failure_Report(); { std::unique_lock<std::mutex> _ProjectionRead_Skip_TC_Failure_Report_lock(_ProjectionRead_Skip_TC_Failure_Report_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { - obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; - copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); - } else { + auto _OpCache_with_parameter_Skip_TC_Failure_Report_ptr = _OpCache_Skip_TC_Failure_Report.find(param); + if(_OpCache_with_parameter_Skip_TC_Failure_Report_ptr == _OpCache_Skip_TC_Failure_Report.end()) { copiedState.Skip_TC_Failure_Report(_tmp_1); obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual>(); _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + _OpCache_Skip_TC_Failure_Report.insert({param, _OpCache_with_parameter_Skip_TC_Failure_Report}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::Hash, obsw_M001_2::_ProjectionRead_Skip_TC_Failure_Report::HashEqual> _OpCache_with_parameter_Skip_TC_Failure_Report = _OpCache_with_parameter_Skip_TC_Failure_Report_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Skip_TC_Failure_Report.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Skip_TC_Failure_Report.end()) { + obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = writeState_ptr->second; + copiedState._apply_update_for_Skip_TC_Failure_Report(writeState); + } else { + copiedState.Skip_TC_Failure_Report(_tmp_1); + obsw_M001_2::_ProjectionWrite_Skip_TC_Failure_Report writeState = copiedState._update_for_Skip_TC_Failure_Report(); + _OpCache_with_parameter_Skip_TC_Failure_Report.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Skip_TC_Failure_Report"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Drop_TC read__tr_Drop_TC_state = state._projected_state_for__tr_Drop_TC(); - auto _trid_16_ptr = _OpCache_tr_Drop_TC.find(read__tr_Drop_TC_state); - if(_trid_16_ptr == _OpCache_tr_Drop_TC.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = state._tr_Drop_TC(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TC_lock(_ProjectionRead__tr_Drop_TC_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TC_lock(_ProjectionRead__tr_Drop_TC_mutex); + auto _trid_16_ptr = _OpCache_tr_Drop_TC.find(read__tr_Drop_TC_state); + if(_trid_16_ptr == _OpCache_tr_Drop_TC.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = state._tr_Drop_TC(); _OpCache_tr_Drop_TC.insert({read__tr_Drop_TC_state, _trid_16}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); - - auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); - if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - copiedState.Drop_TC(_tmp_1); - obsw_M001_2::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual>(); - _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); - _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { - obsw_M001_2::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TC(writeState); - } else { + auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); + if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { copiedState.Drop_TC(_tmp_1); obsw_M001_2::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual>(); _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { + obsw_M001_2::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TC(writeState); + } else { + copiedState.Drop_TC(_tmp_1); + obsw_M001_2::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = _trid_16_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); - - auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); - if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { + copiedState.stateAccessedVia = "Drop_TC"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - copiedState.Drop_TC(_tmp_1); - obsw_M001_2::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual>(); - _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); - _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL> _trid_16 = _trid_16_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL& param : _trid_16) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TC_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Drop_TC readState = state._projected_state_for_Drop_TC(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TC_lock(_ProjectionRead_Drop_TC_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { - obsw_M001_2::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TC(writeState); - } else { + auto _OpCache_with_parameter_Drop_TC_ptr = _OpCache_Drop_TC.find(param); + if(_OpCache_with_parameter_Drop_TC_ptr == _OpCache_Drop_TC.end()) { copiedState.Drop_TC(_tmp_1); obsw_M001_2::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual>(); _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + _OpCache_Drop_TC.insert({param, _OpCache_with_parameter_Drop_TC}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TC, obsw_M001_2::_ProjectionWrite_Drop_TC, obsw_M001_2::_ProjectionRead_Drop_TC::Hash, obsw_M001_2::_ProjectionRead_Drop_TC::HashEqual> _OpCache_with_parameter_Drop_TC = _OpCache_with_parameter_Drop_TC_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TC.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TC.end()) { + obsw_M001_2::_ProjectionWrite_Drop_TC writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TC(writeState); + } else { + copiedState.Drop_TC(_tmp_1); + obsw_M001_2::_ProjectionWrite_Drop_TC writeState = copiedState._update_for_Drop_TC(); + _OpCache_with_parameter_Drop_TC.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TC"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Drop_TC"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Produce_TM read__tr_Produce_TM_state = state._projected_state_for__tr_Produce_TM(); - auto _trid_17_ptr = _OpCache_tr_Produce_TM.find(read__tr_Produce_TM_state); - if(_trid_17_ptr == _OpCache_tr_Produce_TM.end()) { - BSet<BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = state._tr_Produce_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Produce_TM_lock(_ProjectionRead__tr_Produce_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Produce_TM_lock(_ProjectionRead__tr_Produce_TM_mutex); + auto _trid_17_ptr = _OpCache_tr_Produce_TM.find(read__tr_Produce_TM_state); + if(_trid_17_ptr == _OpCache_tr_Produce_TM.end()) { + BSet<BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = state._tr_Produce_TM(); _OpCache_tr_Produce_TM.insert({read__tr_Produce_TM_state, _trid_17}); - } - for(const BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - obsw_M001_2::TM_SET _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); + for(const BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + obsw_M001_2::TM_SET _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); - if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - copiedState.Produce_TM(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual>(); - _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); - _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { - obsw_M001_2::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Produce_TM(writeState); - } else { + auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); + if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { copiedState.Produce_TM(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual>(); _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { + obsw_M001_2::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Produce_TM(writeState); + } else { + copiedState.Produce_TM(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Produce_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = _trid_17_ptr->second; - for(const BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); - obsw_M001_2::TM_SET _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); - - auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); - if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { + copiedState.stateAccessedVia = "Produce_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - copiedState.Produce_TM(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual>(); - _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); - _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >> _trid_17 = _trid_17_ptr->second; + for(const BTuple<obsw_M001_2::TM_SET, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL >& param : _trid_17) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param.projection2(); + obsw_M001_2::TM_SET _tmp_2 = param.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Produce_TM readState = state._projected_state_for_Produce_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Produce_TM_lock(_ProjectionRead_Produce_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { - obsw_M001_2::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Produce_TM(writeState); - } else { + auto _OpCache_with_parameter_Produce_TM_ptr = _OpCache_Produce_TM.find(param); + if(_OpCache_with_parameter_Produce_TM_ptr == _OpCache_Produce_TM.end()) { copiedState.Produce_TM(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual>(); _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + _OpCache_Produce_TM.insert({param, _OpCache_with_parameter_Produce_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Produce_TM, obsw_M001_2::_ProjectionWrite_Produce_TM, obsw_M001_2::_ProjectionRead_Produce_TM::Hash, obsw_M001_2::_ProjectionRead_Produce_TM::HashEqual> _OpCache_with_parameter_Produce_TM = _OpCache_with_parameter_Produce_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Produce_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Produce_TM.end()) { + obsw_M001_2::_ProjectionWrite_Produce_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Produce_TM(writeState); + } else { + copiedState.Produce_TM(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_Produce_TM writeState = copiedState._update_for_Produce_TM(); + _OpCache_with_parameter_Produce_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Produce_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Produce_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Pass_TM read__tr_Pass_TM_state = state._projected_state_for__tr_Pass_TM(); - auto _trid_18_ptr = _OpCache_tr_Pass_TM.find(read__tr_Pass_TM_state); - if(_trid_18_ptr == _OpCache_tr_Pass_TM.end()) { - BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = state._tr_Pass_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Pass_TM_lock(_ProjectionRead__tr_Pass_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Pass_TM_lock(_ProjectionRead__tr_Pass_TM_mutex); + auto _trid_18_ptr = _OpCache_tr_Pass_TM.find(read__tr_Pass_TM_state); + if(_trid_18_ptr == _OpCache_tr_Pass_TM.end()) { + BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = state._tr_Pass_TM(); _OpCache_tr_Pass_TM.insert({read__tr_Pass_TM_state, _trid_18}); - } - for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); + for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); - - auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); - if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - copiedState.Pass_TM(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual>(); - _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); - _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { - obsw_M001_2::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Pass_TM(writeState); - } else { + auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); + if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { copiedState.Pass_TM(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual>(); _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { + obsw_M001_2::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Pass_TM(writeState); + } else { + copiedState.Pass_TM(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Pass_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = _trid_18_ptr->second; - for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); - - auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); - if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { + copiedState.stateAccessedVia = "Pass_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - copiedState.Pass_TM(_tmp_2, _tmp_1); - obsw_M001_2::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual>(); - _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); - _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >> _trid_18 = _trid_18_ptr->second; + for(const BTuple<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL, obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER >& param : _trid_18) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param.projection2(); + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_2 = param.projection1(); + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Pass_TM readState = state._projected_state_for_Pass_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Pass_TM_lock(_ProjectionRead_Pass_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { - obsw_M001_2::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Pass_TM(writeState); - } else { + auto _OpCache_with_parameter_Pass_TM_ptr = _OpCache_Pass_TM.find(param); + if(_OpCache_with_parameter_Pass_TM_ptr == _OpCache_Pass_TM.end()) { copiedState.Pass_TM(_tmp_2, _tmp_1); obsw_M001_2::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual>(); _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + _OpCache_Pass_TM.insert({param, _OpCache_with_parameter_Pass_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Pass_TM, obsw_M001_2::_ProjectionWrite_Pass_TM, obsw_M001_2::_ProjectionRead_Pass_TM::Hash, obsw_M001_2::_ProjectionRead_Pass_TM::HashEqual> _OpCache_with_parameter_Pass_TM = _OpCache_with_parameter_Pass_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Pass_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Pass_TM.end()) { + obsw_M001_2::_ProjectionWrite_Pass_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Pass_TM(writeState); + } else { + copiedState.Pass_TM(_tmp_2, _tmp_1); + obsw_M001_2::_ProjectionWrite_Pass_TM writeState = copiedState._update_for_Pass_TM(); + _OpCache_with_parameter_Pass_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Pass_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Pass_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Cancel_TM read__tr_Cancel_TM_state = state._projected_state_for__tr_Cancel_TM(); - auto _trid_19_ptr = _OpCache_tr_Cancel_TM.find(read__tr_Cancel_TM_state); - if(_trid_19_ptr == _OpCache_tr_Cancel_TM.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = state._tr_Cancel_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Cancel_TM_lock(_ProjectionRead__tr_Cancel_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Cancel_TM_lock(_ProjectionRead__tr_Cancel_TM_mutex); + auto _trid_19_ptr = _OpCache_tr_Cancel_TM.find(read__tr_Cancel_TM_state); + if(_trid_19_ptr == _OpCache_tr_Cancel_TM.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = state._tr_Cancel_TM(); _OpCache_tr_Cancel_TM.insert({read__tr_Cancel_TM_state, _trid_19}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); - if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - copiedState.Cancel_TM(_tmp_1); - obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual>(); - _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); - _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { - obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Cancel_TM(writeState); - } else { + auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); + if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { copiedState.Cancel_TM(_tmp_1); obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual>(); _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { + obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Cancel_TM(writeState); + } else { + copiedState.Cancel_TM(_tmp_1); + obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Cancel_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = _trid_19_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); - - auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); - if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { + copiedState.stateAccessedVia = "Cancel_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - copiedState.Cancel_TM(_tmp_1); - obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual>(); - _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); - _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_19 = _trid_19_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_19) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Cancel_TM readState = state._projected_state_for_Cancel_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Cancel_TM_lock(_ProjectionRead_Cancel_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { - obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Cancel_TM(writeState); - } else { + auto _OpCache_with_parameter_Cancel_TM_ptr = _OpCache_Cancel_TM.find(param); + if(_OpCache_with_parameter_Cancel_TM_ptr == _OpCache_Cancel_TM.end()) { copiedState.Cancel_TM(_tmp_1); obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual>(); _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + _OpCache_Cancel_TM.insert({param, _OpCache_with_parameter_Cancel_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Cancel_TM, obsw_M001_2::_ProjectionWrite_Cancel_TM, obsw_M001_2::_ProjectionRead_Cancel_TM::Hash, obsw_M001_2::_ProjectionRead_Cancel_TM::HashEqual> _OpCache_with_parameter_Cancel_TM = _OpCache_with_parameter_Cancel_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Cancel_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Cancel_TM.end()) { + obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Cancel_TM(writeState); + } else { + copiedState.Cancel_TM(_tmp_1); + obsw_M001_2::_ProjectionWrite_Cancel_TM writeState = copiedState._update_for_Cancel_TM(); + _OpCache_with_parameter_Cancel_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Cancel_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Cancel_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_Drop_TM read__tr_Drop_TM_state = state._projected_state_for__tr_Drop_TM(); - auto _trid_20_ptr = _OpCache_tr_Drop_TM.find(read__tr_Drop_TM_state); - if(_trid_20_ptr == _OpCache_tr_Drop_TM.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = state._tr_Drop_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TM_lock(_ProjectionRead__tr_Drop_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_Drop_TM_lock(_ProjectionRead__tr_Drop_TM_mutex); + auto _trid_20_ptr = _OpCache_tr_Drop_TM.find(read__tr_Drop_TM_state); + if(_trid_20_ptr == _OpCache_tr_Drop_TM.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = state._tr_Drop_TM(); _OpCache_tr_Drop_TM.insert({read__tr_Drop_TM_state, _trid_20}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); - if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - copiedState.Drop_TM(_tmp_1); - obsw_M001_2::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual>(); - _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); - _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); - } - } else { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { - obsw_M001_2::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TM(writeState); - } else { + auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); + if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { copiedState.Drop_TM(_tmp_1); obsw_M001_2::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual>(); _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { + obsw_M001_2::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TM(writeState); + } else { + copiedState.Drop_TM(_tmp_1); + obsw_M001_2::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = _trid_20_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); - - auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); - if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { + copiedState.stateAccessedVia = "Drop_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - copiedState.Drop_TM(_tmp_1); - obsw_M001_2::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual>(); - _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); - _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL> _trid_20 = _trid_20_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL& param : _trid_20) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_POOL _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_Drop_TM readState = state._projected_state_for_Drop_TM(); { std::unique_lock<std::mutex> _ProjectionRead_Drop_TM_lock(_ProjectionRead_Drop_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { - obsw_M001_2::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_Drop_TM(writeState); - } else { + auto _OpCache_with_parameter_Drop_TM_ptr = _OpCache_Drop_TM.find(param); + if(_OpCache_with_parameter_Drop_TM_ptr == _OpCache_Drop_TM.end()) { copiedState.Drop_TM(_tmp_1); obsw_M001_2::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual>(); _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + _OpCache_Drop_TM.insert({param, _OpCache_with_parameter_Drop_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_Drop_TM, obsw_M001_2::_ProjectionWrite_Drop_TM, obsw_M001_2::_ProjectionRead_Drop_TM::Hash, obsw_M001_2::_ProjectionRead_Drop_TM::HashEqual> _OpCache_with_parameter_Drop_TM = _OpCache_with_parameter_Drop_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_Drop_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_Drop_TM.end()) { + obsw_M001_2::_ProjectionWrite_Drop_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_Drop_TM(writeState); + } else { + copiedState.Drop_TM(_tmp_1); + obsw_M001_2::_ProjectionWrite_Drop_TM writeState = copiedState._update_for_Drop_TM(); + _OpCache_with_parameter_Drop_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "Drop_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "Drop_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } obsw_M001_2::_ProjectionRead__tr_env_Deliver_TM read__tr_env_Deliver_TM_state = state._projected_state_for__tr_env_Deliver_TM(); - auto _trid_21_ptr = _OpCache_tr_env_Deliver_TM.find(read__tr_env_Deliver_TM_state); - if(_trid_21_ptr == _OpCache_tr_env_Deliver_TM.end()) { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = state._tr_env_Deliver_TM(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_env_Deliver_TM_lock(_ProjectionRead__tr_env_Deliver_TM_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_env_Deliver_TM_lock(_ProjectionRead__tr_env_Deliver_TM_mutex); + auto _trid_21_ptr = _OpCache_tr_env_Deliver_TM.find(read__tr_env_Deliver_TM_state); + if(_trid_21_ptr == _OpCache_tr_env_Deliver_TM.end()) { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = state._tr_env_Deliver_TM(); _OpCache_tr_env_Deliver_TM.insert({read__tr_env_Deliver_TM_state, _trid_21}); - } - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; - auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); - if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); { std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - copiedState.env_Deliver_TM(_tmp_1); - obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual>(); - _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); - _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { - obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Deliver_TM(writeState); - } else { + auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); + if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { copiedState.env_Deliver_TM(_tmp_1); obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual>(); _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { + obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Deliver_TM(writeState); + } else { + copiedState.env_Deliver_TM(_tmp_1); + obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Deliver_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = _trid_21_ptr->second; - for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { - obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; - - obsw_M001_2 copiedState = state._copy(); - obsw_M001_2::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); - - auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); - if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { + copiedState.stateAccessedVia = "env_Deliver_TM"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - copiedState.env_Deliver_TM(_tmp_1); - obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual>(); - _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); - _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER> _trid_21 = _trid_21_ptr->second; + for(const obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER& param : _trid_21) { + obsw_M001_2::PACKET_START_ADDRESSES_IN_TM_BUFFER _tmp_1 = param; + + obsw_M001_2 copiedState = state._copy(); + obsw_M001_2::_ProjectionRead_env_Deliver_TM readState = state._projected_state_for_env_Deliver_TM(); { std::unique_lock<std::mutex> _ProjectionRead_env_Deliver_TM_lock(_ProjectionRead_env_Deliver_TM_mutex); - std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); - if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { - obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; - copiedState._apply_update_for_env_Deliver_TM(writeState); - } else { + auto _OpCache_with_parameter_env_Deliver_TM_ptr = _OpCache_env_Deliver_TM.find(param); + if(_OpCache_with_parameter_env_Deliver_TM_ptr == _OpCache_env_Deliver_TM.end()) { copiedState.env_Deliver_TM(_tmp_1); obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual>(); _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + _OpCache_env_Deliver_TM.insert({param, _OpCache_with_parameter_env_Deliver_TM}); + } else { + std::unordered_map<obsw_M001_2::_ProjectionRead_env_Deliver_TM, obsw_M001_2::_ProjectionWrite_env_Deliver_TM, obsw_M001_2::_ProjectionRead_env_Deliver_TM::Hash, obsw_M001_2::_ProjectionRead_env_Deliver_TM::HashEqual> _OpCache_with_parameter_env_Deliver_TM = _OpCache_with_parameter_env_Deliver_TM_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_env_Deliver_TM.find(readState); + if(writeState_ptr != _OpCache_with_parameter_env_Deliver_TM.end()) { + obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = writeState_ptr->second; + copiedState._apply_update_for_env_Deliver_TM(writeState); + } else { + copiedState.env_Deliver_TM(_tmp_1); + obsw_M001_2::_ProjectionWrite_env_Deliver_TM writeState = copiedState._update_for_env_Deliver_TM(); + _OpCache_with_parameter_env_Deliver_TM.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "env_Deliver_TM"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "env_Deliver_TM"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/prob_oneway8seq.cpp b/benchmarks/model_checking_opreuse/C++/prob_oneway8seq.cpp index 58c64968e..458055ee5 100644 --- a/benchmarks/model_checking_opreuse/C++/prob_oneway8seq.cpp +++ b/benchmarks/model_checking_opreuse/C++/prob_oneway8seq.cpp @@ -3668,33 +3668,29 @@ class ModelChecker { if(isCaching) { prob_oneway8seq::_ProjectionRead__tr_move0 read__tr_move0_state = state._projected_state_for__tr_move0(); bool _trid_1 = false; - auto _obj__trid_1_ptr = _OpCache_tr_move0.find(read__tr_move0_state); - if(_obj__trid_1_ptr == _OpCache_tr_move0.end()) { - _trid_1 = state._tr_move0(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move0_lock(_ProjectionRead__tr_move0_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move0_lock(_ProjectionRead__tr_move0_mutex); + auto _obj__trid_1_ptr = _OpCache_tr_move0.find(read__tr_move0_state); + if(_obj__trid_1_ptr == _OpCache_tr_move0.end()) { + _trid_1 = state._tr_move0(); _OpCache_tr_move0.insert({read__tr_move0_state, _trid_1}); + } else { + _trid_1 = _obj__trid_1_ptr->second; } - } else { - _trid_1 = _obj__trid_1_ptr->second; } if(_trid_1) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move0 readState = state._projected_state_for_move0(); - - auto _OpCache_with_parameter_move0_ptr = _OpCache_move0.find(_trid_1); - if(_OpCache_with_parameter_move0_ptr == _OpCache_move0.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move0_lock(_ProjectionRead_move0_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move0_lock(_ProjectionRead_move0_mutex); + auto _OpCache_with_parameter_move0_ptr = _OpCache_move0.find(_trid_1); + if(_OpCache_with_parameter_move0_ptr == _OpCache_move0.end()) { copiedState.move0(); prob_oneway8seq::_ProjectionWrite_move0 writeState = copiedState._update_for_move0(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move0, prob_oneway8seq::_ProjectionWrite_move0, prob_oneway8seq::_ProjectionRead_move0::Hash, prob_oneway8seq::_ProjectionRead_move0::HashEqual> _OpCache_with_parameter_move0 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move0, prob_oneway8seq::_ProjectionWrite_move0, prob_oneway8seq::_ProjectionRead_move0::Hash, prob_oneway8seq::_ProjectionRead_move0::HashEqual>(); _OpCache_with_parameter_move0.insert({readState, writeState}); _OpCache_move0.insert({_trid_1, _OpCache_with_parameter_move0}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move0_lock(_ProjectionRead_move0_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move0, prob_oneway8seq::_ProjectionWrite_move0, prob_oneway8seq::_ProjectionRead_move0::Hash, prob_oneway8seq::_ProjectionRead_move0::HashEqual> _OpCache_with_parameter_move0 = _OpCache_with_parameter_move0_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move0.find(readState); if(writeState_ptr != _OpCache_with_parameter_move0.end()) { @@ -3707,7 +3703,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move0"; result.insert(copiedState); { @@ -3717,33 +3712,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move1 read__tr_move1_state = state._projected_state_for__tr_move1(); bool _trid_2 = false; - auto _obj__trid_2_ptr = _OpCache_tr_move1.find(read__tr_move1_state); - if(_obj__trid_2_ptr == _OpCache_tr_move1.end()) { - _trid_2 = state._tr_move1(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move1_lock(_ProjectionRead__tr_move1_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move1_lock(_ProjectionRead__tr_move1_mutex); + auto _obj__trid_2_ptr = _OpCache_tr_move1.find(read__tr_move1_state); + if(_obj__trid_2_ptr == _OpCache_tr_move1.end()) { + _trid_2 = state._tr_move1(); _OpCache_tr_move1.insert({read__tr_move1_state, _trid_2}); + } else { + _trid_2 = _obj__trid_2_ptr->second; } - } else { - _trid_2 = _obj__trid_2_ptr->second; } if(_trid_2) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move1 readState = state._projected_state_for_move1(); - - auto _OpCache_with_parameter_move1_ptr = _OpCache_move1.find(_trid_2); - if(_OpCache_with_parameter_move1_ptr == _OpCache_move1.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move1_lock(_ProjectionRead_move1_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move1_lock(_ProjectionRead_move1_mutex); + auto _OpCache_with_parameter_move1_ptr = _OpCache_move1.find(_trid_2); + if(_OpCache_with_parameter_move1_ptr == _OpCache_move1.end()) { copiedState.move1(); prob_oneway8seq::_ProjectionWrite_move1 writeState = copiedState._update_for_move1(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move1, prob_oneway8seq::_ProjectionWrite_move1, prob_oneway8seq::_ProjectionRead_move1::Hash, prob_oneway8seq::_ProjectionRead_move1::HashEqual> _OpCache_with_parameter_move1 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move1, prob_oneway8seq::_ProjectionWrite_move1, prob_oneway8seq::_ProjectionRead_move1::Hash, prob_oneway8seq::_ProjectionRead_move1::HashEqual>(); _OpCache_with_parameter_move1.insert({readState, writeState}); _OpCache_move1.insert({_trid_2, _OpCache_with_parameter_move1}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move1_lock(_ProjectionRead_move1_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move1, prob_oneway8seq::_ProjectionWrite_move1, prob_oneway8seq::_ProjectionRead_move1::Hash, prob_oneway8seq::_ProjectionRead_move1::HashEqual> _OpCache_with_parameter_move1 = _OpCache_with_parameter_move1_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move1.find(readState); if(writeState_ptr != _OpCache_with_parameter_move1.end()) { @@ -3756,7 +3747,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move1"; result.insert(copiedState); { @@ -3766,33 +3756,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move2 read__tr_move2_state = state._projected_state_for__tr_move2(); bool _trid_3 = false; - auto _obj__trid_3_ptr = _OpCache_tr_move2.find(read__tr_move2_state); - if(_obj__trid_3_ptr == _OpCache_tr_move2.end()) { - _trid_3 = state._tr_move2(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move2_lock(_ProjectionRead__tr_move2_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move2_lock(_ProjectionRead__tr_move2_mutex); + auto _obj__trid_3_ptr = _OpCache_tr_move2.find(read__tr_move2_state); + if(_obj__trid_3_ptr == _OpCache_tr_move2.end()) { + _trid_3 = state._tr_move2(); _OpCache_tr_move2.insert({read__tr_move2_state, _trid_3}); + } else { + _trid_3 = _obj__trid_3_ptr->second; } - } else { - _trid_3 = _obj__trid_3_ptr->second; } if(_trid_3) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move2 readState = state._projected_state_for_move2(); - - auto _OpCache_with_parameter_move2_ptr = _OpCache_move2.find(_trid_3); - if(_OpCache_with_parameter_move2_ptr == _OpCache_move2.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move2_lock(_ProjectionRead_move2_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move2_lock(_ProjectionRead_move2_mutex); + auto _OpCache_with_parameter_move2_ptr = _OpCache_move2.find(_trid_3); + if(_OpCache_with_parameter_move2_ptr == _OpCache_move2.end()) { copiedState.move2(); prob_oneway8seq::_ProjectionWrite_move2 writeState = copiedState._update_for_move2(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move2, prob_oneway8seq::_ProjectionWrite_move2, prob_oneway8seq::_ProjectionRead_move2::Hash, prob_oneway8seq::_ProjectionRead_move2::HashEqual> _OpCache_with_parameter_move2 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move2, prob_oneway8seq::_ProjectionWrite_move2, prob_oneway8seq::_ProjectionRead_move2::Hash, prob_oneway8seq::_ProjectionRead_move2::HashEqual>(); _OpCache_with_parameter_move2.insert({readState, writeState}); _OpCache_move2.insert({_trid_3, _OpCache_with_parameter_move2}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move2_lock(_ProjectionRead_move2_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move2, prob_oneway8seq::_ProjectionWrite_move2, prob_oneway8seq::_ProjectionRead_move2::Hash, prob_oneway8seq::_ProjectionRead_move2::HashEqual> _OpCache_with_parameter_move2 = _OpCache_with_parameter_move2_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move2.find(readState); if(writeState_ptr != _OpCache_with_parameter_move2.end()) { @@ -3805,7 +3791,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move2"; result.insert(copiedState); { @@ -3815,33 +3800,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move3 read__tr_move3_state = state._projected_state_for__tr_move3(); bool _trid_4 = false; - auto _obj__trid_4_ptr = _OpCache_tr_move3.find(read__tr_move3_state); - if(_obj__trid_4_ptr == _OpCache_tr_move3.end()) { - _trid_4 = state._tr_move3(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move3_lock(_ProjectionRead__tr_move3_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move3_lock(_ProjectionRead__tr_move3_mutex); + auto _obj__trid_4_ptr = _OpCache_tr_move3.find(read__tr_move3_state); + if(_obj__trid_4_ptr == _OpCache_tr_move3.end()) { + _trid_4 = state._tr_move3(); _OpCache_tr_move3.insert({read__tr_move3_state, _trid_4}); + } else { + _trid_4 = _obj__trid_4_ptr->second; } - } else { - _trid_4 = _obj__trid_4_ptr->second; } if(_trid_4) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move3 readState = state._projected_state_for_move3(); - - auto _OpCache_with_parameter_move3_ptr = _OpCache_move3.find(_trid_4); - if(_OpCache_with_parameter_move3_ptr == _OpCache_move3.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move3_lock(_ProjectionRead_move3_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move3_lock(_ProjectionRead_move3_mutex); + auto _OpCache_with_parameter_move3_ptr = _OpCache_move3.find(_trid_4); + if(_OpCache_with_parameter_move3_ptr == _OpCache_move3.end()) { copiedState.move3(); prob_oneway8seq::_ProjectionWrite_move3 writeState = copiedState._update_for_move3(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move3, prob_oneway8seq::_ProjectionWrite_move3, prob_oneway8seq::_ProjectionRead_move3::Hash, prob_oneway8seq::_ProjectionRead_move3::HashEqual> _OpCache_with_parameter_move3 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move3, prob_oneway8seq::_ProjectionWrite_move3, prob_oneway8seq::_ProjectionRead_move3::Hash, prob_oneway8seq::_ProjectionRead_move3::HashEqual>(); _OpCache_with_parameter_move3.insert({readState, writeState}); _OpCache_move3.insert({_trid_4, _OpCache_with_parameter_move3}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move3_lock(_ProjectionRead_move3_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move3, prob_oneway8seq::_ProjectionWrite_move3, prob_oneway8seq::_ProjectionRead_move3::Hash, prob_oneway8seq::_ProjectionRead_move3::HashEqual> _OpCache_with_parameter_move3 = _OpCache_with_parameter_move3_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move3.find(readState); if(writeState_ptr != _OpCache_with_parameter_move3.end()) { @@ -3854,7 +3835,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move3"; result.insert(copiedState); { @@ -3864,33 +3844,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move4 read__tr_move4_state = state._projected_state_for__tr_move4(); bool _trid_5 = false; - auto _obj__trid_5_ptr = _OpCache_tr_move4.find(read__tr_move4_state); - if(_obj__trid_5_ptr == _OpCache_tr_move4.end()) { - _trid_5 = state._tr_move4(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move4_lock(_ProjectionRead__tr_move4_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move4_lock(_ProjectionRead__tr_move4_mutex); + auto _obj__trid_5_ptr = _OpCache_tr_move4.find(read__tr_move4_state); + if(_obj__trid_5_ptr == _OpCache_tr_move4.end()) { + _trid_5 = state._tr_move4(); _OpCache_tr_move4.insert({read__tr_move4_state, _trid_5}); + } else { + _trid_5 = _obj__trid_5_ptr->second; } - } else { - _trid_5 = _obj__trid_5_ptr->second; } if(_trid_5) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move4 readState = state._projected_state_for_move4(); - - auto _OpCache_with_parameter_move4_ptr = _OpCache_move4.find(_trid_5); - if(_OpCache_with_parameter_move4_ptr == _OpCache_move4.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move4_lock(_ProjectionRead_move4_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move4_lock(_ProjectionRead_move4_mutex); + auto _OpCache_with_parameter_move4_ptr = _OpCache_move4.find(_trid_5); + if(_OpCache_with_parameter_move4_ptr == _OpCache_move4.end()) { copiedState.move4(); prob_oneway8seq::_ProjectionWrite_move4 writeState = copiedState._update_for_move4(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move4, prob_oneway8seq::_ProjectionWrite_move4, prob_oneway8seq::_ProjectionRead_move4::Hash, prob_oneway8seq::_ProjectionRead_move4::HashEqual> _OpCache_with_parameter_move4 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move4, prob_oneway8seq::_ProjectionWrite_move4, prob_oneway8seq::_ProjectionRead_move4::Hash, prob_oneway8seq::_ProjectionRead_move4::HashEqual>(); _OpCache_with_parameter_move4.insert({readState, writeState}); _OpCache_move4.insert({_trid_5, _OpCache_with_parameter_move4}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move4_lock(_ProjectionRead_move4_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move4, prob_oneway8seq::_ProjectionWrite_move4, prob_oneway8seq::_ProjectionRead_move4::Hash, prob_oneway8seq::_ProjectionRead_move4::HashEqual> _OpCache_with_parameter_move4 = _OpCache_with_parameter_move4_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move4.find(readState); if(writeState_ptr != _OpCache_with_parameter_move4.end()) { @@ -3903,7 +3879,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move4"; result.insert(copiedState); { @@ -3913,33 +3888,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move5 read__tr_move5_state = state._projected_state_for__tr_move5(); bool _trid_6 = false; - auto _obj__trid_6_ptr = _OpCache_tr_move5.find(read__tr_move5_state); - if(_obj__trid_6_ptr == _OpCache_tr_move5.end()) { - _trid_6 = state._tr_move5(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move5_lock(_ProjectionRead__tr_move5_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move5_lock(_ProjectionRead__tr_move5_mutex); + auto _obj__trid_6_ptr = _OpCache_tr_move5.find(read__tr_move5_state); + if(_obj__trid_6_ptr == _OpCache_tr_move5.end()) { + _trid_6 = state._tr_move5(); _OpCache_tr_move5.insert({read__tr_move5_state, _trid_6}); + } else { + _trid_6 = _obj__trid_6_ptr->second; } - } else { - _trid_6 = _obj__trid_6_ptr->second; } if(_trid_6) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move5 readState = state._projected_state_for_move5(); - - auto _OpCache_with_parameter_move5_ptr = _OpCache_move5.find(_trid_6); - if(_OpCache_with_parameter_move5_ptr == _OpCache_move5.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move5_lock(_ProjectionRead_move5_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move5_lock(_ProjectionRead_move5_mutex); + auto _OpCache_with_parameter_move5_ptr = _OpCache_move5.find(_trid_6); + if(_OpCache_with_parameter_move5_ptr == _OpCache_move5.end()) { copiedState.move5(); prob_oneway8seq::_ProjectionWrite_move5 writeState = copiedState._update_for_move5(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move5, prob_oneway8seq::_ProjectionWrite_move5, prob_oneway8seq::_ProjectionRead_move5::Hash, prob_oneway8seq::_ProjectionRead_move5::HashEqual> _OpCache_with_parameter_move5 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move5, prob_oneway8seq::_ProjectionWrite_move5, prob_oneway8seq::_ProjectionRead_move5::Hash, prob_oneway8seq::_ProjectionRead_move5::HashEqual>(); _OpCache_with_parameter_move5.insert({readState, writeState}); _OpCache_move5.insert({_trid_6, _OpCache_with_parameter_move5}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move5_lock(_ProjectionRead_move5_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move5, prob_oneway8seq::_ProjectionWrite_move5, prob_oneway8seq::_ProjectionRead_move5::Hash, prob_oneway8seq::_ProjectionRead_move5::HashEqual> _OpCache_with_parameter_move5 = _OpCache_with_parameter_move5_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move5.find(readState); if(writeState_ptr != _OpCache_with_parameter_move5.end()) { @@ -3952,7 +3923,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move5"; result.insert(copiedState); { @@ -3962,33 +3932,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move6 read__tr_move6_state = state._projected_state_for__tr_move6(); bool _trid_7 = false; - auto _obj__trid_7_ptr = _OpCache_tr_move6.find(read__tr_move6_state); - if(_obj__trid_7_ptr == _OpCache_tr_move6.end()) { - _trid_7 = state._tr_move6(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move6_lock(_ProjectionRead__tr_move6_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move6_lock(_ProjectionRead__tr_move6_mutex); + auto _obj__trid_7_ptr = _OpCache_tr_move6.find(read__tr_move6_state); + if(_obj__trid_7_ptr == _OpCache_tr_move6.end()) { + _trid_7 = state._tr_move6(); _OpCache_tr_move6.insert({read__tr_move6_state, _trid_7}); + } else { + _trid_7 = _obj__trid_7_ptr->second; } - } else { - _trid_7 = _obj__trid_7_ptr->second; } if(_trid_7) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move6 readState = state._projected_state_for_move6(); - - auto _OpCache_with_parameter_move6_ptr = _OpCache_move6.find(_trid_7); - if(_OpCache_with_parameter_move6_ptr == _OpCache_move6.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move6_lock(_ProjectionRead_move6_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move6_lock(_ProjectionRead_move6_mutex); + auto _OpCache_with_parameter_move6_ptr = _OpCache_move6.find(_trid_7); + if(_OpCache_with_parameter_move6_ptr == _OpCache_move6.end()) { copiedState.move6(); prob_oneway8seq::_ProjectionWrite_move6 writeState = copiedState._update_for_move6(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move6, prob_oneway8seq::_ProjectionWrite_move6, prob_oneway8seq::_ProjectionRead_move6::Hash, prob_oneway8seq::_ProjectionRead_move6::HashEqual> _OpCache_with_parameter_move6 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move6, prob_oneway8seq::_ProjectionWrite_move6, prob_oneway8seq::_ProjectionRead_move6::Hash, prob_oneway8seq::_ProjectionRead_move6::HashEqual>(); _OpCache_with_parameter_move6.insert({readState, writeState}); _OpCache_move6.insert({_trid_7, _OpCache_with_parameter_move6}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move6_lock(_ProjectionRead_move6_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move6, prob_oneway8seq::_ProjectionWrite_move6, prob_oneway8seq::_ProjectionRead_move6::Hash, prob_oneway8seq::_ProjectionRead_move6::HashEqual> _OpCache_with_parameter_move6 = _OpCache_with_parameter_move6_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move6.find(readState); if(writeState_ptr != _OpCache_with_parameter_move6.end()) { @@ -4001,7 +3967,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move6"; result.insert(copiedState); { @@ -4011,33 +3976,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_move7 read__tr_move7_state = state._projected_state_for__tr_move7(); bool _trid_8 = false; - auto _obj__trid_8_ptr = _OpCache_tr_move7.find(read__tr_move7_state); - if(_obj__trid_8_ptr == _OpCache_tr_move7.end()) { - _trid_8 = state._tr_move7(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_move7_lock(_ProjectionRead__tr_move7_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_move7_lock(_ProjectionRead__tr_move7_mutex); + auto _obj__trid_8_ptr = _OpCache_tr_move7.find(read__tr_move7_state); + if(_obj__trid_8_ptr == _OpCache_tr_move7.end()) { + _trid_8 = state._tr_move7(); _OpCache_tr_move7.insert({read__tr_move7_state, _trid_8}); + } else { + _trid_8 = _obj__trid_8_ptr->second; } - } else { - _trid_8 = _obj__trid_8_ptr->second; } if(_trid_8) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_move7 readState = state._projected_state_for_move7(); - - auto _OpCache_with_parameter_move7_ptr = _OpCache_move7.find(_trid_8); - if(_OpCache_with_parameter_move7_ptr == _OpCache_move7.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_move7_lock(_ProjectionRead_move7_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_move7_lock(_ProjectionRead_move7_mutex); + auto _OpCache_with_parameter_move7_ptr = _OpCache_move7.find(_trid_8); + if(_OpCache_with_parameter_move7_ptr == _OpCache_move7.end()) { copiedState.move7(); prob_oneway8seq::_ProjectionWrite_move7 writeState = copiedState._update_for_move7(); std::unordered_map<prob_oneway8seq::_ProjectionRead_move7, prob_oneway8seq::_ProjectionWrite_move7, prob_oneway8seq::_ProjectionRead_move7::Hash, prob_oneway8seq::_ProjectionRead_move7::HashEqual> _OpCache_with_parameter_move7 = std::unordered_map<prob_oneway8seq::_ProjectionRead_move7, prob_oneway8seq::_ProjectionWrite_move7, prob_oneway8seq::_ProjectionRead_move7::Hash, prob_oneway8seq::_ProjectionRead_move7::HashEqual>(); _OpCache_with_parameter_move7.insert({readState, writeState}); _OpCache_move7.insert({_trid_8, _OpCache_with_parameter_move7}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_move7_lock(_ProjectionRead_move7_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_move7, prob_oneway8seq::_ProjectionWrite_move7, prob_oneway8seq::_ProjectionRead_move7::Hash, prob_oneway8seq::_ProjectionRead_move7::HashEqual> _OpCache_with_parameter_move7 = _OpCache_with_parameter_move7_ptr->second; auto writeState_ptr = _OpCache_with_parameter_move7.find(readState); if(writeState_ptr != _OpCache_with_parameter_move7.end()) { @@ -4050,7 +4011,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "move7"; result.insert(copiedState); { @@ -4060,33 +4020,29 @@ class ModelChecker { } prob_oneway8seq::_ProjectionRead__tr_arrived read__tr_arrived_state = state._projected_state_for__tr_arrived(); bool _trid_9 = false; - auto _obj__trid_9_ptr = _OpCache_tr_arrived.find(read__tr_arrived_state); - if(_obj__trid_9_ptr == _OpCache_tr_arrived.end()) { - _trid_9 = state._tr_arrived(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_arrived_lock(_ProjectionRead__tr_arrived_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_arrived_lock(_ProjectionRead__tr_arrived_mutex); + auto _obj__trid_9_ptr = _OpCache_tr_arrived.find(read__tr_arrived_state); + if(_obj__trid_9_ptr == _OpCache_tr_arrived.end()) { + _trid_9 = state._tr_arrived(); _OpCache_tr_arrived.insert({read__tr_arrived_state, _trid_9}); + } else { + _trid_9 = _obj__trid_9_ptr->second; } - } else { - _trid_9 = _obj__trid_9_ptr->second; } if(_trid_9) { prob_oneway8seq copiedState = state._copy(); prob_oneway8seq::_ProjectionRead_arrived readState = state._projected_state_for_arrived(); - - auto _OpCache_with_parameter_arrived_ptr = _OpCache_arrived.find(_trid_9); - if(_OpCache_with_parameter_arrived_ptr == _OpCache_arrived.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_arrived_lock(_ProjectionRead_arrived_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_arrived_lock(_ProjectionRead_arrived_mutex); + auto _OpCache_with_parameter_arrived_ptr = _OpCache_arrived.find(_trid_9); + if(_OpCache_with_parameter_arrived_ptr == _OpCache_arrived.end()) { copiedState.arrived(); prob_oneway8seq::_ProjectionWrite_arrived writeState = copiedState._update_for_arrived(); std::unordered_map<prob_oneway8seq::_ProjectionRead_arrived, prob_oneway8seq::_ProjectionWrite_arrived, prob_oneway8seq::_ProjectionRead_arrived::Hash, prob_oneway8seq::_ProjectionRead_arrived::HashEqual> _OpCache_with_parameter_arrived = std::unordered_map<prob_oneway8seq::_ProjectionRead_arrived, prob_oneway8seq::_ProjectionWrite_arrived, prob_oneway8seq::_ProjectionRead_arrived::Hash, prob_oneway8seq::_ProjectionRead_arrived::HashEqual>(); _OpCache_with_parameter_arrived.insert({readState, writeState}); _OpCache_arrived.insert({_trid_9, _OpCache_with_parameter_arrived}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_arrived_lock(_ProjectionRead_arrived_mutex); + } else { std::unordered_map<prob_oneway8seq::_ProjectionRead_arrived, prob_oneway8seq::_ProjectionWrite_arrived, prob_oneway8seq::_ProjectionRead_arrived::Hash, prob_oneway8seq::_ProjectionRead_arrived::HashEqual> _OpCache_with_parameter_arrived = _OpCache_with_parameter_arrived_ptr->second; auto writeState_ptr = _OpCache_with_parameter_arrived.find(readState); if(writeState_ptr != _OpCache_with_parameter_arrived.end()) { @@ -4099,7 +4055,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "arrived"; result.insert(copiedState); { diff --git a/benchmarks/model_checking_opreuse/C++/rether.cpp b/benchmarks/model_checking_opreuse/C++/rether.cpp index ba8896637..fd2bb6202 100644 --- a/benchmarks/model_checking_opreuse/C++/rether.cpp +++ b/benchmarks/model_checking_opreuse/C++/rether.cpp @@ -2384,728 +2384,648 @@ class ModelChecker { std::unordered_set<rether, rether::Hash, rether::HashEqual> result = std::unordered_set<rether, rether::Hash, rether::HashEqual>(); if(isCaching) { rether::_ProjectionRead__tr_elapse_time read__tr_elapse_time_state = state._projected_state_for__tr_elapse_time(); - auto _trid_1_ptr = _OpCache_tr_elapse_time.find(read__tr_elapse_time_state); - if(_trid_1_ptr == _OpCache_tr_elapse_time.end()) { - BSet<BTuple<rether::Slots, rether::Slots >> _trid_1 = state._tr_elapse_time(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_elapse_time_lock(_ProjectionRead__tr_elapse_time_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_elapse_time_lock(_ProjectionRead__tr_elapse_time_mutex); + auto _trid_1_ptr = _OpCache_tr_elapse_time.find(read__tr_elapse_time_state); + if(_trid_1_ptr == _OpCache_tr_elapse_time.end()) { + BSet<BTuple<rether::Slots, rether::Slots >> _trid_1 = state._tr_elapse_time(); _OpCache_tr_elapse_time.insert({read__tr_elapse_time_state, _trid_1}); - } - for(const BTuple<rether::Slots, rether::Slots >& param : _trid_1) { - rether::Slots _tmp_1 = param.projection2(); - rether::Slots _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_elapse_time readState = state._projected_state_for_elapse_time(); + for(const BTuple<rether::Slots, rether::Slots >& param : _trid_1) { + rether::Slots _tmp_1 = param.projection2(); + rether::Slots _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_elapse_time_ptr = _OpCache_elapse_time.find(param); - if(_OpCache_with_parameter_elapse_time_ptr == _OpCache_elapse_time.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_elapse_time_lock(_ProjectionRead_elapse_time_mutex); - copiedState.elapse_time(_tmp_2, _tmp_1); - rether::_ProjectionWrite_elapse_time writeState = copiedState._update_for_elapse_time(); - std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual>(); - _OpCache_with_parameter_elapse_time.insert({readState, writeState}); - _OpCache_elapse_time.insert({param, _OpCache_with_parameter_elapse_time}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_elapse_time readState = state._projected_state_for_elapse_time(); { std::unique_lock<std::mutex> _ProjectionRead_elapse_time_lock(_ProjectionRead_elapse_time_mutex); - std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = _OpCache_with_parameter_elapse_time_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_elapse_time.find(readState); - if(writeState_ptr != _OpCache_with_parameter_elapse_time.end()) { - rether::_ProjectionWrite_elapse_time writeState = writeState_ptr->second; - copiedState._apply_update_for_elapse_time(writeState); - } else { + auto _OpCache_with_parameter_elapse_time_ptr = _OpCache_elapse_time.find(param); + if(_OpCache_with_parameter_elapse_time_ptr == _OpCache_elapse_time.end()) { copiedState.elapse_time(_tmp_2, _tmp_1); rether::_ProjectionWrite_elapse_time writeState = copiedState._update_for_elapse_time(); + std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual>(); _OpCache_with_parameter_elapse_time.insert({readState, writeState}); + _OpCache_elapse_time.insert({param, _OpCache_with_parameter_elapse_time}); + } else { + std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = _OpCache_with_parameter_elapse_time_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_elapse_time.find(readState); + if(writeState_ptr != _OpCache_with_parameter_elapse_time.end()) { + rether::_ProjectionWrite_elapse_time writeState = writeState_ptr->second; + copiedState._apply_update_for_elapse_time(writeState); + } else { + copiedState.elapse_time(_tmp_2, _tmp_1); + rether::_ProjectionWrite_elapse_time writeState = copiedState._update_for_elapse_time(); + _OpCache_with_parameter_elapse_time.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "elapse_time"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Slots, rether::Slots >> _trid_1 = _trid_1_ptr->second; - for(const BTuple<rether::Slots, rether::Slots >& param : _trid_1) { - rether::Slots _tmp_1 = param.projection2(); - rether::Slots _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_elapse_time readState = state._projected_state_for_elapse_time(); - - auto _OpCache_with_parameter_elapse_time_ptr = _OpCache_elapse_time.find(param); - if(_OpCache_with_parameter_elapse_time_ptr == _OpCache_elapse_time.end()) { + copiedState.stateAccessedVia = "elapse_time"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_elapse_time_lock(_ProjectionRead_elapse_time_mutex); - copiedState.elapse_time(_tmp_2, _tmp_1); - rether::_ProjectionWrite_elapse_time writeState = copiedState._update_for_elapse_time(); - std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual>(); - _OpCache_with_parameter_elapse_time.insert({readState, writeState}); - _OpCache_elapse_time.insert({param, _OpCache_with_parameter_elapse_time}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Slots, rether::Slots >> _trid_1 = _trid_1_ptr->second; + for(const BTuple<rether::Slots, rether::Slots >& param : _trid_1) { + rether::Slots _tmp_1 = param.projection2(); + rether::Slots _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_elapse_time readState = state._projected_state_for_elapse_time(); { std::unique_lock<std::mutex> _ProjectionRead_elapse_time_lock(_ProjectionRead_elapse_time_mutex); - std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = _OpCache_with_parameter_elapse_time_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_elapse_time.find(readState); - if(writeState_ptr != _OpCache_with_parameter_elapse_time.end()) { - rether::_ProjectionWrite_elapse_time writeState = writeState_ptr->second; - copiedState._apply_update_for_elapse_time(writeState); - } else { + auto _OpCache_with_parameter_elapse_time_ptr = _OpCache_elapse_time.find(param); + if(_OpCache_with_parameter_elapse_time_ptr == _OpCache_elapse_time.end()) { copiedState.elapse_time(_tmp_2, _tmp_1); rether::_ProjectionWrite_elapse_time writeState = copiedState._update_for_elapse_time(); + std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual>(); _OpCache_with_parameter_elapse_time.insert({readState, writeState}); + _OpCache_elapse_time.insert({param, _OpCache_with_parameter_elapse_time}); + } else { + std::unordered_map<rether::_ProjectionRead_elapse_time, rether::_ProjectionWrite_elapse_time, rether::_ProjectionRead_elapse_time::Hash, rether::_ProjectionRead_elapse_time::HashEqual> _OpCache_with_parameter_elapse_time = _OpCache_with_parameter_elapse_time_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_elapse_time.find(readState); + if(writeState_ptr != _OpCache_with_parameter_elapse_time.end()) { + rether::_ProjectionWrite_elapse_time writeState = writeState_ptr->second; + copiedState._apply_update_for_elapse_time(writeState); + } else { + copiedState.elapse_time(_tmp_2, _tmp_1); + rether::_ProjectionWrite_elapse_time writeState = copiedState._update_for_elapse_time(); + _OpCache_with_parameter_elapse_time.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "elapse_time"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "elapse_time"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_reserve read__tr_reserve_state = state._projected_state_for__tr_reserve(); - auto _trid_2_ptr = _OpCache_tr_reserve.find(read__tr_reserve_state); - if(_trid_2_ptr == _OpCache_tr_reserve.end()) { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_2 = state._tr_reserve(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_reserve_lock(_ProjectionRead__tr_reserve_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_reserve_lock(_ProjectionRead__tr_reserve_mutex); + auto _trid_2_ptr = _OpCache_tr_reserve.find(read__tr_reserve_state); + if(_trid_2_ptr == _OpCache_tr_reserve.end()) { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_2 = state._tr_reserve(); _OpCache_tr_reserve.insert({read__tr_reserve_state, _trid_2}); - } - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_2) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_reserve readState = state._projected_state_for_reserve(); + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_2) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_reserve_ptr = _OpCache_reserve.find(param); - if(_OpCache_with_parameter_reserve_ptr == _OpCache_reserve.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_reserve_lock(_ProjectionRead_reserve_mutex); - copiedState.reserve(_tmp_2, _tmp_1); - rether::_ProjectionWrite_reserve writeState = copiedState._update_for_reserve(); - std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual>(); - _OpCache_with_parameter_reserve.insert({readState, writeState}); - _OpCache_reserve.insert({param, _OpCache_with_parameter_reserve}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_reserve readState = state._projected_state_for_reserve(); { std::unique_lock<std::mutex> _ProjectionRead_reserve_lock(_ProjectionRead_reserve_mutex); - std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = _OpCache_with_parameter_reserve_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_reserve.find(readState); - if(writeState_ptr != _OpCache_with_parameter_reserve.end()) { - rether::_ProjectionWrite_reserve writeState = writeState_ptr->second; - copiedState._apply_update_for_reserve(writeState); - } else { + auto _OpCache_with_parameter_reserve_ptr = _OpCache_reserve.find(param); + if(_OpCache_with_parameter_reserve_ptr == _OpCache_reserve.end()) { copiedState.reserve(_tmp_2, _tmp_1); rether::_ProjectionWrite_reserve writeState = copiedState._update_for_reserve(); + std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual>(); _OpCache_with_parameter_reserve.insert({readState, writeState}); + _OpCache_reserve.insert({param, _OpCache_with_parameter_reserve}); + } else { + std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = _OpCache_with_parameter_reserve_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_reserve.find(readState); + if(writeState_ptr != _OpCache_with_parameter_reserve.end()) { + rether::_ProjectionWrite_reserve writeState = writeState_ptr->second; + copiedState._apply_update_for_reserve(writeState); + } else { + copiedState.reserve(_tmp_2, _tmp_1); + rether::_ProjectionWrite_reserve writeState = copiedState._update_for_reserve(); + _OpCache_with_parameter_reserve.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "reserve"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_2 = _trid_2_ptr->second; - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_2) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_reserve readState = state._projected_state_for_reserve(); - - auto _OpCache_with_parameter_reserve_ptr = _OpCache_reserve.find(param); - if(_OpCache_with_parameter_reserve_ptr == _OpCache_reserve.end()) { + copiedState.stateAccessedVia = "reserve"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_reserve_lock(_ProjectionRead_reserve_mutex); - copiedState.reserve(_tmp_2, _tmp_1); - rether::_ProjectionWrite_reserve writeState = copiedState._update_for_reserve(); - std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual>(); - _OpCache_with_parameter_reserve.insert({readState, writeState}); - _OpCache_reserve.insert({param, _OpCache_with_parameter_reserve}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_2 = _trid_2_ptr->second; + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_2) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_reserve readState = state._projected_state_for_reserve(); { std::unique_lock<std::mutex> _ProjectionRead_reserve_lock(_ProjectionRead_reserve_mutex); - std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = _OpCache_with_parameter_reserve_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_reserve.find(readState); - if(writeState_ptr != _OpCache_with_parameter_reserve.end()) { - rether::_ProjectionWrite_reserve writeState = writeState_ptr->second; - copiedState._apply_update_for_reserve(writeState); - } else { + auto _OpCache_with_parameter_reserve_ptr = _OpCache_reserve.find(param); + if(_OpCache_with_parameter_reserve_ptr == _OpCache_reserve.end()) { copiedState.reserve(_tmp_2, _tmp_1); rether::_ProjectionWrite_reserve writeState = copiedState._update_for_reserve(); + std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual>(); _OpCache_with_parameter_reserve.insert({readState, writeState}); + _OpCache_reserve.insert({param, _OpCache_with_parameter_reserve}); + } else { + std::unordered_map<rether::_ProjectionRead_reserve, rether::_ProjectionWrite_reserve, rether::_ProjectionRead_reserve::Hash, rether::_ProjectionRead_reserve::HashEqual> _OpCache_with_parameter_reserve = _OpCache_with_parameter_reserve_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_reserve.find(readState); + if(writeState_ptr != _OpCache_with_parameter_reserve.end()) { + rether::_ProjectionWrite_reserve writeState = writeState_ptr->second; + copiedState._apply_update_for_reserve(writeState); + } else { + copiedState.reserve(_tmp_2, _tmp_1); + rether::_ProjectionWrite_reserve writeState = copiedState._update_for_reserve(); + _OpCache_with_parameter_reserve.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "reserve"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "reserve"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_release read__tr_release_state = state._projected_state_for__tr_release(); - auto _trid_3_ptr = _OpCache_tr_release.find(read__tr_release_state); - if(_trid_3_ptr == _OpCache_tr_release.end()) { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_3 = state._tr_release(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_release_lock(_ProjectionRead__tr_release_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_release_lock(_ProjectionRead__tr_release_mutex); + auto _trid_3_ptr = _OpCache_tr_release.find(read__tr_release_state); + if(_trid_3_ptr == _OpCache_tr_release.end()) { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_3 = state._tr_release(); _OpCache_tr_release.insert({read__tr_release_state, _trid_3}); - } - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_3) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_release readState = state._projected_state_for_release(); + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_3) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_release_ptr = _OpCache_release.find(param); - if(_OpCache_with_parameter_release_ptr == _OpCache_release.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_release_lock(_ProjectionRead_release_mutex); - copiedState.release(_tmp_2, _tmp_1); - rether::_ProjectionWrite_release writeState = copiedState._update_for_release(); - std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual>(); - _OpCache_with_parameter_release.insert({readState, writeState}); - _OpCache_release.insert({param, _OpCache_with_parameter_release}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_release readState = state._projected_state_for_release(); { std::unique_lock<std::mutex> _ProjectionRead_release_lock(_ProjectionRead_release_mutex); - std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = _OpCache_with_parameter_release_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_release.find(readState); - if(writeState_ptr != _OpCache_with_parameter_release.end()) { - rether::_ProjectionWrite_release writeState = writeState_ptr->second; - copiedState._apply_update_for_release(writeState); - } else { + auto _OpCache_with_parameter_release_ptr = _OpCache_release.find(param); + if(_OpCache_with_parameter_release_ptr == _OpCache_release.end()) { copiedState.release(_tmp_2, _tmp_1); rether::_ProjectionWrite_release writeState = copiedState._update_for_release(); + std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual>(); _OpCache_with_parameter_release.insert({readState, writeState}); + _OpCache_release.insert({param, _OpCache_with_parameter_release}); + } else { + std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = _OpCache_with_parameter_release_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_release.find(readState); + if(writeState_ptr != _OpCache_with_parameter_release.end()) { + rether::_ProjectionWrite_release writeState = writeState_ptr->second; + copiedState._apply_update_for_release(writeState); + } else { + copiedState.release(_tmp_2, _tmp_1); + rether::_ProjectionWrite_release writeState = copiedState._update_for_release(); + _OpCache_with_parameter_release.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "release"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_3 = _trid_3_ptr->second; - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_3) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_release readState = state._projected_state_for_release(); - - auto _OpCache_with_parameter_release_ptr = _OpCache_release.find(param); - if(_OpCache_with_parameter_release_ptr == _OpCache_release.end()) { + copiedState.stateAccessedVia = "release"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_release_lock(_ProjectionRead_release_mutex); - copiedState.release(_tmp_2, _tmp_1); - rether::_ProjectionWrite_release writeState = copiedState._update_for_release(); - std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual>(); - _OpCache_with_parameter_release.insert({readState, writeState}); - _OpCache_release.insert({param, _OpCache_with_parameter_release}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_3 = _trid_3_ptr->second; + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_3) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_release readState = state._projected_state_for_release(); { std::unique_lock<std::mutex> _ProjectionRead_release_lock(_ProjectionRead_release_mutex); - std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = _OpCache_with_parameter_release_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_release.find(readState); - if(writeState_ptr != _OpCache_with_parameter_release.end()) { - rether::_ProjectionWrite_release writeState = writeState_ptr->second; - copiedState._apply_update_for_release(writeState); - } else { + auto _OpCache_with_parameter_release_ptr = _OpCache_release.find(param); + if(_OpCache_with_parameter_release_ptr == _OpCache_release.end()) { copiedState.release(_tmp_2, _tmp_1); rether::_ProjectionWrite_release writeState = copiedState._update_for_release(); + std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual>(); _OpCache_with_parameter_release.insert({readState, writeState}); + _OpCache_release.insert({param, _OpCache_with_parameter_release}); + } else { + std::unordered_map<rether::_ProjectionRead_release, rether::_ProjectionWrite_release, rether::_ProjectionRead_release::Hash, rether::_ProjectionRead_release::HashEqual> _OpCache_with_parameter_release = _OpCache_with_parameter_release_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_release.find(readState); + if(writeState_ptr != _OpCache_with_parameter_release.end()) { + rether::_ProjectionWrite_release writeState = writeState_ptr->second; + copiedState._apply_update_for_release(writeState); + } else { + copiedState.release(_tmp_2, _tmp_1); + rether::_ProjectionWrite_release writeState = copiedState._update_for_release(); + _OpCache_with_parameter_release.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "release"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "release"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_grant read__tr_grant_state = state._projected_state_for__tr_grant(); - auto _trid_4_ptr = _OpCache_tr_grant.find(read__tr_grant_state); - if(_trid_4_ptr == _OpCache_tr_grant.end()) { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_4 = state._tr_grant(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_grant_lock(_ProjectionRead__tr_grant_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_grant_lock(_ProjectionRead__tr_grant_mutex); + auto _trid_4_ptr = _OpCache_tr_grant.find(read__tr_grant_state); + if(_trid_4_ptr == _OpCache_tr_grant.end()) { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_4 = state._tr_grant(); _OpCache_tr_grant.insert({read__tr_grant_state, _trid_4}); - } - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_4) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_grant readState = state._projected_state_for_grant(); + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_4) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_grant_ptr = _OpCache_grant.find(param); - if(_OpCache_with_parameter_grant_ptr == _OpCache_grant.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_grant_lock(_ProjectionRead_grant_mutex); - copiedState.grant(_tmp_2, _tmp_1); - rether::_ProjectionWrite_grant writeState = copiedState._update_for_grant(); - std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual>(); - _OpCache_with_parameter_grant.insert({readState, writeState}); - _OpCache_grant.insert({param, _OpCache_with_parameter_grant}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_grant readState = state._projected_state_for_grant(); { std::unique_lock<std::mutex> _ProjectionRead_grant_lock(_ProjectionRead_grant_mutex); - std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = _OpCache_with_parameter_grant_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_grant.find(readState); - if(writeState_ptr != _OpCache_with_parameter_grant.end()) { - rether::_ProjectionWrite_grant writeState = writeState_ptr->second; - copiedState._apply_update_for_grant(writeState); - } else { + auto _OpCache_with_parameter_grant_ptr = _OpCache_grant.find(param); + if(_OpCache_with_parameter_grant_ptr == _OpCache_grant.end()) { copiedState.grant(_tmp_2, _tmp_1); rether::_ProjectionWrite_grant writeState = copiedState._update_for_grant(); + std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual>(); _OpCache_with_parameter_grant.insert({readState, writeState}); + _OpCache_grant.insert({param, _OpCache_with_parameter_grant}); + } else { + std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = _OpCache_with_parameter_grant_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_grant.find(readState); + if(writeState_ptr != _OpCache_with_parameter_grant.end()) { + rether::_ProjectionWrite_grant writeState = writeState_ptr->second; + copiedState._apply_update_for_grant(writeState); + } else { + copiedState.grant(_tmp_2, _tmp_1); + rether::_ProjectionWrite_grant writeState = copiedState._update_for_grant(); + _OpCache_with_parameter_grant.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "grant"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_4 = _trid_4_ptr->second; - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_4) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_grant readState = state._projected_state_for_grant(); - - auto _OpCache_with_parameter_grant_ptr = _OpCache_grant.find(param); - if(_OpCache_with_parameter_grant_ptr == _OpCache_grant.end()) { + copiedState.stateAccessedVia = "grant"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_grant_lock(_ProjectionRead_grant_mutex); - copiedState.grant(_tmp_2, _tmp_1); - rether::_ProjectionWrite_grant writeState = copiedState._update_for_grant(); - std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual>(); - _OpCache_with_parameter_grant.insert({readState, writeState}); - _OpCache_grant.insert({param, _OpCache_with_parameter_grant}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_4 = _trid_4_ptr->second; + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_4) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_grant readState = state._projected_state_for_grant(); { std::unique_lock<std::mutex> _ProjectionRead_grant_lock(_ProjectionRead_grant_mutex); - std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = _OpCache_with_parameter_grant_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_grant.find(readState); - if(writeState_ptr != _OpCache_with_parameter_grant.end()) { - rether::_ProjectionWrite_grant writeState = writeState_ptr->second; - copiedState._apply_update_for_grant(writeState); - } else { + auto _OpCache_with_parameter_grant_ptr = _OpCache_grant.find(param); + if(_OpCache_with_parameter_grant_ptr == _OpCache_grant.end()) { copiedState.grant(_tmp_2, _tmp_1); rether::_ProjectionWrite_grant writeState = copiedState._update_for_grant(); + std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual>(); _OpCache_with_parameter_grant.insert({readState, writeState}); + _OpCache_grant.insert({param, _OpCache_with_parameter_grant}); + } else { + std::unordered_map<rether::_ProjectionRead_grant, rether::_ProjectionWrite_grant, rether::_ProjectionRead_grant::Hash, rether::_ProjectionRead_grant::HashEqual> _OpCache_with_parameter_grant = _OpCache_with_parameter_grant_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_grant.find(readState); + if(writeState_ptr != _OpCache_with_parameter_grant.end()) { + rether::_ProjectionWrite_grant writeState = writeState_ptr->second; + copiedState._apply_update_for_grant(writeState); + } else { + copiedState.grant(_tmp_2, _tmp_1); + rether::_ProjectionWrite_grant writeState = copiedState._update_for_grant(); + _OpCache_with_parameter_grant.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "grant"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "grant"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_no_grant read__tr_no_grant_state = state._projected_state_for__tr_no_grant(); - auto _trid_5_ptr = _OpCache_tr_no_grant.find(read__tr_no_grant_state); - if(_trid_5_ptr == _OpCache_tr_no_grant.end()) { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_5 = state._tr_no_grant(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_no_grant_lock(_ProjectionRead__tr_no_grant_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_no_grant_lock(_ProjectionRead__tr_no_grant_mutex); + auto _trid_5_ptr = _OpCache_tr_no_grant.find(read__tr_no_grant_state); + if(_trid_5_ptr == _OpCache_tr_no_grant.end()) { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_5 = state._tr_no_grant(); _OpCache_tr_no_grant.insert({read__tr_no_grant_state, _trid_5}); - } - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_5) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_no_grant readState = state._projected_state_for_no_grant(); + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_5) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_no_grant_ptr = _OpCache_no_grant.find(param); - if(_OpCache_with_parameter_no_grant_ptr == _OpCache_no_grant.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_no_grant_lock(_ProjectionRead_no_grant_mutex); - copiedState.no_grant(_tmp_2, _tmp_1); - rether::_ProjectionWrite_no_grant writeState = copiedState._update_for_no_grant(); - std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual>(); - _OpCache_with_parameter_no_grant.insert({readState, writeState}); - _OpCache_no_grant.insert({param, _OpCache_with_parameter_no_grant}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_no_grant readState = state._projected_state_for_no_grant(); { std::unique_lock<std::mutex> _ProjectionRead_no_grant_lock(_ProjectionRead_no_grant_mutex); - std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = _OpCache_with_parameter_no_grant_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_no_grant.find(readState); - if(writeState_ptr != _OpCache_with_parameter_no_grant.end()) { - rether::_ProjectionWrite_no_grant writeState = writeState_ptr->second; - copiedState._apply_update_for_no_grant(writeState); - } else { + auto _OpCache_with_parameter_no_grant_ptr = _OpCache_no_grant.find(param); + if(_OpCache_with_parameter_no_grant_ptr == _OpCache_no_grant.end()) { copiedState.no_grant(_tmp_2, _tmp_1); rether::_ProjectionWrite_no_grant writeState = copiedState._update_for_no_grant(); + std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual>(); _OpCache_with_parameter_no_grant.insert({readState, writeState}); + _OpCache_no_grant.insert({param, _OpCache_with_parameter_no_grant}); + } else { + std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = _OpCache_with_parameter_no_grant_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_no_grant.find(readState); + if(writeState_ptr != _OpCache_with_parameter_no_grant.end()) { + rether::_ProjectionWrite_no_grant writeState = writeState_ptr->second; + copiedState._apply_update_for_no_grant(writeState); + } else { + copiedState.no_grant(_tmp_2, _tmp_1); + rether::_ProjectionWrite_no_grant writeState = copiedState._update_for_no_grant(); + _OpCache_with_parameter_no_grant.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "no_grant"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_5 = _trid_5_ptr->second; - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_5) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_no_grant readState = state._projected_state_for_no_grant(); - - auto _OpCache_with_parameter_no_grant_ptr = _OpCache_no_grant.find(param); - if(_OpCache_with_parameter_no_grant_ptr == _OpCache_no_grant.end()) { + copiedState.stateAccessedVia = "no_grant"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_no_grant_lock(_ProjectionRead_no_grant_mutex); - copiedState.no_grant(_tmp_2, _tmp_1); - rether::_ProjectionWrite_no_grant writeState = copiedState._update_for_no_grant(); - std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual>(); - _OpCache_with_parameter_no_grant.insert({readState, writeState}); - _OpCache_no_grant.insert({param, _OpCache_with_parameter_no_grant}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_5 = _trid_5_ptr->second; + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_5) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_no_grant readState = state._projected_state_for_no_grant(); { std::unique_lock<std::mutex> _ProjectionRead_no_grant_lock(_ProjectionRead_no_grant_mutex); - std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = _OpCache_with_parameter_no_grant_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_no_grant.find(readState); - if(writeState_ptr != _OpCache_with_parameter_no_grant.end()) { - rether::_ProjectionWrite_no_grant writeState = writeState_ptr->second; - copiedState._apply_update_for_no_grant(writeState); - } else { + auto _OpCache_with_parameter_no_grant_ptr = _OpCache_no_grant.find(param); + if(_OpCache_with_parameter_no_grant_ptr == _OpCache_no_grant.end()) { copiedState.no_grant(_tmp_2, _tmp_1); rether::_ProjectionWrite_no_grant writeState = copiedState._update_for_no_grant(); + std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual>(); _OpCache_with_parameter_no_grant.insert({readState, writeState}); + _OpCache_no_grant.insert({param, _OpCache_with_parameter_no_grant}); + } else { + std::unordered_map<rether::_ProjectionRead_no_grant, rether::_ProjectionWrite_no_grant, rether::_ProjectionRead_no_grant::Hash, rether::_ProjectionRead_no_grant::HashEqual> _OpCache_with_parameter_no_grant = _OpCache_with_parameter_no_grant_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_no_grant.find(readState); + if(writeState_ptr != _OpCache_with_parameter_no_grant.end()) { + rether::_ProjectionWrite_no_grant writeState = writeState_ptr->second; + copiedState._apply_update_for_no_grant(writeState); + } else { + copiedState.no_grant(_tmp_2, _tmp_1); + rether::_ProjectionWrite_no_grant writeState = copiedState._update_for_no_grant(); + _OpCache_with_parameter_no_grant.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "no_grant"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "no_grant"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_use_RT_Slot read__tr_use_RT_Slot_state = state._projected_state_for__tr_use_RT_Slot(); - auto _trid_6_ptr = _OpCache_tr_use_RT_Slot.find(read__tr_use_RT_Slot_state); - if(_trid_6_ptr == _OpCache_tr_use_RT_Slot.end()) { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_6 = state._tr_use_RT_Slot(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_use_RT_Slot_lock(_ProjectionRead__tr_use_RT_Slot_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_use_RT_Slot_lock(_ProjectionRead__tr_use_RT_Slot_mutex); + auto _trid_6_ptr = _OpCache_tr_use_RT_Slot.find(read__tr_use_RT_Slot_state); + if(_trid_6_ptr == _OpCache_tr_use_RT_Slot.end()) { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_6 = state._tr_use_RT_Slot(); _OpCache_tr_use_RT_Slot.insert({read__tr_use_RT_Slot_state, _trid_6}); - } - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_6) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_use_RT_Slot readState = state._projected_state_for_use_RT_Slot(); + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_6) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_use_RT_Slot_ptr = _OpCache_use_RT_Slot.find(param); - if(_OpCache_with_parameter_use_RT_Slot_ptr == _OpCache_use_RT_Slot.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_use_RT_Slot_lock(_ProjectionRead_use_RT_Slot_mutex); - copiedState.use_RT_Slot(_tmp_2, _tmp_1); - rether::_ProjectionWrite_use_RT_Slot writeState = copiedState._update_for_use_RT_Slot(); - std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual>(); - _OpCache_with_parameter_use_RT_Slot.insert({readState, writeState}); - _OpCache_use_RT_Slot.insert({param, _OpCache_with_parameter_use_RT_Slot}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_use_RT_Slot readState = state._projected_state_for_use_RT_Slot(); { std::unique_lock<std::mutex> _ProjectionRead_use_RT_Slot_lock(_ProjectionRead_use_RT_Slot_mutex); - std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = _OpCache_with_parameter_use_RT_Slot_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_use_RT_Slot.find(readState); - if(writeState_ptr != _OpCache_with_parameter_use_RT_Slot.end()) { - rether::_ProjectionWrite_use_RT_Slot writeState = writeState_ptr->second; - copiedState._apply_update_for_use_RT_Slot(writeState); - } else { + auto _OpCache_with_parameter_use_RT_Slot_ptr = _OpCache_use_RT_Slot.find(param); + if(_OpCache_with_parameter_use_RT_Slot_ptr == _OpCache_use_RT_Slot.end()) { copiedState.use_RT_Slot(_tmp_2, _tmp_1); rether::_ProjectionWrite_use_RT_Slot writeState = copiedState._update_for_use_RT_Slot(); + std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual>(); _OpCache_with_parameter_use_RT_Slot.insert({readState, writeState}); + _OpCache_use_RT_Slot.insert({param, _OpCache_with_parameter_use_RT_Slot}); + } else { + std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = _OpCache_with_parameter_use_RT_Slot_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_use_RT_Slot.find(readState); + if(writeState_ptr != _OpCache_with_parameter_use_RT_Slot.end()) { + rether::_ProjectionWrite_use_RT_Slot writeState = writeState_ptr->second; + copiedState._apply_update_for_use_RT_Slot(writeState); + } else { + copiedState.use_RT_Slot(_tmp_2, _tmp_1); + rether::_ProjectionWrite_use_RT_Slot writeState = copiedState._update_for_use_RT_Slot(); + _OpCache_with_parameter_use_RT_Slot.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "use_RT_Slot"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_6 = _trid_6_ptr->second; - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_6) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_use_RT_Slot readState = state._projected_state_for_use_RT_Slot(); - - auto _OpCache_with_parameter_use_RT_Slot_ptr = _OpCache_use_RT_Slot.find(param); - if(_OpCache_with_parameter_use_RT_Slot_ptr == _OpCache_use_RT_Slot.end()) { + copiedState.stateAccessedVia = "use_RT_Slot"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_use_RT_Slot_lock(_ProjectionRead_use_RT_Slot_mutex); - copiedState.use_RT_Slot(_tmp_2, _tmp_1); - rether::_ProjectionWrite_use_RT_Slot writeState = copiedState._update_for_use_RT_Slot(); - std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual>(); - _OpCache_with_parameter_use_RT_Slot.insert({readState, writeState}); - _OpCache_use_RT_Slot.insert({param, _OpCache_with_parameter_use_RT_Slot}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_6 = _trid_6_ptr->second; + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_6) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_use_RT_Slot readState = state._projected_state_for_use_RT_Slot(); { std::unique_lock<std::mutex> _ProjectionRead_use_RT_Slot_lock(_ProjectionRead_use_RT_Slot_mutex); - std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = _OpCache_with_parameter_use_RT_Slot_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_use_RT_Slot.find(readState); - if(writeState_ptr != _OpCache_with_parameter_use_RT_Slot.end()) { - rether::_ProjectionWrite_use_RT_Slot writeState = writeState_ptr->second; - copiedState._apply_update_for_use_RT_Slot(writeState); - } else { + auto _OpCache_with_parameter_use_RT_Slot_ptr = _OpCache_use_RT_Slot.find(param); + if(_OpCache_with_parameter_use_RT_Slot_ptr == _OpCache_use_RT_Slot.end()) { copiedState.use_RT_Slot(_tmp_2, _tmp_1); rether::_ProjectionWrite_use_RT_Slot writeState = copiedState._update_for_use_RT_Slot(); + std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual>(); _OpCache_with_parameter_use_RT_Slot.insert({readState, writeState}); + _OpCache_use_RT_Slot.insert({param, _OpCache_with_parameter_use_RT_Slot}); + } else { + std::unordered_map<rether::_ProjectionRead_use_RT_Slot, rether::_ProjectionWrite_use_RT_Slot, rether::_ProjectionRead_use_RT_Slot::Hash, rether::_ProjectionRead_use_RT_Slot::HashEqual> _OpCache_with_parameter_use_RT_Slot = _OpCache_with_parameter_use_RT_Slot_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_use_RT_Slot.find(readState); + if(writeState_ptr != _OpCache_with_parameter_use_RT_Slot.end()) { + rether::_ProjectionWrite_use_RT_Slot writeState = writeState_ptr->second; + copiedState._apply_update_for_use_RT_Slot(writeState); + } else { + copiedState.use_RT_Slot(_tmp_2, _tmp_1); + rether::_ProjectionWrite_use_RT_Slot writeState = copiedState._update_for_use_RT_Slot(); + _OpCache_with_parameter_use_RT_Slot.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "use_RT_Slot"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "use_RT_Slot"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_use_NRT_Slot read__tr_use_NRT_Slot_state = state._projected_state_for__tr_use_NRT_Slot(); - auto _trid_7_ptr = _OpCache_tr_use_NRT_Slot.find(read__tr_use_NRT_Slot_state); - if(_trid_7_ptr == _OpCache_tr_use_NRT_Slot.end()) { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_7 = state._tr_use_NRT_Slot(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_use_NRT_Slot_lock(_ProjectionRead__tr_use_NRT_Slot_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_use_NRT_Slot_lock(_ProjectionRead__tr_use_NRT_Slot_mutex); + auto _trid_7_ptr = _OpCache_tr_use_NRT_Slot.find(read__tr_use_NRT_Slot_state); + if(_trid_7_ptr == _OpCache_tr_use_NRT_Slot.end()) { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_7 = state._tr_use_NRT_Slot(); _OpCache_tr_use_NRT_Slot.insert({read__tr_use_NRT_Slot_state, _trid_7}); - } - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_7) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_use_NRT_Slot readState = state._projected_state_for_use_NRT_Slot(); + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_7) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); - auto _OpCache_with_parameter_use_NRT_Slot_ptr = _OpCache_use_NRT_Slot.find(param); - if(_OpCache_with_parameter_use_NRT_Slot_ptr == _OpCache_use_NRT_Slot.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_use_NRT_Slot_lock(_ProjectionRead_use_NRT_Slot_mutex); - copiedState.use_NRT_Slot(_tmp_2, _tmp_1); - rether::_ProjectionWrite_use_NRT_Slot writeState = copiedState._update_for_use_NRT_Slot(); - std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual>(); - _OpCache_with_parameter_use_NRT_Slot.insert({readState, writeState}); - _OpCache_use_NRT_Slot.insert({param, _OpCache_with_parameter_use_NRT_Slot}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_use_NRT_Slot readState = state._projected_state_for_use_NRT_Slot(); { std::unique_lock<std::mutex> _ProjectionRead_use_NRT_Slot_lock(_ProjectionRead_use_NRT_Slot_mutex); - std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = _OpCache_with_parameter_use_NRT_Slot_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_use_NRT_Slot.find(readState); - if(writeState_ptr != _OpCache_with_parameter_use_NRT_Slot.end()) { - rether::_ProjectionWrite_use_NRT_Slot writeState = writeState_ptr->second; - copiedState._apply_update_for_use_NRT_Slot(writeState); - } else { + auto _OpCache_with_parameter_use_NRT_Slot_ptr = _OpCache_use_NRT_Slot.find(param); + if(_OpCache_with_parameter_use_NRT_Slot_ptr == _OpCache_use_NRT_Slot.end()) { copiedState.use_NRT_Slot(_tmp_2, _tmp_1); rether::_ProjectionWrite_use_NRT_Slot writeState = copiedState._update_for_use_NRT_Slot(); + std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual>(); _OpCache_with_parameter_use_NRT_Slot.insert({readState, writeState}); + _OpCache_use_NRT_Slot.insert({param, _OpCache_with_parameter_use_NRT_Slot}); + } else { + std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = _OpCache_with_parameter_use_NRT_Slot_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_use_NRT_Slot.find(readState); + if(writeState_ptr != _OpCache_with_parameter_use_NRT_Slot.end()) { + rether::_ProjectionWrite_use_NRT_Slot writeState = writeState_ptr->second; + copiedState._apply_update_for_use_NRT_Slot(writeState); + } else { + copiedState.use_NRT_Slot(_tmp_2, _tmp_1); + rether::_ProjectionWrite_use_NRT_Slot writeState = copiedState._update_for_use_NRT_Slot(); + _OpCache_with_parameter_use_NRT_Slot.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "use_NRT_Slot"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<BTuple<rether::Nodes, rether::Slots >> _trid_7 = _trid_7_ptr->second; - for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_7) { - rether::Slots _tmp_1 = param.projection2(); - rether::Nodes _tmp_2 = param.projection1(); - - rether copiedState = state._copy(); - rether::_ProjectionRead_use_NRT_Slot readState = state._projected_state_for_use_NRT_Slot(); - - auto _OpCache_with_parameter_use_NRT_Slot_ptr = _OpCache_use_NRT_Slot.find(param); - if(_OpCache_with_parameter_use_NRT_Slot_ptr == _OpCache_use_NRT_Slot.end()) { + copiedState.stateAccessedVia = "use_NRT_Slot"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_use_NRT_Slot_lock(_ProjectionRead_use_NRT_Slot_mutex); - copiedState.use_NRT_Slot(_tmp_2, _tmp_1); - rether::_ProjectionWrite_use_NRT_Slot writeState = copiedState._update_for_use_NRT_Slot(); - std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual>(); - _OpCache_with_parameter_use_NRT_Slot.insert({readState, writeState}); - _OpCache_use_NRT_Slot.insert({param, _OpCache_with_parameter_use_NRT_Slot}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<BTuple<rether::Nodes, rether::Slots >> _trid_7 = _trid_7_ptr->second; + for(const BTuple<rether::Nodes, rether::Slots >& param : _trid_7) { + rether::Slots _tmp_1 = param.projection2(); + rether::Nodes _tmp_2 = param.projection1(); + + rether copiedState = state._copy(); + rether::_ProjectionRead_use_NRT_Slot readState = state._projected_state_for_use_NRT_Slot(); { std::unique_lock<std::mutex> _ProjectionRead_use_NRT_Slot_lock(_ProjectionRead_use_NRT_Slot_mutex); - std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = _OpCache_with_parameter_use_NRT_Slot_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_use_NRT_Slot.find(readState); - if(writeState_ptr != _OpCache_with_parameter_use_NRT_Slot.end()) { - rether::_ProjectionWrite_use_NRT_Slot writeState = writeState_ptr->second; - copiedState._apply_update_for_use_NRT_Slot(writeState); - } else { + auto _OpCache_with_parameter_use_NRT_Slot_ptr = _OpCache_use_NRT_Slot.find(param); + if(_OpCache_with_parameter_use_NRT_Slot_ptr == _OpCache_use_NRT_Slot.end()) { copiedState.use_NRT_Slot(_tmp_2, _tmp_1); rether::_ProjectionWrite_use_NRT_Slot writeState = copiedState._update_for_use_NRT_Slot(); + std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual>(); _OpCache_with_parameter_use_NRT_Slot.insert({readState, writeState}); + _OpCache_use_NRT_Slot.insert({param, _OpCache_with_parameter_use_NRT_Slot}); + } else { + std::unordered_map<rether::_ProjectionRead_use_NRT_Slot, rether::_ProjectionWrite_use_NRT_Slot, rether::_ProjectionRead_use_NRT_Slot::Hash, rether::_ProjectionRead_use_NRT_Slot::HashEqual> _OpCache_with_parameter_use_NRT_Slot = _OpCache_with_parameter_use_NRT_Slot_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_use_NRT_Slot.find(readState); + if(writeState_ptr != _OpCache_with_parameter_use_NRT_Slot.end()) { + rether::_ProjectionWrite_use_NRT_Slot writeState = writeState_ptr->second; + copiedState._apply_update_for_use_NRT_Slot(writeState); + } else { + copiedState.use_NRT_Slot(_tmp_2, _tmp_1); + rether::_ProjectionWrite_use_NRT_Slot writeState = copiedState._update_for_use_NRT_Slot(); + _OpCache_with_parameter_use_NRT_Slot.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "use_NRT_Slot"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "use_NRT_Slot"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } rether::_ProjectionRead__tr_pass_token read__tr_pass_token_state = state._projected_state_for__tr_pass_token(); - auto _trid_8_ptr = _OpCache_tr_pass_token.find(read__tr_pass_token_state); - if(_trid_8_ptr == _OpCache_tr_pass_token.end()) { - BSet<rether::Nodes> _trid_8 = state._tr_pass_token(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_pass_token_lock(_ProjectionRead__tr_pass_token_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_pass_token_lock(_ProjectionRead__tr_pass_token_mutex); + auto _trid_8_ptr = _OpCache_tr_pass_token.find(read__tr_pass_token_state); + if(_trid_8_ptr == _OpCache_tr_pass_token.end()) { + BSet<rether::Nodes> _trid_8 = state._tr_pass_token(); _OpCache_tr_pass_token.insert({read__tr_pass_token_state, _trid_8}); - } - for(const rether::Nodes& param : _trid_8) { - rether::Nodes _tmp_1 = param; - - rether copiedState = state._copy(); - rether::_ProjectionRead_pass_token readState = state._projected_state_for_pass_token(); + for(const rether::Nodes& param : _trid_8) { + rether::Nodes _tmp_1 = param; - auto _OpCache_with_parameter_pass_token_ptr = _OpCache_pass_token.find(param); - if(_OpCache_with_parameter_pass_token_ptr == _OpCache_pass_token.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_pass_token_lock(_ProjectionRead_pass_token_mutex); - copiedState.pass_token(_tmp_1); - rether::_ProjectionWrite_pass_token writeState = copiedState._update_for_pass_token(); - std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual>(); - _OpCache_with_parameter_pass_token.insert({readState, writeState}); - _OpCache_pass_token.insert({param, _OpCache_with_parameter_pass_token}); - } - } else { + rether copiedState = state._copy(); + rether::_ProjectionRead_pass_token readState = state._projected_state_for_pass_token(); { std::unique_lock<std::mutex> _ProjectionRead_pass_token_lock(_ProjectionRead_pass_token_mutex); - std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = _OpCache_with_parameter_pass_token_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_pass_token.find(readState); - if(writeState_ptr != _OpCache_with_parameter_pass_token.end()) { - rether::_ProjectionWrite_pass_token writeState = writeState_ptr->second; - copiedState._apply_update_for_pass_token(writeState); - } else { + auto _OpCache_with_parameter_pass_token_ptr = _OpCache_pass_token.find(param); + if(_OpCache_with_parameter_pass_token_ptr == _OpCache_pass_token.end()) { copiedState.pass_token(_tmp_1); rether::_ProjectionWrite_pass_token writeState = copiedState._update_for_pass_token(); + std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual>(); _OpCache_with_parameter_pass_token.insert({readState, writeState}); + _OpCache_pass_token.insert({param, _OpCache_with_parameter_pass_token}); + } else { + std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = _OpCache_with_parameter_pass_token_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_pass_token.find(readState); + if(writeState_ptr != _OpCache_with_parameter_pass_token.end()) { + rether::_ProjectionWrite_pass_token writeState = writeState_ptr->second; + copiedState._apply_update_for_pass_token(writeState); + } else { + copiedState.pass_token(_tmp_1); + rether::_ProjectionWrite_pass_token writeState = copiedState._update_for_pass_token(); + _OpCache_with_parameter_pass_token.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "pass_token"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; - } - } - } else { - BSet<rether::Nodes> _trid_8 = _trid_8_ptr->second; - for(const rether::Nodes& param : _trid_8) { - rether::Nodes _tmp_1 = param; - - rether copiedState = state._copy(); - rether::_ProjectionRead_pass_token readState = state._projected_state_for_pass_token(); - - auto _OpCache_with_parameter_pass_token_ptr = _OpCache_pass_token.find(param); - if(_OpCache_with_parameter_pass_token_ptr == _OpCache_pass_token.end()) { + copiedState.stateAccessedVia = "pass_token"; + result.insert(copiedState); { - std::unique_lock<std::mutex> _ProjectionRead_pass_token_lock(_ProjectionRead_pass_token_mutex); - copiedState.pass_token(_tmp_1); - rether::_ProjectionWrite_pass_token writeState = copiedState._update_for_pass_token(); - std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual>(); - _OpCache_with_parameter_pass_token.insert({readState, writeState}); - _OpCache_pass_token.insert({param, _OpCache_with_parameter_pass_token}); + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; } - } else { + } + } else { + BSet<rether::Nodes> _trid_8 = _trid_8_ptr->second; + for(const rether::Nodes& param : _trid_8) { + rether::Nodes _tmp_1 = param; + + rether copiedState = state._copy(); + rether::_ProjectionRead_pass_token readState = state._projected_state_for_pass_token(); { std::unique_lock<std::mutex> _ProjectionRead_pass_token_lock(_ProjectionRead_pass_token_mutex); - std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = _OpCache_with_parameter_pass_token_ptr->second; - auto writeState_ptr = _OpCache_with_parameter_pass_token.find(readState); - if(writeState_ptr != _OpCache_with_parameter_pass_token.end()) { - rether::_ProjectionWrite_pass_token writeState = writeState_ptr->second; - copiedState._apply_update_for_pass_token(writeState); - } else { + auto _OpCache_with_parameter_pass_token_ptr = _OpCache_pass_token.find(param); + if(_OpCache_with_parameter_pass_token_ptr == _OpCache_pass_token.end()) { copiedState.pass_token(_tmp_1); rether::_ProjectionWrite_pass_token writeState = copiedState._update_for_pass_token(); + std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual>(); _OpCache_with_parameter_pass_token.insert({readState, writeState}); + _OpCache_pass_token.insert({param, _OpCache_with_parameter_pass_token}); + } else { + std::unordered_map<rether::_ProjectionRead_pass_token, rether::_ProjectionWrite_pass_token, rether::_ProjectionRead_pass_token::Hash, rether::_ProjectionRead_pass_token::HashEqual> _OpCache_with_parameter_pass_token = _OpCache_with_parameter_pass_token_ptr->second; + auto writeState_ptr = _OpCache_with_parameter_pass_token.find(readState); + if(writeState_ptr != _OpCache_with_parameter_pass_token.end()) { + rether::_ProjectionWrite_pass_token writeState = writeState_ptr->second; + copiedState._apply_update_for_pass_token(writeState); + } else { + copiedState.pass_token(_tmp_1); + rether::_ProjectionWrite_pass_token writeState = copiedState._update_for_pass_token(); + _OpCache_with_parameter_pass_token.insert({readState, writeState}); + } } } - } - - copiedState.stateAccessedVia = "pass_token"; - result.insert(copiedState); - { - std::unique_lock<std::mutex> lock(mutex); - transitions += 1; + copiedState.stateAccessedVia = "pass_token"; + result.insert(copiedState); + { + std::unique_lock<std::mutex> lock(mutex); + transitions += 1; + } } } } diff --git a/benchmarks/model_checking_opreuse/C++/sort_m2_data1000_MC.cpp b/benchmarks/model_checking_opreuse/C++/sort_m2_data1000_MC.cpp index 5822f355a..edb3a028a 100644 --- a/benchmarks/model_checking_opreuse/C++/sort_m2_data1000_MC.cpp +++ b/benchmarks/model_checking_opreuse/C++/sort_m2_data1000_MC.cpp @@ -1652,33 +1652,29 @@ class ModelChecker { if(isCaching) { sort_m2_data1000_MC::_ProjectionRead__tr_progress read__tr_progress_state = state._projected_state_for__tr_progress(); bool _trid_1 = false; - auto _obj__trid_1_ptr = _OpCache_tr_progress.find(read__tr_progress_state); - if(_obj__trid_1_ptr == _OpCache_tr_progress.end()) { - _trid_1 = state._tr_progress(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_progress_lock(_ProjectionRead__tr_progress_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_progress_lock(_ProjectionRead__tr_progress_mutex); + auto _obj__trid_1_ptr = _OpCache_tr_progress.find(read__tr_progress_state); + if(_obj__trid_1_ptr == _OpCache_tr_progress.end()) { + _trid_1 = state._tr_progress(); _OpCache_tr_progress.insert({read__tr_progress_state, _trid_1}); + } else { + _trid_1 = _obj__trid_1_ptr->second; } - } else { - _trid_1 = _obj__trid_1_ptr->second; } if(_trid_1) { sort_m2_data1000_MC copiedState = state._copy(); sort_m2_data1000_MC::_ProjectionRead_progress readState = state._projected_state_for_progress(); - - auto _OpCache_with_parameter_progress_ptr = _OpCache_progress.find(_trid_1); - if(_OpCache_with_parameter_progress_ptr == _OpCache_progress.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_progress_lock(_ProjectionRead_progress_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_progress_lock(_ProjectionRead_progress_mutex); + auto _OpCache_with_parameter_progress_ptr = _OpCache_progress.find(_trid_1); + if(_OpCache_with_parameter_progress_ptr == _OpCache_progress.end()) { copiedState.progress(); sort_m2_data1000_MC::_ProjectionWrite_progress writeState = copiedState._update_for_progress(); std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_progress, sort_m2_data1000_MC::_ProjectionWrite_progress, sort_m2_data1000_MC::_ProjectionRead_progress::Hash, sort_m2_data1000_MC::_ProjectionRead_progress::HashEqual> _OpCache_with_parameter_progress = std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_progress, sort_m2_data1000_MC::_ProjectionWrite_progress, sort_m2_data1000_MC::_ProjectionRead_progress::Hash, sort_m2_data1000_MC::_ProjectionRead_progress::HashEqual>(); _OpCache_with_parameter_progress.insert({readState, writeState}); _OpCache_progress.insert({_trid_1, _OpCache_with_parameter_progress}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_progress_lock(_ProjectionRead_progress_mutex); + } else { std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_progress, sort_m2_data1000_MC::_ProjectionWrite_progress, sort_m2_data1000_MC::_ProjectionRead_progress::Hash, sort_m2_data1000_MC::_ProjectionRead_progress::HashEqual> _OpCache_with_parameter_progress = _OpCache_with_parameter_progress_ptr->second; auto writeState_ptr = _OpCache_with_parameter_progress.find(readState); if(writeState_ptr != _OpCache_with_parameter_progress.end()) { @@ -1691,7 +1687,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "progress"; result.insert(copiedState); { @@ -1701,33 +1696,29 @@ class ModelChecker { } sort_m2_data1000_MC::_ProjectionRead__tr_prog1 read__tr_prog1_state = state._projected_state_for__tr_prog1(); bool _trid_2 = false; - auto _obj__trid_2_ptr = _OpCache_tr_prog1.find(read__tr_prog1_state); - if(_obj__trid_2_ptr == _OpCache_tr_prog1.end()) { - _trid_2 = state._tr_prog1(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_prog1_lock(_ProjectionRead__tr_prog1_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_prog1_lock(_ProjectionRead__tr_prog1_mutex); + auto _obj__trid_2_ptr = _OpCache_tr_prog1.find(read__tr_prog1_state); + if(_obj__trid_2_ptr == _OpCache_tr_prog1.end()) { + _trid_2 = state._tr_prog1(); _OpCache_tr_prog1.insert({read__tr_prog1_state, _trid_2}); + } else { + _trid_2 = _obj__trid_2_ptr->second; } - } else { - _trid_2 = _obj__trid_2_ptr->second; } if(_trid_2) { sort_m2_data1000_MC copiedState = state._copy(); sort_m2_data1000_MC::_ProjectionRead_prog1 readState = state._projected_state_for_prog1(); - - auto _OpCache_with_parameter_prog1_ptr = _OpCache_prog1.find(_trid_2); - if(_OpCache_with_parameter_prog1_ptr == _OpCache_prog1.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_prog1_lock(_ProjectionRead_prog1_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_prog1_lock(_ProjectionRead_prog1_mutex); + auto _OpCache_with_parameter_prog1_ptr = _OpCache_prog1.find(_trid_2); + if(_OpCache_with_parameter_prog1_ptr == _OpCache_prog1.end()) { copiedState.prog1(); sort_m2_data1000_MC::_ProjectionWrite_prog1 writeState = copiedState._update_for_prog1(); std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_prog1, sort_m2_data1000_MC::_ProjectionWrite_prog1, sort_m2_data1000_MC::_ProjectionRead_prog1::Hash, sort_m2_data1000_MC::_ProjectionRead_prog1::HashEqual> _OpCache_with_parameter_prog1 = std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_prog1, sort_m2_data1000_MC::_ProjectionWrite_prog1, sort_m2_data1000_MC::_ProjectionRead_prog1::Hash, sort_m2_data1000_MC::_ProjectionRead_prog1::HashEqual>(); _OpCache_with_parameter_prog1.insert({readState, writeState}); _OpCache_prog1.insert({_trid_2, _OpCache_with_parameter_prog1}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_prog1_lock(_ProjectionRead_prog1_mutex); + } else { std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_prog1, sort_m2_data1000_MC::_ProjectionWrite_prog1, sort_m2_data1000_MC::_ProjectionRead_prog1::Hash, sort_m2_data1000_MC::_ProjectionRead_prog1::HashEqual> _OpCache_with_parameter_prog1 = _OpCache_with_parameter_prog1_ptr->second; auto writeState_ptr = _OpCache_with_parameter_prog1.find(readState); if(writeState_ptr != _OpCache_with_parameter_prog1.end()) { @@ -1740,7 +1731,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "prog1"; result.insert(copiedState); { @@ -1750,33 +1740,29 @@ class ModelChecker { } sort_m2_data1000_MC::_ProjectionRead__tr_prog2 read__tr_prog2_state = state._projected_state_for__tr_prog2(); bool _trid_3 = false; - auto _obj__trid_3_ptr = _OpCache_tr_prog2.find(read__tr_prog2_state); - if(_obj__trid_3_ptr == _OpCache_tr_prog2.end()) { - _trid_3 = state._tr_prog2(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_prog2_lock(_ProjectionRead__tr_prog2_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_prog2_lock(_ProjectionRead__tr_prog2_mutex); + auto _obj__trid_3_ptr = _OpCache_tr_prog2.find(read__tr_prog2_state); + if(_obj__trid_3_ptr == _OpCache_tr_prog2.end()) { + _trid_3 = state._tr_prog2(); _OpCache_tr_prog2.insert({read__tr_prog2_state, _trid_3}); + } else { + _trid_3 = _obj__trid_3_ptr->second; } - } else { - _trid_3 = _obj__trid_3_ptr->second; } if(_trid_3) { sort_m2_data1000_MC copiedState = state._copy(); sort_m2_data1000_MC::_ProjectionRead_prog2 readState = state._projected_state_for_prog2(); - - auto _OpCache_with_parameter_prog2_ptr = _OpCache_prog2.find(_trid_3); - if(_OpCache_with_parameter_prog2_ptr == _OpCache_prog2.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_prog2_lock(_ProjectionRead_prog2_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_prog2_lock(_ProjectionRead_prog2_mutex); + auto _OpCache_with_parameter_prog2_ptr = _OpCache_prog2.find(_trid_3); + if(_OpCache_with_parameter_prog2_ptr == _OpCache_prog2.end()) { copiedState.prog2(); sort_m2_data1000_MC::_ProjectionWrite_prog2 writeState = copiedState._update_for_prog2(); std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_prog2, sort_m2_data1000_MC::_ProjectionWrite_prog2, sort_m2_data1000_MC::_ProjectionRead_prog2::Hash, sort_m2_data1000_MC::_ProjectionRead_prog2::HashEqual> _OpCache_with_parameter_prog2 = std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_prog2, sort_m2_data1000_MC::_ProjectionWrite_prog2, sort_m2_data1000_MC::_ProjectionRead_prog2::Hash, sort_m2_data1000_MC::_ProjectionRead_prog2::HashEqual>(); _OpCache_with_parameter_prog2.insert({readState, writeState}); _OpCache_prog2.insert({_trid_3, _OpCache_with_parameter_prog2}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_prog2_lock(_ProjectionRead_prog2_mutex); + } else { std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_prog2, sort_m2_data1000_MC::_ProjectionWrite_prog2, sort_m2_data1000_MC::_ProjectionRead_prog2::Hash, sort_m2_data1000_MC::_ProjectionRead_prog2::HashEqual> _OpCache_with_parameter_prog2 = _OpCache_with_parameter_prog2_ptr->second; auto writeState_ptr = _OpCache_with_parameter_prog2.find(readState); if(writeState_ptr != _OpCache_with_parameter_prog2.end()) { @@ -1789,7 +1775,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "prog2"; result.insert(copiedState); { @@ -1799,33 +1784,29 @@ class ModelChecker { } sort_m2_data1000_MC::_ProjectionRead__tr_final_evt read__tr_final_evt_state = state._projected_state_for__tr_final_evt(); bool _trid_4 = false; - auto _obj__trid_4_ptr = _OpCache_tr_final_evt.find(read__tr_final_evt_state); - if(_obj__trid_4_ptr == _OpCache_tr_final_evt.end()) { - _trid_4 = state._tr_final_evt(); - { - std::unique_lock<std::mutex> _ProjectionRead__tr_final_evt_lock(_ProjectionRead__tr_final_evt_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead__tr_final_evt_lock(_ProjectionRead__tr_final_evt_mutex); + auto _obj__trid_4_ptr = _OpCache_tr_final_evt.find(read__tr_final_evt_state); + if(_obj__trid_4_ptr == _OpCache_tr_final_evt.end()) { + _trid_4 = state._tr_final_evt(); _OpCache_tr_final_evt.insert({read__tr_final_evt_state, _trid_4}); + } else { + _trid_4 = _obj__trid_4_ptr->second; } - } else { - _trid_4 = _obj__trid_4_ptr->second; } if(_trid_4) { sort_m2_data1000_MC copiedState = state._copy(); sort_m2_data1000_MC::_ProjectionRead_final_evt readState = state._projected_state_for_final_evt(); - - auto _OpCache_with_parameter_final_evt_ptr = _OpCache_final_evt.find(_trid_4); - if(_OpCache_with_parameter_final_evt_ptr == _OpCache_final_evt.end()) { - { - std::unique_lock<std::mutex> _ProjectionRead_final_evt_lock(_ProjectionRead_final_evt_mutex); + { + std::unique_lock<std::mutex> _ProjectionRead_final_evt_lock(_ProjectionRead_final_evt_mutex); + auto _OpCache_with_parameter_final_evt_ptr = _OpCache_final_evt.find(_trid_4); + if(_OpCache_with_parameter_final_evt_ptr == _OpCache_final_evt.end()) { copiedState.final_evt(); sort_m2_data1000_MC::_ProjectionWrite_final_evt writeState = copiedState._update_for_final_evt(); std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_final_evt, sort_m2_data1000_MC::_ProjectionWrite_final_evt, sort_m2_data1000_MC::_ProjectionRead_final_evt::Hash, sort_m2_data1000_MC::_ProjectionRead_final_evt::HashEqual> _OpCache_with_parameter_final_evt = std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_final_evt, sort_m2_data1000_MC::_ProjectionWrite_final_evt, sort_m2_data1000_MC::_ProjectionRead_final_evt::Hash, sort_m2_data1000_MC::_ProjectionRead_final_evt::HashEqual>(); _OpCache_with_parameter_final_evt.insert({readState, writeState}); _OpCache_final_evt.insert({_trid_4, _OpCache_with_parameter_final_evt}); - } - } else { - { - std::unique_lock<std::mutex> _ProjectionRead_final_evt_lock(_ProjectionRead_final_evt_mutex); + } else { std::unordered_map<sort_m2_data1000_MC::_ProjectionRead_final_evt, sort_m2_data1000_MC::_ProjectionWrite_final_evt, sort_m2_data1000_MC::_ProjectionRead_final_evt::Hash, sort_m2_data1000_MC::_ProjectionRead_final_evt::HashEqual> _OpCache_with_parameter_final_evt = _OpCache_with_parameter_final_evt_ptr->second; auto writeState_ptr = _OpCache_with_parameter_final_evt.find(readState); if(writeState_ptr != _OpCache_with_parameter_final_evt.end()) { @@ -1838,7 +1819,6 @@ class ModelChecker { } } } - copiedState.stateAccessedVia = "final_evt"; result.insert(copiedState); { -- GitLab