ArmNN
 21.11
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  void Serialize(const armnn::INetwork& inNetwork);
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  bool SaveSerializedToStream(std::ostream& stream);
32 
33 private:
34  ISerializer();
35  ~ISerializer();
36 
37  class SerializerImpl;
38  std::unique_ptr<SerializerImpl> pSerializerImpl;
39 };
40 
41 } //namespace armnnSerializer
static ISerializer * CreateRaw()
Definition: Serializer.cpp:30
Main network class which provides the interface for building up a neural network. ...
Definition: INetwork.hpp:202
bool SaveSerializedToStream(std::ostream &stream)
Serializes the SerializedGraph to the stream.
Definition: Serializer.cpp:50
void Serialize(const armnn::INetwork &inNetwork)
Serializes the network to ArmNN SerializedGraph.
Definition: Serializer.cpp:45
std::unique_ptr< ISerializer, void(*)(ISerializer *serializer)> ISerializerPtr
Definition: ISerializer.hpp:15
static ISerializerPtr Create()
Definition: Serializer.cpp:35
static void Destroy(ISerializer *serializer)
Definition: Serializer.cpp:40