Verified Commit e9ddfb09 authored by Romain De Laage De Bellefaye's avatar Romain De Laage De Bellefaye 🌳
Browse files

replace classic pointer with unique ptr

parent d9d8c723
Pipeline #79685 passed with stage
in 15 seconds
......@@ -15,8 +15,8 @@ class Automate {
static std::unique_ptr<Automate> instance;
std::string title;
unsigned int delai;
Fonction* fonction;
RegleVoisinage* regleVoisinage;
std::unique_ptr<Fonction> fonction;
std::unique_ptr<RegleVoisinage> regleVoisinage;
std::list<Reseau> buffer;
std::list<Reseau>::iterator itBuffer;
unsigned int h;
......@@ -71,13 +71,13 @@ class Automate {
/// Définir la fonction de transition de l'automate
///
/// L'objet est géré dynamiquement par l'utilisateur mais une fois donnné à l'automate il gère son cycle de vie
void setFonction(Fonction& f) { fonction = &f; }
void setFonction(Fonction* f) { fonction.reset(f); }
/// Récupérer la fonction de transition
const Fonction& getFonction() const { return *fonction; }
/// Définir une règle de voisinage
///
/// L'objet est géré dynamiquement par l'utilisateur mais une fois donnné à l'automate il gère son cycle de vie
void setRegleVoisinage(RegleVoisinage& r) { regleVoisinage = &r; }
void setRegleVoisinage(RegleVoisinage* r) { regleVoisinage.reset(r); }
/// Récupérer la règle de voisinage
const RegleVoisinage& getRegleVoisinage() const { return *regleVoisinage; }
/// Définir le délai entre 2 itérations de l'automate en mode Timer
......
......@@ -32,8 +32,8 @@ void Automate::nextTimer() {
void Automate::reinitialiserAutomate() {
title = "";
delai = 500;
delete fonction;
delete regleVoisinage;
fonction.reset(nullptr);
regleVoisinage.reset(nullptr);
reseauInit = Reseau(0, 0);
buffer.clear();
itBuffer = buffer.begin();
......
......@@ -526,8 +526,8 @@ void Database::initSingletonAutomate(const QString& modele) const
Automate::getInstance().setYear(reseau.value(3).toInt());
Database::initEnsEtat(Automate::getInstance());
Automate::getInstance().setFonction(*Database::getFonction(Automate::getInstance()));
Automate::getInstance().setRegleVoisinage(*Database::getRegleVoisinage(modele));
Automate::getInstance().setFonction(Database::getFonction(Automate::getInstance()));
Automate::getInstance().setRegleVoisinage(Database::getRegleVoisinage(modele));
//Automate::getInstance().getEnsemble();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment