IVGCVSW-3039 Unify BindingPointInfo declarations

Change-Id: I3deb2b9a37e8a8f8f2ed93c64ed0656ae911e24c
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/include/armnn/Tensor.hpp b/include/armnn/Tensor.hpp
index 160ccca..3cde1ad 100644
--- a/include/armnn/Tensor.hpp
+++ b/include/armnn/Tensor.hpp
@@ -101,6 +101,8 @@
     } m_Quantization;
 };
 
+using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
+
 template<typename MemoryType>
 class BaseTensor
 {
diff --git a/include/armnnCaffeParser/ICaffeParser.hpp b/include/armnnCaffeParser/ICaffeParser.hpp
index 9d885f5..62a7b8c 100644
--- a/include/armnnCaffeParser/ICaffeParser.hpp
+++ b/include/armnnCaffeParser/ICaffeParser.hpp
@@ -16,7 +16,7 @@
 namespace armnnCaffeParser
 {
 
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
+using BindingPointInfo = armnn::BindingPointInfo;
 
 class ICaffeParser;
 using ICaffeParserPtr = std::unique_ptr<ICaffeParser, void(*)(ICaffeParser* parser)>;
diff --git a/include/armnnOnnxParser/IOnnxParser.hpp b/include/armnnOnnxParser/IOnnxParser.hpp
index 40b47a5..d6b9399 100644
--- a/include/armnnOnnxParser/IOnnxParser.hpp
+++ b/include/armnnOnnxParser/IOnnxParser.hpp
@@ -14,7 +14,7 @@
 namespace armnnOnnxParser
 {
 
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
+using BindingPointInfo = armnn::BindingPointInfo;
 
 class IOnnxParser;
 using IOnnxParserPtr = std::unique_ptr<IOnnxParser, void(*)(IOnnxParser* parser)>;
diff --git a/include/armnnTfLiteParser/ITfLiteParser.hpp b/include/armnnTfLiteParser/ITfLiteParser.hpp
index c591876..36b9246 100644
--- a/include/armnnTfLiteParser/ITfLiteParser.hpp
+++ b/include/armnnTfLiteParser/ITfLiteParser.hpp
@@ -16,8 +16,7 @@
 namespace armnnTfLiteParser
 {
 
-// TODO: revise this: do we really need this for every parser???
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
+using BindingPointInfo = armnn::BindingPointInfo;
 
 class ITfLiteParser;
 using ITfLiteParserPtr = std::unique_ptr<ITfLiteParser, void(*)(ITfLiteParser* parser)>;
diff --git a/include/armnnTfParser/ITfParser.hpp b/include/armnnTfParser/ITfParser.hpp
index e5bbc7c..ce85ec7 100644
--- a/include/armnnTfParser/ITfParser.hpp
+++ b/include/armnnTfParser/ITfParser.hpp
@@ -16,7 +16,7 @@
 namespace armnnTfParser
 {
 
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
+using BindingPointInfo = armnn::BindingPointInfo;
 
 class ITfParser;
 using ITfParserPtr = std::unique_ptr<ITfParser, void(*)(ITfParser* parser)>;
diff --git a/src/armnnCaffeParser/CaffeParser.hpp b/src/armnnCaffeParser/CaffeParser.hpp
index 30da04e..f28b3a4 100644
--- a/src/armnnCaffeParser/CaffeParser.hpp
+++ b/src/armnnCaffeParser/CaffeParser.hpp
@@ -23,8 +23,6 @@
 namespace armnnCaffeParser
 {
 
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
-
 class CaffeParserBase:  public ICaffeParser
 {
 public:
diff --git a/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp b/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
index 038cce4..fef2409 100644
--- a/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
+++ b/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
@@ -203,8 +203,6 @@
     const std::map<std::string, std::vector<InputDataType>>& inputData,
     const std::map<std::string, std::vector<OutputDataType>>& expectedOutputData)
 {
-    using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
-
     auto ConvertBindingInfo = [](const armnnDeserializer::BindingPointInfo& bindingInfo)
         {
             return std::make_pair(bindingInfo.m_BindingId, bindingInfo.m_TensorInfo);
@@ -214,7 +212,8 @@
     armnn::InputTensors inputTensors;
     for (auto&& it : inputData)
     {
-        BindingPointInfo bindingInfo = ConvertBindingInfo(m_Parser->GetNetworkInputBindingInfo(layersId, it.first));
+        armnn::BindingPointInfo bindingInfo = ConvertBindingInfo(
+            m_Parser->GetNetworkInputBindingInfo(layersId, it.first));
         armnn::VerifyTensorInfoDataType(bindingInfo.second, ArmnnInputType);
         inputTensors.push_back({ bindingInfo.first, armnn::ConstTensor(bindingInfo.second, it.second.data()) });
     }
@@ -224,7 +223,8 @@
     armnn::OutputTensors outputTensors;
     for (auto&& it : expectedOutputData)
     {
-        BindingPointInfo bindingInfo = ConvertBindingInfo(m_Parser->GetNetworkOutputBindingInfo(layersId, it.first));
+        armnn::BindingPointInfo bindingInfo = ConvertBindingInfo(
+            m_Parser->GetNetworkOutputBindingInfo(layersId, it.first));
         armnn::VerifyTensorInfoDataType(bindingInfo.second, ArmnnOutputType);
         outputStorage.emplace(it.first, MakeTensor<OutputDataType, NumOutputDimensions>(bindingInfo.second));
         outputTensors.push_back(
@@ -236,7 +236,8 @@
     // Compare each output tensor to the expected values
     for (auto&& it : expectedOutputData)
     {
-        BindingPointInfo bindingInfo = ConvertBindingInfo(m_Parser->GetNetworkOutputBindingInfo(layersId, it.first));
+        armnn::BindingPointInfo bindingInfo = ConvertBindingInfo(
+            m_Parser->GetNetworkOutputBindingInfo(layersId, it.first));
         auto outputExpected = MakeTensor<OutputDataType, NumOutputDimensions>(bindingInfo.second, it.second);
         BOOST_TEST(CompareTensors(outputExpected, outputStorage[it.first]));
     }
diff --git a/src/armnnOnnxParser/OnnxParser.hpp b/src/armnnOnnxParser/OnnxParser.hpp
index ed7e54a..91927c2 100644
--- a/src/armnnOnnxParser/OnnxParser.hpp
+++ b/src/armnnOnnxParser/OnnxParser.hpp
@@ -19,7 +19,6 @@
 namespace armnnOnnxParser
 {
 
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
 using ModelPtr = std::unique_ptr<onnx::ModelProto>;
 
 class OnnxParser : public IOnnxParser
diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
index 69c5ec1..fdd8b82 100644
--- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
+++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
@@ -255,13 +255,11 @@
                                        const std::map<std::string, std::vector<DataType1>>& inputData,
                                        const std::map<std::string, std::vector<DataType2>>& expectedOutputData)
 {
-    using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
-
     // Setup the armnn input tensors from the given vectors.
     armnn::InputTensors inputTensors;
     for (auto&& it : inputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkInputBindingInfo(subgraphId, it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkInputBindingInfo(subgraphId, it.first);
         armnn::VerifyTensorInfoDataType(bindingInfo.second, armnnType1);
         inputTensors.push_back({ bindingInfo.first, armnn::ConstTensor(bindingInfo.second, it.second.data()) });
     }
@@ -293,7 +291,7 @@
     // Compare each output tensor to the expected values
     for (auto&& it : expectedOutputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first);
         auto outputExpected = MakeTensor<DataType2, NumOutputDimensions>(bindingInfo.second, it.second);
         BOOST_TEST(CompareTensors(outputExpected, outputStorage[it.first]));
     }
@@ -311,13 +309,11 @@
                                        const std::map<std::string, std::vector<DataType1>>& inputData,
                                        const std::map<std::string, std::vector<DataType2>>& expectedOutputData)
 {
-    using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
-
     // Setup the armnn input tensors from the given vectors.
     armnn::InputTensors inputTensors;
     for (auto&& it : inputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkInputBindingInfo(subgraphId, it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkInputBindingInfo(subgraphId, it.first);
         armnn::VerifyTensorInfoDataType(bindingInfo.second, armnnType1);
 
         inputTensors.push_back({ bindingInfo.first, armnn::ConstTensor(bindingInfo.second, it.second.data()) });
@@ -328,7 +324,7 @@
     std::map<std::string, std::vector<DataType2>> outputStorage;
     for (auto&& it : expectedOutputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first);
         armnn::VerifyTensorInfoDataType(bindingInfo.second, armnnType2);
 
         std::vector<DataType2> out(it.second.size());
diff --git a/src/armnnTfParser/TfParser.hpp b/src/armnnTfParser/TfParser.hpp
index 95ccf39..8442ca0 100644
--- a/src/armnnTfParser/TfParser.hpp
+++ b/src/armnnTfParser/TfParser.hpp
@@ -31,8 +31,6 @@
 namespace armnnTfParser
 {
 
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
-
 class ParsedTfOperation;
 using ParsedTfOperationPtr = std::unique_ptr<ParsedTfOperation>;
 
diff --git a/src/armnnUtils/ParserPrototxtFixture.hpp b/src/armnnUtils/ParserPrototxtFixture.hpp
index 7ae0742..6af989e 100644
--- a/src/armnnUtils/ParserPrototxtFixture.hpp
+++ b/src/armnnUtils/ParserPrototxtFixture.hpp
@@ -187,13 +187,11 @@
 void ParserPrototxtFixture<TParser>::RunTest(const std::map<std::string, std::vector<float>>& inputData,
     const std::map<std::string, std::vector<T>>& expectedOutputData)
 {
-    using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
-
     // Sets up the armnn input tensors from the given vectors.
     armnn::InputTensors inputTensors;
     for (auto&& it : inputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkInputBindingInfo(it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkInputBindingInfo(it.first);
         inputTensors.push_back({ bindingInfo.first, armnn::ConstTensor(bindingInfo.second, it.second.data()) });
     }
 
@@ -202,7 +200,7 @@
     armnn::OutputTensors outputTensors;
     for (auto&& it : expectedOutputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(it.first);
         outputStorage.emplace(it.first, MakeTensor<T, NumOutputDimensions>(bindingInfo.second));
         outputTensors.push_back(
             { bindingInfo.first, armnn::Tensor(bindingInfo.second, outputStorage.at(it.first).data()) });
@@ -213,7 +211,7 @@
     // Compares each output tensor to the expected values.
     for (auto&& it : expectedOutputData)
     {
-        BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(it.first);
+        armnn::BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(it.first);
         if (bindingInfo.second.GetNumElements() != it.second.size())
         {
             throw armnn::Exception(
diff --git a/tests/InferenceModel.hpp b/tests/InferenceModel.hpp
index fa71b30..d2d2ca3 100644
--- a/tests/InferenceModel.hpp
+++ b/tests/InferenceModel.hpp
@@ -74,9 +74,7 @@
 
 namespace InferenceModelInternal
 {
-// This needs to go when the armnnCaffeParser, armnnTfParser and armnnTfLiteParser
-// definitions of BindingPointInfo gets consolidated.
-using BindingPointInfo = std::pair<armnn::LayerBindingId, armnn::TensorInfo>;
+using BindingPointInfo = armnn::BindingPointInfo;
 
 using QuantizationParams = std::pair<float,int32_t>;
 
@@ -108,11 +106,10 @@
 {
 public:
     using Params = InferenceModelInternal::Params;
-    using BindingPointInfo = InferenceModelInternal::BindingPointInfo;
 
     static armnn::INetworkPtr Create(const Params& params,
-                                     std::vector<BindingPointInfo>& inputBindings,
-                                     std::vector<BindingPointInfo>& outputBindings)
+                                     std::vector<armnn::BindingPointInfo>& inputBindings,
+                                     std::vector<armnn::BindingPointInfo>& outputBindings)
     {
         const std::string& modelPath = params.m_ModelPath;
 
@@ -169,11 +166,10 @@
 public:
     using IParser          = armnnDeserializer::IDeserializer;
     using Params           = InferenceModelInternal::Params;
-    using BindingPointInfo = InferenceModelInternal::BindingPointInfo;
 
     static armnn::INetworkPtr Create(const Params& params,
-                                     std::vector<BindingPointInfo>& inputBindings,
-                                     std::vector<BindingPointInfo>& outputBindings)
+                                     std::vector<armnn::BindingPointInfo>& inputBindings,
+                                     std::vector<armnn::BindingPointInfo>& outputBindings)
     {
         auto parser(IParser::Create());
         BOOST_ASSERT(parser);
@@ -226,11 +222,10 @@
 public:
     using IParser = armnnTfLiteParser::ITfLiteParser;
     using Params = InferenceModelInternal::Params;
-    using BindingPointInfo = InferenceModelInternal::BindingPointInfo;
 
     static armnn::INetworkPtr Create(const Params& params,
-                                     std::vector<BindingPointInfo>& inputBindings,
-                                     std::vector<BindingPointInfo>& outputBindings)
+                                     std::vector<armnn::BindingPointInfo>& inputBindings,
+                                     std::vector<armnn::BindingPointInfo>& outputBindings)
     {
         const std::string& modelPath = params.m_ModelPath;
 
@@ -246,14 +241,14 @@
 
         for (const std::string& inputLayerName : params.m_InputBindings)
         {
-            BindingPointInfo inputBinding =
+            armnn::BindingPointInfo inputBinding =
                 parser->GetNetworkInputBindingInfo(params.m_SubgraphId, inputLayerName);
             inputBindings.push_back(inputBinding);
         }
 
         for (const std::string& outputLayerName : params.m_OutputBindings)
         {
-            BindingPointInfo outputBinding =
+            armnn::BindingPointInfo outputBinding =
                 parser->GetNetworkOutputBindingInfo(params.m_SubgraphId, outputLayerName);
             outputBindings.push_back(outputBinding);
         }
@@ -309,7 +304,7 @@
 
 template<typename TContainer>
 inline armnn::InputTensors MakeInputTensors(
-    const std::vector<InferenceModelInternal::BindingPointInfo>& inputBindings,
+    const std::vector<armnn::BindingPointInfo>& inputBindings,
     const std::vector<TContainer>& inputDataContainers)
 {
     armnn::InputTensors inputTensors;
@@ -323,7 +318,7 @@
 
     for (size_t i = 0; i < numInputs; i++)
     {
-        const InferenceModelInternal::BindingPointInfo& inputBinding = inputBindings[i];
+        const armnn::BindingPointInfo& inputBinding = inputBindings[i];
         const TContainer& inputData = inputDataContainers[i];
 
         boost::apply_visitor([&](auto&& value)
@@ -344,7 +339,7 @@
 
 template<typename TContainer>
 inline armnn::OutputTensors MakeOutputTensors(
-    const std::vector<InferenceModelInternal::BindingPointInfo>& outputBindings,
+    const std::vector<armnn::BindingPointInfo>& outputBindings,
     std::vector<TContainer>& outputDataContainers)
 {
     armnn::OutputTensors outputTensors;
@@ -358,7 +353,7 @@
 
     for (size_t i = 0; i < numOutputs; i++)
     {
-        const InferenceModelInternal::BindingPointInfo& outputBinding = outputBindings[i];
+        const armnn::BindingPointInfo& outputBinding = outputBindings[i];
         TContainer& outputData = outputDataContainers[i];
 
         boost::apply_visitor([&](auto&& value)
@@ -383,7 +378,6 @@
 public:
     using DataType           = TDataType;
     using Params             = InferenceModelInternal::Params;
-    using BindingPointInfo   = InferenceModelInternal::BindingPointInfo;
     using QuantizationParams = InferenceModelInternal::QuantizationParams;
     using TContainer         = boost::variant<std::vector<float>, std::vector<int>, std::vector<unsigned char>>;
 
@@ -564,24 +558,24 @@
         }
     }
 
-    const BindingPointInfo& GetInputBindingInfo(unsigned int inputIndex = 0u) const
+    const armnn::BindingPointInfo& GetInputBindingInfo(unsigned int inputIndex = 0u) const
     {
         CheckInputIndexIsValid(inputIndex);
         return m_InputBindings[inputIndex];
     }
 
-    const std::vector<BindingPointInfo>& GetInputBindingInfos() const
+    const std::vector<armnn::BindingPointInfo>& GetInputBindingInfos() const
     {
         return m_InputBindings;
     }
 
-    const BindingPointInfo& GetOutputBindingInfo(unsigned int outputIndex = 0u) const
+    const armnn::BindingPointInfo& GetOutputBindingInfo(unsigned int outputIndex = 0u) const
     {
         CheckOutputIndexIsValid(outputIndex);
         return m_OutputBindings[outputIndex];
     }
 
-    const std::vector<BindingPointInfo>& GetOutputBindingInfos() const
+    const std::vector<armnn::BindingPointInfo>& GetOutputBindingInfos() const
     {
         return m_OutputBindings;
     }
@@ -614,8 +608,8 @@
     armnn::NetworkId m_NetworkIdentifier;
     std::shared_ptr<armnn::IRuntime> m_Runtime;
 
-    std::vector<InferenceModelInternal::BindingPointInfo> m_InputBindings;
-    std::vector<InferenceModelInternal::BindingPointInfo> m_OutputBindings;
+    std::vector<armnn::BindingPointInfo> m_InputBindings;
+    std::vector<armnn::BindingPointInfo> m_OutputBindings;
     bool m_EnableProfiling;
 
     template<typename TContainer>
diff --git a/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp b/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
index 2bbfb69..006318f 100644
--- a/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
+++ b/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
@@ -186,9 +186,8 @@
 
             for (unsigned int k = 0; k < networksCount; ++k)
             {
-                using BindingPointInfo = InferenceModelInternal::BindingPointInfo;
-                std::vector<BindingPointInfo> inputBindings  = { networks[k].m_InputBindingInfo  };
-                std::vector<BindingPointInfo> outputBindings = { networks[k].m_OutputBindingInfo };
+                std::vector<armnn::BindingPointInfo> inputBindings  = { networks[k].m_InputBindingInfo  };
+                std::vector<armnn::BindingPointInfo> outputBindings = { networks[k].m_OutputBindingInfo };
 
                 std::vector<TContainer> inputDataContainers = { testCaseData->m_InputImage };
                 std::vector<TContainer> outputDataContainers = { outputs[k] };