aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKevin May <kevin.may@arm.com>2021-01-29 14:24:57 +0000
committerKevin May <kevin.may@arm.com>2021-02-04 11:31:51 +0000
commitef33cb192eef332fb3a26be742b341288421e5bc (patch)
tree1497367ada6382887baf698b3b8a791abca05d9d /include
parent7d96b16acfdbdcef6739d59ba067a37c062aa03f (diff)
downloadarmnn-ef33cb192eef332fb3a26be742b341288421e5bc.tar.gz
IVGCVSW-5592 Implement Pimpl Idiom for Caffe and Onnx Parsers
Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I760dc4f33c0f87113cda2fa924da70f2e8c19025
Diffstat (limited to 'include')
-rw-r--r--include/armnnCaffeParser/ICaffeParser.hpp27
-rw-r--r--include/armnnOnnxParser/IOnnxParser.hpp18
2 files changed, 28 insertions, 17 deletions
diff --git a/include/armnnCaffeParser/ICaffeParser.hpp b/include/armnnCaffeParser/ICaffeParser.hpp
index a1ba59fbc6..0e31ad4461 100644
--- a/include/armnnCaffeParser/ICaffeParser.hpp
+++ b/include/armnnCaffeParser/ICaffeParser.hpp
@@ -29,31 +29,38 @@ public:
static void Destroy(ICaffeParser* parser);
/// Create the network from a protobuf text file on the disk.
- virtual armnn::INetworkPtr CreateNetworkFromTextFile(
+ armnn::INetworkPtr CreateNetworkFromTextFile(
const char* graphFile,
const std::map<std::string, armnn::TensorShape>& inputShapes,
- const std::vector<std::string>& requestedOutputs) = 0;
+ const std::vector<std::string>& requestedOutputs);
/// Create the network from a protobuf binary file on the disk.
- virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(
+ armnn::INetworkPtr CreateNetworkFromBinaryFile(
const char* graphFile,
const std::map<std::string, armnn::TensorShape>& inputShapes,
- const std::vector<std::string>& requestedOutputs) = 0;
+ const std::vector<std::string>& requestedOutputs);
/// Create the network directly from protobuf text in a string. Useful for debugging/testin.g
- virtual armnn::INetworkPtr CreateNetworkFromString(
+ armnn::INetworkPtr CreateNetworkFromString(
const char* protoText,
const std::map<std::string, armnn::TensorShape>& inputShapes,
- const std::vector<std::string>& requestedOutputs) = 0;
+ const std::vector<std::string>& requestedOutputs);
/// Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name.
- virtual BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const = 0;
+ BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const;
/// Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name.
- virtual BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const = 0;
+ BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const;
-protected:
- virtual ~ICaffeParser() {};
+private:
+ friend class CaffeParser;
+ friend class RecordByRecordCaffeParser;
+
+ ICaffeParser();
+ ~ICaffeParser();
+
+ class CaffeParserImpl;
+ std::unique_ptr<CaffeParserImpl> pCaffeParserImpl;
};
} \ No newline at end of file
diff --git a/include/armnnOnnxParser/IOnnxParser.hpp b/include/armnnOnnxParser/IOnnxParser.hpp
index d6b9399dd5..f9d692738d 100644
--- a/include/armnnOnnxParser/IOnnxParser.hpp
+++ b/include/armnnOnnxParser/IOnnxParser.hpp
@@ -16,6 +16,7 @@ namespace armnnOnnxParser
using BindingPointInfo = armnn::BindingPointInfo;
+class OnnxParserImpl;
class IOnnxParser;
using IOnnxParserPtr = std::unique_ptr<IOnnxParser, void(*)(IOnnxParser* parser)>;
@@ -27,22 +28,25 @@ public:
static void Destroy(IOnnxParser* parser);
/// Create the network from a protobuf binary file on disk
- virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile) = 0;
+ armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile);
/// Create the network from a protobuf text file on disk
- virtual armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile) = 0;
+ armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile);
/// Create the network directly from protobuf text in a string. Useful for debugging/testing
- virtual armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText) = 0;
+ armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText);
/// Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name
- virtual BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const = 0;
+ BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const;
/// Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name
- virtual BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const = 0;
+ BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const;
- protected:
- virtual ~IOnnxParser() {};
+private:
+ IOnnxParser();
+ ~IOnnxParser();
+
+ std::unique_ptr<OnnxParserImpl> pOnnxParserImpl;
};
}