xref: /aosp_15_r20/external/armnn/tests/ExecuteNetwork/IExecutor.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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