IVGCVSW-5483 'Implement Loading and Saving to File'

 * Implemented Serialization and Deserialization of CLContext.
 * Fixed flatbuffers android-nn-driver dependency.

!android-nn-driver:4772

Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: If806f050535ffaa70922ba0f1ffe7bb10f902329
diff --git a/src/backends/cl/ClContextDeserializer.hpp b/src/backends/cl/ClContextDeserializer.hpp
new file mode 100644
index 0000000..e3a9b9d
--- /dev/null
+++ b/src/backends/cl/ClContextDeserializer.hpp
@@ -0,0 +1,41 @@
+//
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <arm_compute/core/CL/CLCompileContext.h>
+
+namespace armnn
+{
+
+class ClContextDeserializer
+{
+public:
+    ClContextDeserializer()  = default;
+    ~ClContextDeserializer() = default;
+
+    /// Deserializes the CLCompileContext built-in programs from a binary file
+    /// @param [in] clCompileContext The CLCompileContext to be serialized
+    /// @param [in] context The CL Kernel context built-in program will be created from
+    /// @param [in] device The CL Kernel device built-in program will be created from
+    /// @param [in] filePath The serialized file
+    void Deserialize(arm_compute::CLCompileContext& clCompileContext,
+                     cl::Context& context,
+                     cl::Device& device,
+                     const std::string& filePath);
+
+    /// Deserializes the CLCompileContext built-in programs from binary file contents
+    /// @param [in] clCompileContext The CLCompileContext to be serialized
+    /// @param [in] context The CL Kernel context built-in program will be created from
+    /// @param [in] device The CL Kernel device built-in program will be created from
+    /// @param [in] filePath The serialized file
+    void DeserializeFromBinary(arm_compute::CLCompileContext& clCompileContext,
+                               cl::Context& context,
+                               cl::Device& device,
+                               const std::vector<uint8_t>& binaryContent);
+
+};
+
+} // namespace armnn
\ No newline at end of file