#ifndef TP5_PROJET_HPP #define TP5_PROJET_HPP 1 #include "../includes/Tache.hpp" #include class Projet { Tache // Première tâche qui sera exécutée debut, // Source du graphe aka la dernière à être exécutée fin; friend std::ostream &operator<<(std::ostream &, const Projet &); protected: Projet(); // constructor virtual ~Projet(); // destructor Projet(const Projet &); // copy constructor const Projet &operator=(const Projet &); // copy assignement // Graphe acyclique std::vector taches; // Retourne une paire d'indentifiants de tâches au hasard const std::pair pick_two_random_tasks() const; // Indique pour une tâche si elle fait partie du projet const Tache *contains(const int) const; const Tache *contains(const std::string) const; // Donne une version du vecteur de tâches non modifiable const std::vector consult_tasks() const; // Corrige les éventuelles anomalies du vector de tâches std::vector topologicalSort(); }; #endif