From 510e852f1dae3218f34e7870415e721c0f93ab8e Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Tue, 20 Feb 2018 11:47:18 +0100
Subject: [PATCH] ENH: new function to stop processing (WIP)

---
 .../ApplicationEngine/include/otbWrapperApplication.h     | 3 +++
 .../ApplicationEngine/src/otbWrapperApplication.cxx       | 8 ++++++++
 2 files changed, 11 insertions(+)

diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
index f97134cbd1..d73e49baad 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
@@ -154,6 +154,9 @@ public:
    */
   int ExecuteAndWriteOutput();
 
+  /** Request the application to stop its processing */
+  void Stop();
+
   /* Get the internal application parameters
    *
    * WARNING: this method may disappear from the API */
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
index cca32d50d3..7676634a52 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
@@ -523,6 +523,14 @@ int Application::ExecuteAndWriteOutput()
   return status;
 }
 
+void
+Application::Stop()
+{
+  // TODO :  call AbortGenerateData on ProcessObjects (but no mutex)
+  // TODO : set an internal AbortExecute flag with mutex
+  std::cout << "Stop !" << std::endl;
+}
+
 /* Enable the use of an optional parameter. Returns the previous state */
 void Application::EnableParameter(std::string paramKey)
 {
-- 
GitLab