diff options
author | Jan Eilers <jan.eilers@arm.com> | 2021-09-24 15:45:46 +0100 |
---|---|---|
committer | Jan Eilers <jan.eilers@arm.com> | 2021-10-02 16:27:39 +0100 |
commit | 1b2654fb799c3d25ffcef4d31b5d026d359e2f8f (patch) | |
tree | 0397fdf24f286715e26a0e63bddaa0502f64caf7 /include/armnn/StrategyBase.hpp | |
parent | b63a31170aee1d28267d83a4bc67b57708fb6b05 (diff) | |
download | armnn-1b2654fb799c3d25ffcef4d31b5d026d359e2f8f.tar.gz |
IVGCVSW-5985 Remove deprecated code
* Removes deprecated AddLayer, IsLayerSupported functions
* Marks the whole LayerVisitor class as deprecated not just the
constructor. This required to wrap all Accept functions in a
no deprecate macro because the LayerVisitor is used as a parameter in
there
* Removes usage of deprecated LayerVisitor and replaces it
with ExecuteStrategy. This required a few structural changes
in the unit tests
* Adds a default implementation for IStrategy called StrategyBase
* Changes pyarmnn to use non deprecated constructor for
INetworkProperties and adds related unit test
* Marks usage of deprecated code in pyarmnn as deprecated. This
required to extend INetworkProperties to allow backwards compatibility
* Removes deprecated functions from CpuAcc, GpuAcc and Ref backends
Note: This patch breaks compatibility with backends that are not
updated in this patch
!android-nn-driver:6325
Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: Id13b6f37a74d26eadeda2da1dc92915e725ed5a5
Diffstat (limited to 'include/armnn/StrategyBase.hpp')
-rw-r--r-- | include/armnn/StrategyBase.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/armnn/StrategyBase.hpp b/include/armnn/StrategyBase.hpp new file mode 100644 index 0000000000..78f393f44f --- /dev/null +++ b/include/armnn/StrategyBase.hpp @@ -0,0 +1,55 @@ +// +// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + + +#include <armnn/INetwork.hpp> +#include <armnn/IStrategy.hpp> +#include <armnn/utility/IgnoreUnused.hpp> + +namespace armnn +{ + +struct ThrowingStrategy +{ + void Apply(const std::string& errorMessage = "") { throw UnimplementedException(errorMessage); }; +}; + +struct NoThrowStrategy +{ + void Apply(const std::string&) {}; +}; + +/// Strategy base class with empty implementations. +template <typename DefaultStrategy> +class StrategyBase : public IStrategy +{ +protected: + virtual ~StrategyBase() {}; + +public: + virtual void ExecuteStrategy(const armnn::IConnectableLayer* layer, + const armnn::BaseDescriptor& descriptor, + const std::vector<armnn::ConstTensor>& constants, + const char* name, + const armnn::LayerBindingId id = 0) override + { + armnn::IgnoreUnused(descriptor, constants, id, name); + switch (layer->GetType()) + { + default: + { + m_DefaultStrategy.Apply(GetLayerTypeAsCString(layer->GetType())); + } + } + } + +protected: + DefaultStrategy m_DefaultStrategy; + +}; + + +} // namespace armnn |