From cb1dcb5ee28994a2cd691ad696a5ba4c3c3802ea Mon Sep 17 00:00:00 2001 From: Renaud Guezennec Date: Wed, 23 Oct 2024 15:42:08 +0200 Subject: Add execute node. --- src/libparser/node/executionnode.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/libparser/node/executionnode.cpp') diff --git a/src/libparser/node/executionnode.cpp b/src/libparser/node/executionnode.cpp index 4545934..096c8fe 100644 --- a/src/libparser/node/executionnode.cpp +++ b/src/libparser/node/executionnode.cpp @@ -40,6 +40,17 @@ ExecutionNode* ExecutionNode::getNextNode() { return m_nextNode; } + +void ExecutionNode::execute(ExecutionNode* previous) +{ + auto errorCount= m_errors.count(); + + run(previous); + + if(m_nextNode && errorCount == m_errors.count()) + m_nextNode->execute(this); +} + QMap ExecutionNode::getExecutionErrorMap() { if(nullptr != m_nextNode) @@ -99,3 +110,11 @@ qint64 ExecutionNode::getScalarResult() return 0; return m_result->getResult(Dice::RESULT_TYPE::SCALAR).toInt(); } + +bool ExecutionNode::isValid(bool condition, Dice::ERROR_CODE code, const QString& errorTxt, bool error) +{ + if(condition) + error ? m_errors.insert(code, errorTxt) : m_warnings.insert(code, errorTxt); + + return condition; +} -- cgit v1.2.3-70-g09d2