aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/SubgraphViewSelector.hpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2019-04-26 13:05:17 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-04-30 09:49:43 +0100
commitff05cc50880032614675e9422ba829785f61ba14 (patch)
treebe763d0049af9a8c8a9873a79f872b33ce30f0e4 /src/armnn/SubgraphViewSelector.hpp
parent6870b9892dfa72af630cb91ad3e6c3d868146a49 (diff)
downloadarmnn-ff05cc50880032614675e9422ba829785f61ba14.tar.gz
IVGCVSW-2405 Rename SubGraph to SubgraphView
Change-Id: Ie50aeccf053c20c3a01a75042bbc3acd824375af Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
Diffstat (limited to 'src/armnn/SubgraphViewSelector.hpp')
-rw-r--r--src/armnn/SubgraphViewSelector.hpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/armnn/SubgraphViewSelector.hpp b/src/armnn/SubgraphViewSelector.hpp
new file mode 100644
index 0000000000..9d881faa7c
--- /dev/null
+++ b/src/armnn/SubgraphViewSelector.hpp
@@ -0,0 +1,38 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "SubgraphView.hpp"
+#include <functional>
+#include <memory>
+
+namespace armnn
+{
+
+class Layer;
+class Graph;
+
+class SubgraphViewSelector final
+{
+public:
+ using SubgraphViewPtr = std::unique_ptr<SubgraphView>;
+ using Subgraphs = std::vector<SubgraphViewPtr>;
+ using LayerSelectorFunction = std::function<bool(const Layer&)>;
+
+ /// Selects subgraphs from a graph based on the selector function and the algorithm.
+ /// Since the Subgraphs object returns modifiable pointers to the input and output slots of the graph:
+ /// 1) the graph/sub-graph cannot be const
+ /// 2) the caller needs to make sure that the Subgraphs lifetime is shorter than the parent graph's
+ static Subgraphs SelectSubgraphs(Graph& graph, const LayerSelectorFunction& selector);
+ static Subgraphs SelectSubgraphs(SubgraphView& subgraph, const LayerSelectorFunction& selector);
+
+private:
+ // this is a utility class, don't construct or copy
+ SubgraphViewSelector() = delete;
+ SubgraphViewSelector(const SubgraphViewSelector&) = delete;
+ SubgraphViewSelector & operator=(const SubgraphViewSelector&) = delete;
+};
+
+} // namespace armnn