total duration done!!
This commit is contained in:
parent
929187436b
commit
f4782634ce
6 changed files with 26 additions and 13 deletions
|
@ -48,11 +48,12 @@ protected:
|
||||||
Tache *contains(const int id) const;
|
Tache *contains(const int id) const;
|
||||||
Tache *contains(const std::string name) const;
|
Tache *contains(const std::string name) const;
|
||||||
|
|
||||||
// Donne une version du vecteur de tâches non modifiable
|
|
||||||
const std::vector<const Tache *> consult_tasks() const;
|
|
||||||
|
|
||||||
// Corrige les éventuelles anomalies du vector de tâches
|
// Corrige les éventuelles anomalies du vector de tâches
|
||||||
void topologicalSort();
|
void topologicalSort();
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Donne une version du vecteur de tâches non modifiable
|
||||||
|
const std::vector<const Tache *> consult_tasks() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,8 +3,13 @@
|
||||||
|
|
||||||
#include "ProtoProjet.hpp"
|
#include "ProtoProjet.hpp"
|
||||||
|
|
||||||
class RunProjet final : private ProtoProjet {
|
struct Consultant;
|
||||||
|
struct Expert;
|
||||||
|
|
||||||
|
class RunProjet final : protected ProtoProjet {
|
||||||
friend std::ostream &operator<<(std::ostream &, const RunProjet &);
|
friend std::ostream &operator<<(std::ostream &, const RunProjet &);
|
||||||
|
friend Consultant;
|
||||||
|
friend Expert;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RunProjet() = delete; // remove default constructor
|
RunProjet() = delete; // remove default constructor
|
||||||
|
|
|
@ -12,8 +12,6 @@ class Tache final {
|
||||||
enum Etat { EnAttente, Realisee };
|
enum Etat { EnAttente, Realisee };
|
||||||
friend std::ostream &operator<<(std::ostream &, const Etat &);
|
friend std::ostream &operator<<(std::ostream &, const Etat &);
|
||||||
|
|
||||||
// Durée totale pour faire la tâche
|
|
||||||
int duree_total;
|
|
||||||
// Etat actuelle de la tâche
|
// Etat actuelle de la tâche
|
||||||
enum Etat etat;
|
enum Etat etat;
|
||||||
// Liste des dépendances
|
// Liste des dépendances
|
||||||
|
@ -29,6 +27,8 @@ public:
|
||||||
const int unique_id;
|
const int unique_id;
|
||||||
// Nom de la tâche
|
// Nom de la tâche
|
||||||
std::string name;
|
std::string name;
|
||||||
|
// Durée totale pour faire la tâche
|
||||||
|
int duree_total;
|
||||||
// Vrai si la tâche à été visitée par le parcours en profondeur
|
// Vrai si la tâche à été visitée par le parcours en profondeur
|
||||||
bool visite;
|
bool visite;
|
||||||
|
|
||||||
|
|
|
@ -16,5 +16,10 @@ const Consultant &Consultant::operator=(const Consultant &src) {
|
||||||
|
|
||||||
std::pair<std::vector<int>, int> Consultant::avis(const RunProjet &projet) {
|
std::pair<std::vector<int>, int> Consultant::avis(const RunProjet &projet) {
|
||||||
// TODO
|
// TODO
|
||||||
return std::make_pair(std::vector<int>(), 0);
|
int duree_totale = 0;
|
||||||
|
for (const Tache *it : projet.consult_tasks()) {
|
||||||
|
duree_totale += it->duree_total;
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::make_pair(std::vector<int>(), duree_totale);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,5 +16,7 @@ const Expert &Expert::operator=(const Expert &src) {
|
||||||
|
|
||||||
std::pair<std::vector<int>, int> Expert::avis(const RunProjet &projet) {
|
std::pair<std::vector<int>, int> Expert::avis(const RunProjet &projet) {
|
||||||
// TODO
|
// TODO
|
||||||
return std::make_pair(std::vector<int>(), 0);
|
const int duree_totale = projet.consult_tasks().front()->dureeParal();
|
||||||
|
|
||||||
|
return std::make_pair(std::vector<int>(), duree_totale);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
int Tache::counter_id = 0;
|
int Tache::counter_id = 0;
|
||||||
|
|
||||||
Tache::Tache(const std::string n, const int duree)
|
Tache::Tache(const std::string n, const int duree)
|
||||||
: duree_total(duree), etat(EnAttente), dependances(std::vector<Tache *>()),
|
: etat(EnAttente), dependances(std::vector<Tache *>()),
|
||||||
unique_id(counter_id++), name(n), visite(false) {}
|
unique_id(counter_id++), name(n), duree_total(duree), visite(false) {}
|
||||||
|
|
||||||
Tache::~Tache() {}
|
Tache::~Tache() {}
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ void Tache::_copy(const Tache &src) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Tache::Tache(const Tache &src)
|
Tache::Tache(const Tache &src)
|
||||||
: duree_total(src.duree_total), etat(src.etat), unique_id(counter_id++),
|
: etat(src.etat), unique_id(counter_id++), name(src.name),
|
||||||
name(src.name), visite(src.visite) {
|
duree_total(src.duree_total), visite(src.visite) {
|
||||||
_copy(src);
|
_copy(src);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@ const Tache &Tache::operator=(const Tache &src) {
|
||||||
if (this == &src) {
|
if (this == &src) {
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
duree_total = src.duree_total;
|
|
||||||
etat = src.etat;
|
etat = src.etat;
|
||||||
name = src.name;
|
name = src.name;
|
||||||
|
duree_total = src.duree_total;
|
||||||
visite = src.visite;
|
visite = src.visite;
|
||||||
_copy(src);
|
_copy(src);
|
||||||
return *this;
|
return *this;
|
||||||
|
|
Reference in a new issue