diff --git a/includes/RunProjet.hpp b/includes/RunProjet.hpp index 4c8f8d9..6a3fd3a 100644 --- a/includes/RunProjet.hpp +++ b/includes/RunProjet.hpp @@ -3,7 +3,7 @@ #include "ProtoProjet.hpp" -class RunProjet final : public ProtoProjet { +class RunProjet final : private ProtoProjet { friend std::ostream &operator<<(std::ostream &, const RunProjet &); public: @@ -13,6 +13,12 @@ public: RunProjet(const RunProjet &); // copy constructor const RunProjet &operator=(const RunProjet &); // copy assignement + + // Lance une tâche + bool run(const int id) const; + + // Exécute une liste de tâches dans l'ordre donnée + void run(const std::vector sequence_taches) const; }; #endif diff --git a/src/RunProjet.cpp b/src/RunProjet.cpp index 08c2f8a..7dd5cd4 100644 --- a/src/RunProjet.cpp +++ b/src/RunProjet.cpp @@ -25,4 +25,19 @@ std::ostream &operator<<(std::ostream &out, const RunProjet &data) { return data.print(out); } +bool RunProjet::run(const int id) const { + Tache *tache = contains(id); + // La tâche n'existe pas + if (!tache) { + return false; + } + + // Renvoie si la tâche s'est réalisée + return tache->realise(); +} + +void RunProjet::run(const std::vector sequence_taches) const { + for (const Tache *it : sequence_taches) { + run(it->unique_id); + } }