IVGCVSW-3724 Adding serialization support for ArgMinMax

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I21210c843c3b8800ccc68d4f3095259d0a233bd1
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 595573c..602c4ab 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -49,6 +49,18 @@
     }
 }
 
+serializer::ArgMinMaxFunction GetFlatBufferArgMinMaxFunction(armnn::ArgMinMaxFunction function)
+{
+    switch (function)
+    {
+        case armnn::ArgMinMaxFunction::Max:
+            return serializer::ArgMinMaxFunction::ArgMinMaxFunction_Max;
+        case armnn::ArgMinMaxFunction::Min:
+        default:
+            return serializer::ArgMinMaxFunction::ArgMinMaxFunction_Min;
+    }
+}
+
 uint32_t SerializerVisitor::GetSerializedId(unsigned int guid)
 {
     std::pair<unsigned int, uint32_t> guidPair(guid, m_layerId);
@@ -154,8 +166,20 @@
                                             const armnn::ArgMinMaxDescriptor& descriptor,
                                             const char *name)
 {
-    // This will be implemented in IVGCVSW-3724
-    throw UnimplementedException("SerializerVisitor::VisitArgMinMaxLayer is not implemented");
+    // Create FlatBuffer BaseLayer
+    auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_ArgMinMax);
+
+    // Create FlatBuffer Descriptor
+    auto flatBufferDescriptor = CreateArgMinMaxDescriptor(m_flatBufferBuilder,
+                                                          GetFlatBufferArgMinMaxFunction(descriptor.m_Function),
+                                                          descriptor.m_Axis);
+
+    // Create FlatBuffer ArgMinMaxLayer
+    auto flatBufferLayer = CreateArgMinMaxLayer(m_flatBufferBuilder,
+                                                flatBufferBaseLayer,
+                                                flatBufferDescriptor);
+
+    CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ArgMinMaxLayer);
 }
 
 // Build FlatBuffer for BatchToSpaceNd Layer