1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker #pragma once 6*89c4ff92SAndroid Build Coastguard Worker 7*89c4ff92SAndroid Build Coastguard Worker #include <sstream> 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker namespace armnn 10*89c4ff92SAndroid Build Coastguard Worker { 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Worker class PredicateResult 13*89c4ff92SAndroid Build Coastguard Worker { 14*89c4ff92SAndroid Build Coastguard Worker public: PredicateResult(bool result)15*89c4ff92SAndroid Build Coastguard Worker explicit PredicateResult(bool result) 16*89c4ff92SAndroid Build Coastguard Worker : m_Result(result) 17*89c4ff92SAndroid Build Coastguard Worker {} 18*89c4ff92SAndroid Build Coastguard Worker PredicateResult(const PredicateResult & predicateResult)19*89c4ff92SAndroid Build Coastguard Worker PredicateResult(const PredicateResult& predicateResult) 20*89c4ff92SAndroid Build Coastguard Worker : m_Result(predicateResult.m_Result) 21*89c4ff92SAndroid Build Coastguard Worker , m_Message(predicateResult.m_Message.str()) 22*89c4ff92SAndroid Build Coastguard Worker {} 23*89c4ff92SAndroid Build Coastguard Worker SetResult(bool newResult)24*89c4ff92SAndroid Build Coastguard Worker void SetResult(bool newResult) 25*89c4ff92SAndroid Build Coastguard Worker { 26*89c4ff92SAndroid Build Coastguard Worker m_Result = newResult; 27*89c4ff92SAndroid Build Coastguard Worker } 28*89c4ff92SAndroid Build Coastguard Worker Message()29*89c4ff92SAndroid Build Coastguard Worker std::stringstream& Message() 30*89c4ff92SAndroid Build Coastguard Worker { 31*89c4ff92SAndroid Build Coastguard Worker return m_Message; 32*89c4ff92SAndroid Build Coastguard Worker } 33*89c4ff92SAndroid Build Coastguard Worker operator !() const34*89c4ff92SAndroid Build Coastguard Worker bool operator!() const 35*89c4ff92SAndroid Build Coastguard Worker { 36*89c4ff92SAndroid Build Coastguard Worker return !m_Result; 37*89c4ff92SAndroid Build Coastguard Worker } 38*89c4ff92SAndroid Build Coastguard Worker operator =(PredicateResult otherPredicateResult)39*89c4ff92SAndroid Build Coastguard Worker void operator=(PredicateResult otherPredicateResult) 40*89c4ff92SAndroid Build Coastguard Worker { 41*89c4ff92SAndroid Build Coastguard Worker otherPredicateResult.m_Result = m_Result; 42*89c4ff92SAndroid Build Coastguard Worker } 43*89c4ff92SAndroid Build Coastguard Worker 44*89c4ff92SAndroid Build Coastguard Worker bool m_Result; 45*89c4ff92SAndroid Build Coastguard Worker std::stringstream m_Message; 46*89c4ff92SAndroid Build Coastguard Worker }; 47*89c4ff92SAndroid Build Coastguard Worker 48*89c4ff92SAndroid Build Coastguard Worker } // namespace armnn