COMPMID-1605: API alignment for the MemoryManager with ARMNN

Change-Id: Iac6a95ba7f388e65b7f1c8865c3e9bf289b233ea
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/155490
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: bsgcomp <bsgcomp@arm.com>
diff --git a/arm_compute/runtime/IMemoryManager.h b/arm_compute/runtime/IMemoryManager.h
index 00aa566..9280b30 100644
--- a/arm_compute/runtime/IMemoryManager.h
+++ b/arm_compute/runtime/IMemoryManager.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -31,6 +31,8 @@
 
 namespace arm_compute
 {
+// Forward declarations
+class IAllocator;
 class IMemoryGroup;
 
 /** Memory manager interface to handle allocations of backing memory */
@@ -49,8 +51,19 @@
      * @return The pool manager
      */
     virtual IPoolManager *pool_manager() = 0;
-    /** Finalize memory manager */
-    virtual void finalize() = 0;
+    /** Populates the pool manager with the given number of pools
+     *
+     * @pre Pool manager must be empty
+     *
+     * @param[in] allocator Allocator to use for the backing allocations
+     * @param[in] num_pools Number of pools to create
+     */
+    virtual void populate(IAllocator &allocator, size_t num_pools) = 0;
+    /** Clears the pool manager
+     *
+     * @pre All pools must be unoccupied
+     */
+    virtual void clear() = 0;
 };
 } // arm_compute
 #endif /*__ARM_COMPUTE_IMEMORYMANAGER_H__ */