aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/ExecutionFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/ExecutionFrame.cpp')
-rw-r--r--src/armnn/ExecutionFrame.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/armnn/ExecutionFrame.cpp b/src/armnn/ExecutionFrame.cpp
new file mode 100644
index 0000000000..4d952b22d9
--- /dev/null
+++ b/src/armnn/ExecutionFrame.cpp
@@ -0,0 +1,49 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "ExecutionFrame.hpp"
+
+using namespace std;
+
+namespace armnn
+{
+ExecutionFrame::ExecutionFrame() {}
+
+IExecutionFrame* ExecutionFrame::ExecuteWorkloads(IExecutionFrame* previousFrame)
+{
+ for (auto& workload: m_WorkloadQueue)
+ {
+ workload->Execute();
+ }
+ return m_NextExecutionFrame;
+}
+
+void ExecutionFrame::PostAllocationConfigure()
+{
+ for (auto&& workloadPtr: m_WorkloadQueue)
+ {
+ workloadPtr.get()->PostAllocationConfigure();
+ }
+}
+
+void ExecutionFrame::RegisterDebugCallback(const DebugCallbackFunction& func)
+{
+ for (auto&& workloadPtr: m_WorkloadQueue)
+ {
+ workloadPtr.get()->RegisterDebugCallback(func);
+ }
+}
+
+void ExecutionFrame::AddWorkloadToQueue(std::unique_ptr<IWorkload> workload)
+{
+ m_WorkloadQueue.push_back(move(workload));
+}
+
+void ExecutionFrame::SetNextExecutionFrame(IExecutionFrame* nextExecutionFrame)
+{
+ m_NextExecutionFrame = nextExecutionFrame;
+}
+
+} \ No newline at end of file