diff options
author | Kevin May <kevin.may@arm.com> | 2021-01-29 14:24:57 +0000 |
---|---|---|
committer | Kevin May <kevin.may@arm.com> | 2021-02-04 11:31:51 +0000 |
commit | ef33cb192eef332fb3a26be742b341288421e5bc (patch) | |
tree | 1497367ada6382887baf698b3b8a791abca05d9d /src/armnnCaffeParser/CaffeParser.hpp | |
parent | 7d96b16acfdbdcef6739d59ba067a37c062aa03f (diff) | |
download | armnn-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 'src/armnnCaffeParser/CaffeParser.hpp')
-rw-r--r-- | src/armnnCaffeParser/CaffeParser.hpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/armnnCaffeParser/CaffeParser.hpp b/src/armnnCaffeParser/CaffeParser.hpp index 98eeffc6a1..f369d5f2f9 100644 --- a/src/armnnCaffeParser/CaffeParser.hpp +++ b/src/armnnCaffeParser/CaffeParser.hpp @@ -23,32 +23,39 @@ class NetParameter; namespace armnnCaffeParser { -class CaffeParserBase: public ICaffeParser +class ICaffeParser::CaffeParserImpl { public: // Because we haven't looked at reducing the memory usage when loading from Text/String // have to retain these functions here for the moment. /// Create the network from a protobuf text file on 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) override; + const std::vector<std::string>& requestedOutputs); + + /// Create the network from a protobuf binary file on the disk. + virtual armnn::INetworkPtr CreateNetworkFromBinaryFile( + const char* graphFile, + const std::map<std::string, armnn::TensorShape>& inputShapes, + const std::vector<std::string>& requestedOutputs) = 0; /// Creates the network directly from protobuf text in a string. Useful for debugging/testing. - virtual armnn::INetworkPtr CreateNetworkFromString( + armnn::INetworkPtr CreateNetworkFromString( const char* protoText, const std::map<std::string, armnn::TensorShape>& inputShapes, - const std::vector<std::string>& requestedOutputs) override; + const std::vector<std::string>& requestedOutputs); /// Retrieves 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 override; + BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const; /// Retrieves 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 override; + BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const; - CaffeParserBase(); + CaffeParserImpl(); + virtual ~CaffeParserImpl() = default; protected: /// Adds an armnn layer to m_Network given a Caffe LayerParameter of the correct type @@ -118,7 +125,7 @@ protected: void Cleanup(); - using OperationParsingFunction = void(CaffeParserBase::*)(const caffe::LayerParameter& layerParam); + using OperationParsingFunction = void(CaffeParserImpl::*)(const caffe::LayerParameter& layerParam); /// Maps Caffe layer names to parsing member functions. static const std::map<std::string, OperationParsingFunction> ms_CaffeLayerNameToParsingFunctions; @@ -162,7 +169,7 @@ protected: }; -class CaffeParser : public CaffeParserBase +class CaffeParser : public ICaffeParser::CaffeParserImpl { public: |