diff options
author | Kevin May <kevin.may@arm.com> | 2021-02-03 17:38:41 +0000 |
---|---|---|
committer | Francis Murtagh <francis.murtagh@arm.com> | 2021-02-04 11:23:41 +0000 |
commit | 7d96b16acfdbdcef6739d59ba067a37c062aa03f (patch) | |
tree | bb0a93f9030e26568d6d7c44776993e433996c31 /src/armnnTfParser/TfParser.hpp | |
parent | d0bb8eafef2a93356e435ccc4029d487a2cde9e4 (diff) | |
download | armnn-7d96b16acfdbdcef6739d59ba067a37c062aa03f.tar.gz |
IVGCVSW-5592 Implement Pimpl Idiom for Tf and TfLite Parsers
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: I4a82aca4a2c47b3c598b91bc0075c09397be728a
Diffstat (limited to 'src/armnnTfParser/TfParser.hpp')
-rw-r--r-- | src/armnnTfParser/TfParser.hpp | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/src/armnnTfParser/TfParser.hpp b/src/armnnTfParser/TfParser.hpp index 94499ea52d..5c04cceb82 100644 --- a/src/armnnTfParser/TfParser.hpp +++ b/src/armnnTfParser/TfParser.hpp @@ -61,41 +61,38 @@ using OutputOfParsedTfOperation = WithOutputTensorIndex<ParsedTfOperation *>; using OutputOfConstNodeDef = WithOutputTensorIndex<const tensorflow::NodeDef*>; using OutputId = WithOutputTensorIndex<std::string>; -class TfParser : public ITfParser +struct ITfParser::TfParserImpl { public: /// Creates 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) override; + const std::vector<std::string>& requestedOutputs); /// Creates 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) override; + const std::vector<std::string>& requestedOutputs); /// 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; -public: - TfParser(); + TfParserImpl(); + ~TfParserImpl() = default; -private: - template <typename T> - friend class ParsedConstTfOperation; - friend class ParsedMatMulTfOperation; - friend class ParsedMulTfOperation; + TfParserImpl(const TfParserImpl&) = delete; + TfParserImpl& operator=(const TfParserImpl&) = delete; /// Parses a GraphDef loaded into memory from one of the other CreateNetwork*. armnn::INetworkPtr CreateNetworkFromGraphDef(const tensorflow::GraphDef& graphDef, @@ -177,7 +174,6 @@ private: ParsedTfOperationPtr AddRealDivLayer(const tensorflow::NodeDef& nodeDef); ParsedTfOperationPtr AddMaximumLayer(const tensorflow::NodeDef& nodeDef); -private: armnn::IConnectableLayer* AddMultiplicationLayer(const tensorflow::NodeDef& nodeDef); armnn::IConnectableLayer* AddFullyConnectedLayer(const tensorflow::NodeDef& matMulNodeDef, @@ -251,8 +247,8 @@ private: /// The network we're building. Gets cleared after it is passed to the user. armnn::INetworkPtr m_Network; - using OperationParsingFunction = ParsedTfOperationPtr(TfParser::*)(const tensorflow::NodeDef& nodeDef, - const tensorflow::GraphDef& graphDef); + using OperationParsingFunction = ParsedTfOperationPtr(TfParserImpl::*)(const tensorflow::NodeDef& nodeDef, + const tensorflow::GraphDef& graphDef); /// Map of TensorFlow operation names to parsing member functions. static const std::map<std::string, OperationParsingFunction> ms_OperationNameToParsingFunctions; |