IVGCVSW-4496 Add Flatten support to ONNX parser

 * Added ParseFlatten method
 * Added Read int64 attribute method
 - Modified ComputeReshapeInfo method
 - Modified ParseReshape
 * Added unit tests
 - Reorganised OnnxParser.cpp/.hpp

Signed-off-by: Ryan OShea <Ryan.OShea2@arm.com>
Change-Id: I8a9553438dd1e8c702d821b093587e0074c027d5
diff --git a/src/armnnOnnxParser/OnnxParser.hpp b/src/armnnOnnxParser/OnnxParser.hpp
index cc012ff..a87863e 100644
--- a/src/armnnOnnxParser/OnnxParser.hpp
+++ b/src/armnnOnnxParser/OnnxParser.hpp
@@ -89,22 +89,15 @@
     std::pair<std::string, std::string> AddPrepareBroadcast(const std::string& input0, const std::string& input1);
     void PrependForBroadcast(const std::string& outputName, const std::string& input0, const std::string& input1);
 
+    void AddConvLayerWithDepthwiseConv(const onnx::NodeProto& node, const armnn::Convolution2dDescriptor& convDesc);
+    void AddFullyConnected(const onnx::NodeProto& matmulNode, const onnx::NodeProto* addNode = nullptr);
+    void AddPoolingLayer(const onnx::NodeProto& nodeProto, armnn::Pooling2dDescriptor& desc);
+
     void CreateConstantLayer(const std::string& tensorName, const std::string& layerName);
     void CreateReshapeLayer(const std::string& inputName,
                             const std::string& outputName,
                             const std::string& layerName);
 
-    void ParseBatchNormalization(const onnx::NodeProto& node);
-    void ParseConstant(const onnx::NodeProto& nodeProto);
-
-    void ParseMaxPool(const onnx::NodeProto& nodeProto);
-    void ParseAveragePool(const onnx::NodeProto& nodeProto);
-    void ParseGlobalAveragePool(const onnx::NodeProto& node);
-
-    void AddPoolingLayer(const onnx::NodeProto& nodeProto, armnn::Pooling2dDescriptor& desc);
-
-    void ParseReshape(const onnx::NodeProto& nodeProto);
-
     void ParseActivation(const onnx::NodeProto& nodeProto, const armnn::ActivationFunction func);
     void ParseClip(const onnx::NodeProto& nodeProto);
     void ParseSigmoid(const onnx::NodeProto& nodeProto);
@@ -112,11 +105,15 @@
     void ParseRelu(const onnx::NodeProto& nodeProto);
     void ParseLeakyRelu(const onnx::NodeProto& nodeProto);
 
-    void AddConvLayerWithDepthwiseConv(const onnx::NodeProto& node, const armnn::Convolution2dDescriptor& convDesc);
-    void ParseConv(const onnx::NodeProto& nodeProto);
-
     void ParseAdd(const onnx::NodeProto& nodeProto);
-    void AddFullyConnected(const onnx::NodeProto& matmulNode, const onnx::NodeProto* addNode = nullptr);
+    void ParseAveragePool(const onnx::NodeProto& nodeProto);
+    void ParseBatchNormalization(const onnx::NodeProto& node);
+    void ParseConstant(const onnx::NodeProto& nodeProto);
+    void ParseConv(const onnx::NodeProto& nodeProto);
+    void ParseFlatten(const onnx::NodeProto& node);
+    void ParseGlobalAveragePool(const onnx::NodeProto& node);
+    void ParseMaxPool(const onnx::NodeProto& nodeProto);
+    void ParseReshape(const onnx::NodeProto& nodeProto);
 
     void RegisterInputSlots(armnn::IConnectableLayer* layer, const std::vector<std::string>& tensorIndexes);
     void RegisterOutputSlots(armnn::IConnectableLayer* layer, const std::vector<std::string>& tensorIndexes);
@@ -184,5 +181,6 @@
     };
 
     std::vector<UsageSummary> m_OutputsFusedAndUsed;
+
 };
 }