1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2022 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 6*89c4ff92SAndroid Build Coastguard Worker #pragma once 7*89c4ff92SAndroid Build Coastguard Worker #include <vector> 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker /// IExecutor executes a network 10*89c4ff92SAndroid Build Coastguard Worker class IExecutor 11*89c4ff92SAndroid Build Coastguard Worker { 12*89c4ff92SAndroid Build Coastguard Worker public: 13*89c4ff92SAndroid Build Coastguard Worker /// Execute the given network 14*89c4ff92SAndroid Build Coastguard Worker /// @return std::vector<const void*> A type erased vector of the outputs, 15*89c4ff92SAndroid Build Coastguard Worker /// that can be compared with the output of another IExecutor 16*89c4ff92SAndroid Build Coastguard Worker virtual std::vector<const void*> Execute() = 0; 17*89c4ff92SAndroid Build Coastguard Worker /// Print available information about the network 18*89c4ff92SAndroid Build Coastguard Worker virtual void PrintNetworkInfo() = 0; 19*89c4ff92SAndroid Build Coastguard Worker /// Compare the output with the result of another IExecutor 20*89c4ff92SAndroid Build Coastguard Worker virtual void CompareAndPrintResult(std::vector<const void*> otherOutput) = 0; ~IExecutor()21*89c4ff92SAndroid Build Coastguard Worker virtual ~IExecutor(){}; 22*89c4ff92SAndroid Build Coastguard Worker bool m_constructionFailed = false; 23*89c4ff92SAndroid Build Coastguard Worker }; 24