ArmNN  NotReleased
IDeserializer.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include "armnn/Types.hpp"
8 #include "armnn/NetworkFwd.hpp"
9 #include "armnn/Tensor.hpp"
10 #include "armnn/INetwork.hpp"
11 
12 #include <memory>
13 #include <map>
14 #include <vector>
15 
17 {
19 {
22 };
23 
24 class IDeserializer;
25 using IDeserializerPtr = std::unique_ptr<IDeserializer, void(*)(IDeserializer* parser)>;
26 
28 {
29 public:
30  static IDeserializer* CreateRaw();
31  static IDeserializerPtr Create();
32  static void Destroy(IDeserializer* parser);
33 
35  virtual armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent) = 0;
36 
38  virtual armnn::INetworkPtr CreateNetworkFromBinary(std::istream& binaryContent) = 0;
39 
42  virtual BindingPointInfo GetNetworkInputBindingInfo(unsigned int layerId,
43  const std::string& name) const = 0;
44 
47  virtual BindingPointInfo GetNetworkOutputBindingInfo(unsigned int layerId,
48  const std::string& name) const = 0;
49 
50 protected:
51  virtual ~IDeserializer() {};
52 
53 };
54 } //namespace armnnDeserializer
std::unique_ptr< IDeserializer, void(*)(IDeserializer *parser)> IDeserializerPtr
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:85
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
Definition: Types.hpp:168