// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "LayerWithParameters.hpp" #include #include #include #include namespace armnn { using PreCompiledObjectDeleter = std::function; using PreCompiledObjectPtr = std::unique_ptr; class PreCompiledLayer : public LayerWithParameters { public: PreCompiledLayer(const PreCompiledDescriptor& param, const char* name); ~PreCompiledLayer(); virtual std::unique_ptr CreateWorkload(const Graph& graph, const IWorkloadFactory& factory) const override; PreCompiledLayer* Clone(Graph &graph) const override; void ValidateTensorShapesFromInputs() override; void SetPreCompiledObject(PreCompiledObjectPtr preCompiledObject); void Accept(ILayerVisitor& visitor) const override; private: PreCompiledLayer(const PreCompiledLayer& other) = delete; PreCompiledLayer& operator=(const PreCompiledLayer& other) = delete; PreCompiledObjectPtr m_PreCompiledObject; }; } // namespace armnn