prettyprinter
This commit is contained in:
parent
510b8680e8
commit
62091bf314
5 changed files with 34 additions and 17 deletions
|
@ -38,6 +38,9 @@ protected:
|
||||||
// Graphe acyclique
|
// Graphe acyclique
|
||||||
std::vector<Tache *> taches;
|
std::vector<Tache *> taches;
|
||||||
|
|
||||||
|
// Auxiliaire pour simplifier l'affichage d'un projet
|
||||||
|
std::ostream &print(std::ostream &) const;
|
||||||
|
|
||||||
// Retourne une paire d'indentifiants de tâches au hasard
|
// Retourne une paire d'indentifiants de tâches au hasard
|
||||||
const std::pair<const int, const int> pick_two_random_tasks() const;
|
const std::pair<const int, const int> pick_two_random_tasks() const;
|
||||||
|
|
||||||
|
|
|
@ -39,14 +39,27 @@ const Projet &Projet::operator=(const Projet &src) {
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const Projet &data) {
|
std::ostream &Projet::print(std::ostream &out) const {
|
||||||
for (Tache *t : data.taches) {
|
if (taches.empty()) {
|
||||||
out << *t << "\n";
|
out << "[]";
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out << '[';
|
||||||
|
for (Tache *t : taches) {
|
||||||
|
out << *t << ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
// \b\b permet de retirer la dernière virgule
|
||||||
|
out << "\b\b]";
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::ostream &operator<<(std::ostream &out, const Projet &data) {
|
||||||
|
return data.print(out);
|
||||||
|
}
|
||||||
|
|
||||||
const std::pair<const int, const int> Projet::pick_two_random_tasks() const {
|
const std::pair<const int, const int> Projet::pick_two_random_tasks() const {
|
||||||
// Choix aléatoire d'une tâche
|
// Choix aléatoire d'une tâche
|
||||||
size_t size = this->taches.size();
|
size_t size = this->taches.size();
|
||||||
|
|
|
@ -15,11 +15,7 @@ const ProtoProjet &ProtoProjet::operator=(const ProtoProjet &src) {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const ProtoProjet &data) {
|
std::ostream &operator<<(std::ostream &out, const ProtoProjet &data) {
|
||||||
for (Tache *t : data.taches) {
|
return data.print(out);
|
||||||
out << *t << "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtoProjet::cleanMarks() const {
|
void ProtoProjet::cleanMarks() const {
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
#include "../includes/RunProjet.hpp"
|
#include "../includes/RunProjet.hpp"
|
||||||
|
|
||||||
RunProjet::RunProjet(ProtoProjet &src) : ProtoProjet(src) { src.free_taches(); }
|
RunProjet::RunProjet(ProtoProjet &src) : ProtoProjet(src) {
|
||||||
|
// TODO: Ici on COPIE les tâches de ProtoProjet au lieu de juste prendre les
|
||||||
|
// références et les retirer de sa liste
|
||||||
|
// Il faudrait que l'on trouve un moyen que ça n'arrive pas pour éviter une
|
||||||
|
// copie inutile
|
||||||
|
|
||||||
|
src.free_taches();
|
||||||
|
}
|
||||||
|
|
||||||
RunProjet::~RunProjet() {}
|
RunProjet::~RunProjet() {}
|
||||||
|
|
||||||
|
@ -15,9 +22,7 @@ const RunProjet &RunProjet::operator=(const RunProjet &src) {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const RunProjet &data) {
|
std::ostream &operator<<(std::ostream &out, const RunProjet &data) {
|
||||||
for (Tache *t : data.taches) {
|
return data.print(out);
|
||||||
out << *t << "\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ const Tache &Tache::operator=(const Tache &src) {
|
||||||
std::ostream &operator<<(std::ostream &out, const Tache::Etat &data) {
|
std::ostream &operator<<(std::ostream &out, const Tache::Etat &data) {
|
||||||
switch (data) {
|
switch (data) {
|
||||||
case Tache::EnAttente:
|
case Tache::EnAttente:
|
||||||
out << "En Attente";
|
out << "Attend";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Tache::Realisee:
|
case Tache::Realisee:
|
||||||
|
@ -48,8 +48,8 @@ std::ostream &operator<<(std::ostream &out, const Tache::Etat &data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const Tache &data) {
|
std::ostream &operator<<(std::ostream &out, const Tache &data) {
|
||||||
out << "Tâche \"" << data.name << "\" #" << data.unique_id << " " << data.etat
|
out << "Tâche(#" << data.unique_id << ", \"" << data.name << "\", "
|
||||||
<< " avec " << data.dependances.size() << " dépendances";
|
<< data.etat << ") => " << data.dependances.size() << " dépendances";
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue