aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/LayerVisitorBase.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/LayerVisitorBase.hpp')
-rw-r--r--src/armnn/LayerVisitorBase.hpp112
1 files changed, 61 insertions, 51 deletions
diff --git a/src/armnn/LayerVisitorBase.hpp b/src/armnn/LayerVisitorBase.hpp
index 037a5a75ac..3b6a2ff578 100644
--- a/src/armnn/LayerVisitorBase.hpp
+++ b/src/armnn/LayerVisitorBase.hpp
@@ -10,7 +10,18 @@
namespace armnn
{
+struct VisitorThrowingPolicy
+{
+ static void Apply() { throw UnimplementedException(); }
+};
+
+struct VisitorNoThrowPolicy
+{
+ static void Apply() {}
+};
+
// Visitor base class with empty implementations.
+template<typename DefaultPolicy>
class LayerVisitorBase : public ILayerVisitor
{
protected:
@@ -20,82 +31,82 @@ protected:
public:
virtual void VisitInputLayer(const IConnectableLayer*,
LayerBindingId,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitConvolution2dLayer(const IConnectableLayer*,
const Convolution2dDescriptor&,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitConvolution2dLayer(const IConnectableLayer*,
const Convolution2dDescriptor&,
const ConstTensor&,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitDepthwiseConvolution2dLayer(const IConnectableLayer*,
const DepthwiseConvolution2dDescriptor&,
const ConstTensor& ,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitDepthwiseConvolution2dLayer(const IConnectableLayer*,
const DepthwiseConvolution2dDescriptor&,
const ConstTensor&,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitDetectionPostProcessLayer(const IConnectableLayer*,
const DetectionPostProcessDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitFullyConnectedLayer(const IConnectableLayer*,
const FullyConnectedDescriptor&,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitFullyConnectedLayer(const IConnectableLayer*,
const FullyConnectedDescriptor&,
const ConstTensor&,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitPermuteLayer(const IConnectableLayer*,
const PermuteDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitBatchToSpaceNdLayer(const IConnectableLayer*,
const BatchToSpaceNdDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitPooling2dLayer(const IConnectableLayer*,
const Pooling2dDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitActivationLayer(const IConnectableLayer*,
const ActivationDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitNormalizationLayer(const IConnectableLayer*,
const NormalizationDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitSoftmaxLayer(const IConnectableLayer*,
const SoftmaxDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitSplitterLayer(const IConnectableLayer*,
const ViewsDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitMergerLayer(const IConnectableLayer*,
const OriginsDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitAdditionLayer(const IConnectableLayer*,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitMultiplicationLayer(const IConnectableLayer*,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitBatchNormalizationLayer(const IConnectableLayer*,
const BatchNormalizationDescriptor&,
@@ -103,76 +114,75 @@ public:
const ConstTensor&,
const ConstTensor&,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitResizeBilinearLayer(const IConnectableLayer*,
const ResizeBilinearDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitL2NormalizationLayer(const IConnectableLayer*,
const L2NormalizationDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitConstantLayer(const IConnectableLayer*,
const ConstTensor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitReshapeLayer(const IConnectableLayer*,
const ReshapeDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitSpaceToBatchNdLayer(const IConnectableLayer*,
const SpaceToBatchNdDescriptor&,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitFloorLayer(const IConnectableLayer*,
- const char*) {}
+ const char*) { DefaultPolicy::Apply(); }
virtual void VisitOutputLayer(const IConnectableLayer*,
LayerBindingId id,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitLstmLayer(const IConnectableLayer*,
const LstmDescriptor&,
const LstmInputParams&,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitDivisionLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitSubtractionLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitMaximumLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitMeanLayer(const IConnectableLayer*,
const MeanDescriptor&,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitPadLayer(const IConnectableLayer*,
const PadDescriptor&,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitStridedSliceLayer(const IConnectableLayer*,
const StridedSliceDescriptor&,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitMinimumLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitGreaterLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitEqualLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitRsqrtLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
+
virtual void VisitGatherLayer(const IConnectableLayer*,
- const char*) {}
-
+ const char*) { DefaultPolicy::Apply(); }
};
} //namespace armnn