From 56283fb3b19ac673650e4ea2e1abd1359e1ddc81 Mon Sep 17 00:00:00 2001
From: "karim.moussaoui" <karim.moussaoui@univ-tlse3.fr>
Date: Fri, 1 Mar 2024 09:45:08 +0000
Subject: [PATCH] Carbon Algo, Fait par : Karim/Adem

---
 src/algo/carbone.hpp | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 src/algo/carbone.hpp

diff --git a/src/algo/carbone.hpp b/src/algo/carbone.hpp
new file mode 100644
index 0000000..006a71d
--- /dev/null
+++ b/src/algo/carbone.hpp
@@ -0,0 +1,32 @@
+#ifndef CARBONE_HPP
+#define CARBONE_HPP
+#pragma once
+
+#include <list>
+#include "../isalgorithm.hpp"
+#include "../json_workload.hpp"
+#include "../locality.hpp"
+#include "../schedule.hpp"
+#include "isalgorithm.hpp" 
+
+class CarboneAlgorithm : public ISchedulingAlgorithm {
+public:
+    CarboneAlgorithm(Workload * workload, SchedulingDecision * decision, Queue * queue, ResourceSelector * selector, double rjms_delay, rapidjson::Document * variant_options);
+    virtual ~CarboneAlgorithm();
+
+    virtual void on_simulation_start(double date, const rapidjson::Value & batsim_config);
+    virtual void on_simulation_end(double date);
+    void make_decisions(double date, SortableJobOrder::UpdateInformation *update_info, SortableJobOrder::CompareInformation *compare_info) override;
+    void updateCarbonFootprint(int dcA, int dcB, int dcC);
+
+private:
+    int select_datacenter_with_lowest_carbon_footprint();
+    int carbonFootprintDcA;
+    int carbonFootprintDcB;
+    int carbonFootprintDcC;
+protected:
+    Schedule _schedule;
+    bool _debug = false;
+};
+
+#endif // CARBONE_HPP
-- 
GitLab