From 15833666e953d2eb7847ec7096249f8001506ba2 Mon Sep 17 00:00:00 2001
From: Alex <alexandravigneron1@gmail.com>
Date: Thu, 2 Jul 2020 13:47:26 +0200
Subject: [PATCH] supervisor's resetting

---
 .../solver/decentralized/supervisor/Supervisor.scala   |  8 ++++----
 .../decentralized/supervisor/SupervisorStatus.scala    | 10 ++++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala b/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala
index 17f7cc0..833b3a2 100644
--- a/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala
+++ b/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala
@@ -16,7 +16,7 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta
     with FSM[SupervisorState, SupervisorStatus] {
 
   var debug = true
-  var debugState = false
+  var debugState = true
   var trace = false
 
   var solver: ActorRef = context.parent // Reference to the distributed solver
@@ -102,7 +102,7 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta
     * Handles the message in the running state
     */
   when(RunningSupervisorState) {
-    
+
     // When an agent wants to start
     case Event(KickStartMe, status) =>
       sender ! ContinueAlgo
@@ -162,13 +162,13 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta
 
     //when it receives its own decison that it should continue
     case Event(ContinueAlgo, status) => {
-      //TODO reset the context it has
+      val newStatus: SupervisorStatus = status.SupervisorStatus(status)//TODO reset the context it has
       unstashall
       goto(RunningSupervisorState) using status
     }
 
     case Event(StopAlgo, status) => {
-      //TODO ???
+      goto(FinalSupervisorState) using status
     }
 
   }
diff --git a/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala b/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala
index 6db5e19..b495ba8 100644
--- a/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala
+++ b/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala
@@ -41,4 +41,14 @@ class SupervisorStatus(val readyVariables: Set[Variable] = Set(),
     * @todo modify it
     */
   def isTerminated : Boolean = ! isFirstRound
+
+  def resetContext(currStatus: SupervisorStatus): SupervisorStatus {
+    new SupervisorStatus(readyVariables,
+                       inactiveVariables,
+                       killedVariables,
+                       assignment new Context(),
+                       metric,
+                       isFirstRound
+                      )
+  }
 }
-- 
GitLab