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 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
|
||||
void topologicalSort();
|
||||
|
||||
public:
|
||||
// Donne une version du vecteur de tâches non modifiable
|
||||
const std::vector<const Tache *> consult_tasks() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,8 +3,13 @@
|
|||
|
||||
#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 Consultant;
|
||||
friend Expert;
|
||||
|
||||
public:
|
||||
RunProjet() = delete; // remove default constructor
|
||||
|
|
|
@ -12,8 +12,6 @@ class Tache final {
|
|||
enum Etat { EnAttente, Realisee };
|
||||
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
|
||||
enum Etat etat;
|
||||
// Liste des dépendances
|
||||
|
@ -29,6 +27,8 @@ public:
|
|||
const int unique_id;
|
||||
// Nom de la tâche
|
||||
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
|
||||
bool visite;
|
||||
|
||||
|
|
|
@ -16,5 +16,10 @@ const Consultant &Consultant::operator=(const Consultant &src) {
|
|||
|
||||
std::pair<std::vector<int>, int> Consultant::avis(const RunProjet &projet) {
|
||||
// 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) {
|
||||
// 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;
|
||||
|
||||
Tache::Tache(const std::string n, const int duree)
|
||||
: duree_total(duree), etat(EnAttente), dependances(std::vector<Tache *>()),
|
||||
unique_id(counter_id++), name(n), visite(false) {}
|
||||
: etat(EnAttente), dependances(std::vector<Tache *>()),
|
||||
unique_id(counter_id++), name(n), duree_total(duree), visite(false) {}
|
||||
|
||||
Tache::~Tache() {}
|
||||
|
||||
|
@ -17,8 +17,8 @@ void Tache::_copy(const Tache &src) {
|
|||
}
|
||||
|
||||
Tache::Tache(const Tache &src)
|
||||
: duree_total(src.duree_total), etat(src.etat), unique_id(counter_id++),
|
||||
name(src.name), visite(src.visite) {
|
||||
: etat(src.etat), unique_id(counter_id++), name(src.name),
|
||||
duree_total(src.duree_total), visite(src.visite) {
|
||||
_copy(src);
|
||||
}
|
||||
|
||||
|
@ -26,9 +26,9 @@ const Tache &Tache::operator=(const Tache &src) {
|
|||
if (this == &src) {
|
||||
return *this;
|
||||
}
|
||||
duree_total = src.duree_total;
|
||||
etat = src.etat;
|
||||
name = src.name;
|
||||
duree_total = src.duree_total;
|
||||
visite = src.visite;
|
||||
_copy(src);
|
||||
return *this;
|
||||
|
|
Reference in a new issue