IVGCVSW-2066: Add IMemoryManager and integrate into the backends framework

Change-Id: I93223c8678165cbc3d39f461c36bb8610dc81c05
diff --git a/src/backends/cl/ClWorkloadFactory.hpp b/src/backends/cl/ClWorkloadFactory.hpp
index 6a928db..cb715e1 100644
--- a/src/backends/cl/ClWorkloadFactory.hpp
+++ b/src/backends/cl/ClWorkloadFactory.hpp
@@ -17,7 +17,7 @@
 class ClWorkloadFactory : public IWorkloadFactory
 {
 public:
-    ClWorkloadFactory();
+    ClWorkloadFactory(const std::shared_ptr<ClMemoryManager>& memoryManager);
 
     const BackendId& GetBackendId() const override;
 
@@ -134,8 +134,6 @@
     virtual void Acquire() override;
 
 private:
-
-#ifdef ARMCOMPUTECL_ENABLED
     template<typename FloatWorkload, typename Uint8Workload, typename QueueDescriptorType, typename... Args>
     static std::unique_ptr<IWorkload> MakeWorkload(const QueueDescriptorType& descriptor,
                                                    const WorkloadInfo& info,
@@ -146,8 +144,7 @@
                                                    const WorkloadInfo& info,
                                                    Args&&... args);
 
-    mutable ClMemoryManager m_MemoryManager;
-#endif
+    mutable std::shared_ptr<ClMemoryManager> m_MemoryManager;
 };
 
 } // namespace armnn