IVGCVSW-5481 'Add ClCompileContext to ClWorkloadFactory'

* Introduced CLCompileContext to ClWorkloadFactory

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: Ied38f4336210502e5f518b9955ae6a5ba3d242b3
diff --git a/src/backends/cl/ClBackendModelContext.cpp b/src/backends/cl/ClBackendModelContext.cpp
index 0ef26b6..b685bc2 100644
--- a/src/backends/cl/ClBackendModelContext.cpp
+++ b/src/backends/cl/ClBackendModelContext.cpp
@@ -17,13 +17,22 @@
     return defaultValue;
 }
 
+std::string ParseFile(const armnn::BackendOptions::Var& value, std::string defaultValue)
+{
+    if (value.IsString())
+    {
+        return value.AsString();
+    }
+    return defaultValue;
+}
+
 } // namespace anonymous
 
 namespace armnn
 {
 
 ClBackendModelContext::ClBackendModelContext(const ModelOptions& modelOptions)
-    : m_IsFastMathEnabled(false)
+    : m_CachedNetworkFilePath(""), m_IsFastMathEnabled(false), m_SaveCachedNetwork(false)
 {
    if (!modelOptions.empty())
    {
@@ -33,13 +42,31 @@
            {
                m_IsFastMathEnabled |= ParseBool(value, false);
            }
+           if (name == "SaveCachedNetwork")
+           {
+               m_SaveCachedNetwork |= ParseBool(value, false);
+           }
+           if (name == "CachedNetworkFilePath")
+           {
+               m_CachedNetworkFilePath = ParseFile(value, "");
+           }
        });
    }
 }
 
+std::string ClBackendModelContext::GetCachedNetworkFilePath() const
+{
+    return m_CachedNetworkFilePath;
+}
+
 bool ClBackendModelContext::IsFastMathEnabled() const
 {
     return m_IsFastMathEnabled;
 }
 
+bool ClBackendModelContext::SaveCachedNetwork() const
+{
+    return m_SaveCachedNetwork;
+}
+
 } // namespace armnn
\ No newline at end of file