43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#ifndef TP5_PROJET_HPP
|
|
#define TP5_PROJET_HPP 1
|
|
|
|
#include <iostream>
|
|
#include <vector>
|
|
#include <utility>
|
|
#include "../includes/Tache.hpp"
|
|
|
|
|
|
class Projet {
|
|
//Héritage de tache ?
|
|
//Tache fin;
|
|
std::vector<Tache *, bool> taches;
|
|
friend std::ostream &operator<<(std::ostream &, const Projet &);
|
|
|
|
public:
|
|
Projet();
|
|
Projet(std::vector<Tache *, bool> taches); // constructor
|
|
virtual ~Projet(); // destructor
|
|
|
|
Projet(const Projet &); // copy constructor
|
|
const Projet &operator=(const Projet &); // copy assignement
|
|
|
|
std::vector<Tache *, bool> getTaches(){
|
|
return taches;
|
|
}
|
|
|
|
// Retourne une paire d'indentifiants de tâches au hasard
|
|
std::pair <int, int> pick_two_random_tasks();
|
|
|
|
// Indique pour une tâche si elle fait partie du projet
|
|
Tache* Projet::contains(int id);
|
|
|
|
// Donne une version du vecteur de tâches non modifiable
|
|
const std::vector<Tache *, bool> consult_tasks() const{
|
|
return taches;
|
|
};
|
|
|
|
// Corrige les éventuelles anomalies du vector de tâches
|
|
const std::vector<Tache *, bool> topologicalSort();
|
|
};
|
|
|
|
#endif
|