IVGCVSW-6312 Support pre-importing inputs

Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: Ifc5e6f2e36767cb2a5cbf281d40ec9989b581abc
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index bbcbb9f..085cf2c 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -76,6 +76,12 @@
     return pRuntimeImpl->GetOutputTensorInfo(networkId, layerId);
 }
 
+std::vector<ImportedInputId> IRuntime::ImportInputs(NetworkId networkId, const InputTensors& inputTensors)
+{
+    return pRuntimeImpl->ImportInputs(networkId, inputTensors);
+}
+
+
 Status IRuntime::EnqueueWorkload(NetworkId networkId,
                                  const InputTensors& inputTensors,
                                  const OutputTensors& outputTensors)
@@ -85,9 +91,10 @@
 
 Status IRuntime::Execute(IWorkingMemHandle& workingMemHandle,
                          const InputTensors& inputTensors,
-                         const OutputTensors& outputTensors)
+                         const OutputTensors& outputTensors,
+                         std::vector<ImportedInputId> preImportedInputs)
 {
-    return pRuntimeImpl->Execute(workingMemHandle, inputTensors, outputTensors);
+    return pRuntimeImpl->Execute(workingMemHandle, inputTensors, outputTensors, preImportedInputs);
 }
 
 Status IRuntime::UnloadNetwork(NetworkId networkId)
@@ -476,6 +483,12 @@
     return GetLoadedNetworkPtr(networkId)->GetOutputTensorInfo(layerId);
 }
 
+std::vector<ImportedInputId> RuntimeImpl::ImportInputs(NetworkId networkId, const InputTensors& inputTensors)
+{
+    return GetLoadedNetworkPtr(networkId)->ImportInputs(inputTensors);
+}
+
+
 
 Status RuntimeImpl::EnqueueWorkload(NetworkId networkId,
                                 const InputTensors& inputTensors,
@@ -512,7 +525,8 @@
 
 Status RuntimeImpl::Execute(IWorkingMemHandle& iWorkingMemHandle,
                             const InputTensors& inputTensors,
-                            const OutputTensors& outputTensors)
+                            const OutputTensors& outputTensors,
+                            std::vector<ImportedInputId> preImportedInputs)
 {
     NetworkId networkId = iWorkingMemHandle.GetNetworkId();
     LoadedNetwork* loadedNetwork = GetLoadedNetworkPtr(networkId);
@@ -531,7 +545,7 @@
 
     ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "Execute");
 
-    return loadedNetwork->Execute(inputTensors, outputTensors, iWorkingMemHandle);
+    return loadedNetwork->Execute(inputTensors, outputTensors, iWorkingMemHandle, preImportedInputs);
 }
 
 /// Create a new unique WorkingMemHandle object. Create multiple handles if you wish to have