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
|
||||
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
|
||||
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;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Projet &data) {
|
||||
for (Tache *t : data.taches) {
|
||||
out << *t << "\n";
|
||||
std::ostream &Projet::print(std::ostream &out) const {
|
||||
if (taches.empty()) {
|
||||
out << "[]";
|
||||
return out;
|
||||
}
|
||||
|
||||
out << '[';
|
||||
for (Tache *t : taches) {
|
||||
out << *t << ", ";
|
||||
}
|
||||
|
||||
// \b\b permet de retirer la dernière virgule
|
||||
out << "\b\b]";
|
||||
|
||||
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 {
|
||||
// Choix aléatoire d'une tâche
|
||||
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) {
|
||||
for (Tache *t : data.taches) {
|
||||
out << *t << "\n";
|
||||
}
|
||||
|
||||
return out;
|
||||
return data.print(out);
|
||||
}
|
||||
|
||||
void ProtoProjet::cleanMarks() const {
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
#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() {}
|
||||
|
||||
|
@ -15,9 +22,7 @@ const RunProjet &RunProjet::operator=(const RunProjet &src) {
|
|||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const RunProjet &data) {
|
||||
for (Tache *t : data.taches) {
|
||||
out << *t << "\n";
|
||||
}
|
||||
|
||||
return out;
|
||||
return data.print(out);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ const Tache &Tache::operator=(const Tache &src) {
|
|||
std::ostream &operator<<(std::ostream &out, const Tache::Etat &data) {
|
||||
switch (data) {
|
||||
case Tache::EnAttente:
|
||||
out << "En Attente";
|
||||
out << "Attend";
|
||||
break;
|
||||
|
||||
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) {
|
||||
out << "Tâche \"" << data.name << "\" #" << data.unique_id << " " << data.etat
|
||||
<< " avec " << data.dependances.size() << " dépendances";
|
||||
out << "Tâche(#" << data.unique_id << ", \"" << data.name << "\", "
|
||||
<< data.etat << ") => " << data.dependances.size() << " dépendances";
|
||||
return out;
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue