2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
7 #include "armnn/Types.hpp"
8 #include "armnn/NetworkFwd.hpp"
9 #include "armnn/Tensor.hpp"
10 #include "armnn/INetwork.hpp"
16 namespace armnnDeserializer
18 struct BindingPointInfo
20 armnn::LayerBindingId m_BindingId;
21 armnn::TensorInfo m_TensorInfo;
25 using IDeserializerPtr = std::unique_ptr<IDeserializer, void(*)(IDeserializer* parser)>;
30 static IDeserializer* CreateRaw();
31 static IDeserializerPtr Create();
32 static void Destroy(IDeserializer* parser);
34 /// Create an input network from binary file contents
35 virtual armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent) = 0;
37 /// Create an input network from a binary input stream
38 virtual armnn::INetworkPtr CreateNetworkFromBinary(std::istream& binaryContent) = 0;
40 /// Retrieve binding info (layer id and tensor info) for the network input identified by
41 /// the given layer name and layers id
42 virtual BindingPointInfo GetNetworkInputBindingInfo(unsigned int layerId,
43 const std::string& name) const = 0;
45 /// Retrieve binding info (layer id and tensor info) for the network output identified by
46 /// the given layer name and layers id
47 virtual BindingPointInfo GetNetworkOutputBindingInfo(unsigned int layerId,
48 const std::string& name) const = 0;
51 virtual ~IDeserializer() {};
54 } //namespace armnnDeserializer