From 22c0d8d875881c8ab2396c8cfc29ce140b4e0b79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ABl=20Madon?= <mael.madon@irit.fr>
Date: Mon, 30 Oct 2023 11:05:46 +0100
Subject: [PATCH] refac: merge function delay_job and C_you_later_job (and
 adapt related tests), #18

---
 src/users/response_behaviors.cpp | 24 +++---------------------
 src/users/response_behaviors.hpp |  8 +-------
 src/users/user_replay.cpp        |  2 +-
 src/users/user_windows.cpp       |  8 ++++----
 4 files changed, 9 insertions(+), 33 deletions(-)

diff --git a/src/users/response_behaviors.cpp b/src/users/response_behaviors.cpp
index d9a32d4..25df3cc 100644
--- a/src/users/response_behaviors.cpp
+++ b/src/users/response_behaviors.cpp
@@ -116,12 +116,12 @@ bool degrad_temp_job(shared_ptr<Job> &job, Profile *profile, ReplayUser *user,
 }
 
 bool delay_job(double new_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, ReplayUser *user, double random_number)
+    UserSubmitQueue *original_trace, ReplayUser *user, double random_number, bool log_as_c_you_later)
 {
-
     /* Log... */
+    string log_string = log_as_c_you_later ? "C_you_later" : "delay";
     user->log_behavior(
-        job, "delay", new_time - job->submission_time, random_number);
+        job, log_string, new_time - job->submission_time, random_number);
     user->dm_stat[2 * DELAYED]++;
     user->dm_stat[2 * DELAYED + 1]
         += job->nb_requested_resources * std::stol(job->profile);
@@ -130,24 +130,6 @@ bool delay_job(double new_time, shared_ptr<Job> job,
     job->submission_time = new_time;
     original_trace->insert_sorted(job.get());
 
-    /* Return "Do not execute now" */
-    return false;
-}
-
-bool C_you_later_job(double next_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, ReplayUser *user, double random_number)
-{
-    /* Log... */
-    user->log_behavior(
-        job, "C_you_later", next_time - job->submission_time, random_number);
-    user->dm_stat[2 * DELAYED]++;
-    user->dm_stat[2 * DELAYED + 1]
-        += job->nb_requested_resources * std::stol(job->profile);
-
-    /* Update the submission date and put job back in the queue */
-    job->submission_time = next_time;
-    original_trace->insert_sorted(job.get());
-
     /* Return "Do not execute now" */
     return false;
 }
\ No newline at end of file
diff --git a/src/users/response_behaviors.hpp b/src/users/response_behaviors.hpp
index 70ac4d3..733a6bf 100644
--- a/src/users/response_behaviors.hpp
+++ b/src/users/response_behaviors.hpp
@@ -58,10 +58,4 @@ bool reconfig_job(shared_ptr<Job> job, Profile *profile, double alpha,
  * later date new_time.
  */
 bool delay_job(double new_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, ReplayUser *user, double random_number);
-
-/**
- * @brief
- */
-bool C_you_later_job(double next_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, ReplayUser *user, double random_number);
\ No newline at end of file
+    UserSubmitQueue *original_trace, ReplayUser *user, double random_number, bool log_as_c_you_later);
\ No newline at end of file
diff --git a/src/users/user_replay.cpp b/src/users/user_replay.cpp
index c050b7f..e85fb3d 100644
--- a/src/users/user_replay.cpp
+++ b/src/users/user_replay.cpp
@@ -328,7 +328,7 @@ bool DMUserRenonce::handle_job(
 bool DMUserDelay::handle_job(double date, shared_ptr<Job> job, Profile *profile)
 {
     if (dm_window->date_in_dm_window(date))
-        return delay_job(dm_window->sup, job, original_trace, this, -1);
+        return delay_job(dm_window->sup, job, original_trace, this, -1, false);
 
     Parser::profile_from_duration(profile, job->profile, user_name);
     return true;
diff --git a/src/users/user_windows.cpp b/src/users/user_windows.cpp
index 9060ed9..9f26d8b 100644
--- a/src/users/user_windows.cpp
+++ b/src/users/user_windows.cpp
@@ -205,8 +205,8 @@ bool DMUserMultiBehavior::exec_red_behavior_mono(
     }
     if (behavior_number == R_C_YOU_LATER_MONO)
     {
-        return C_you_later_job(
-            date + 3600, job, original_trace, this, random_number);
+        return delay_job(
+            date + 3600, job, original_trace, this, random_number, true);
     }
     if (behavior_number == R_DEGRAD_MONO)
     {
@@ -252,8 +252,8 @@ bool DMUserMultiBehavior::exec_red_behavior_multi(
     }
     if (behavior_number == R_C_YOU_LATER_MULTI)
     {
-        return C_you_later_job(
-            date + 3600, job, original_trace, this, random_number);
+        return delay_job(
+            date + 3600, job, original_trace, this, random_number, true);
     }
     if (behavior_number == R_DEGRAD_MULTI)
     {
-- 
GitLab