• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "ExecutionFrame.hpp"
7 
8 using namespace std;
9 
10 namespace armnn
11 {
ExecutionFrame()12 ExecutionFrame::ExecutionFrame() {}
13 
ExecuteWorkloads(IExecutionFrame * previousFrame)14 IExecutionFrame* ExecutionFrame::ExecuteWorkloads(IExecutionFrame* previousFrame)
15 {
16     IgnoreUnused(previousFrame);
17     for (auto& workload: m_WorkloadQueue)
18     {
19         workload->Execute();
20     }
21     return m_NextExecutionFrame;
22 }
23 
PostAllocationConfigure()24 void ExecutionFrame::PostAllocationConfigure()
25 {
26     for (auto&& workloadPtr: m_WorkloadQueue)
27     {
28         workloadPtr.get()->PostAllocationConfigure();
29     }
30 }
31 
RegisterDebugCallback(const DebugCallbackFunction & func)32 void ExecutionFrame::RegisterDebugCallback(const DebugCallbackFunction& func)
33 {
34     for (auto&& workloadPtr: m_WorkloadQueue)
35     {
36         workloadPtr.get()->RegisterDebugCallback(func);
37     }
38 }
39 
AddWorkloadToQueue(std::unique_ptr<IWorkload> workload)40 void ExecutionFrame::AddWorkloadToQueue(std::unique_ptr<IWorkload> workload)
41 {
42     m_WorkloadQueue.push_back(move(workload));
43 }
44 
SetNextExecutionFrame(IExecutionFrame * nextExecutionFrame)45 void ExecutionFrame::SetNextExecutionFrame(IExecutionFrame* nextExecutionFrame)
46 {
47     m_NextExecutionFrame = nextExecutionFrame;
48 }
49 
50 }