ArmNN
 20.02
ISerializer.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/INetwork.hpp"
8 #include "armnn/NetworkFwd.hpp"
9 #include "armnn/Types.hpp"
10 
11 namespace armnnSerializer
12 {
13 
14 class ISerializer;
15 using ISerializerPtr = std::unique_ptr<ISerializer, void(*)(ISerializer* serializer)>;
16 
18 {
19 public:
20  static ISerializer* CreateRaw();
21  static ISerializerPtr Create();
22  static void Destroy(ISerializer* serializer);
23 
24  /// Serializes the network to ArmNN SerializedGraph.
25  /// @param [in] inNetwork The network to be serialized.
26  virtual void Serialize(const armnn::INetwork& inNetwork) = 0;
27 
28  /// Serializes the SerializedGraph to the stream.
29  /// @param [stream] the stream to save to
30  /// @return true if graph is Serialized to the Stream, false otherwise
31  virtual bool SaveSerializedToStream(std::ostream& stream) = 0;
32 
33 protected:
34  virtual ~ISerializer() {}
35 };
36 
37 } //namespace armnnSerializer
static ISerializer * CreateRaw()
virtual void Serialize(const armnn::INetwork &inNetwork)=0
Serializes the network to ArmNN SerializedGraph.
Main network class which provides the interface for building up a neural network. ...
Definition: INetwork.hpp:105
virtual bool SaveSerializedToStream(std::ostream &stream)=0
Serializes the SerializedGraph to the stream.
std::unique_ptr< ISerializer, void(*)(ISerializer *serializer)> ISerializerPtr
Definition: ISerializer.hpp:15
static ISerializerPtr Create()
static void Destroy(ISerializer *serializer)