From 2c9e9137bb9a65be75d525630d51e25f62425eca Mon Sep 17 00:00:00 2001
From: Yann Boucher <yann.boucher@etu.utc.fr>
Date: Fri, 7 May 2021 17:24:49 +0200
Subject: [PATCH] Added a bit of missing documentation, added an entry to the
 .gitignore

---
 .gitignore                   |  2 ++
 include/propertyvisitors.hpp | 24 ++++++++++++++++++++++--
 include/structurereader.hpp  | 33 +++++++++++++++++++++++++++++++--
 src/structurereader.cpp      |  8 ++++++++
 4 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/.gitignore b/.gitignore
index c2fca8a..8ef8093 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,8 @@ Makefile*
 *.qm
 *.prl
 
+build/
+
 # Qt unit tests
 target_wrapper.*
 
diff --git a/include/propertyvisitors.hpp b/include/propertyvisitors.hpp
index 50aa41d..84f26a1 100644
--- a/include/propertyvisitors.hpp
+++ b/include/propertyvisitors.hpp
@@ -19,10 +19,17 @@ Fichier contenant diverses classes filles de PropertyVisitor permettant l'affich
 
 #include "property.hpp"
 
+/**
+\class UIBuilderVisitor
+
+Cette classe permet de remplir un widget fourni en argument avec une représentation interactive de Property.
+**/
 class UIBuilderVisitor : public PropertyVisitor
 {
 public:
-    // destrucive = true if we want to rebuild the layout of the base_widget passed in parameter
+    //! Construit le UIBuilderVisitor à partir d'un base_widget.
+    //! \param base_widget le widget.
+    //! \param destructive indique si l'on détruit le contenu déjà présent dans base_widget ou non.
     UIBuilderVisitor(QWidget* base_widget, bool destructive = true);
 
 private:
@@ -42,12 +49,18 @@ private:
     std::stack<QWidget*> m_widget_hierarchy;
 };
 
+/**
+\class PropertySaverVisitor
 
+Cette classe permet de sauvegarder un ensemble de Property dans un fichier JSON donné.
+**/
 class PropertySaverVisitor : public PropertyVisitor
 {
 public:
+    //! Construit le  PropertySaverVisitor.
     PropertySaverVisitor();
-
+    //! Sauvegarde les données des Property visitées au format JSON dans le fichier.
+    //! \param filename Le nom du fichier.
     void save(const std::string& filename);
 
 private:
@@ -66,9 +79,16 @@ private:
     std::stack<QVariant> m_current_hierarchy;
 };
 
+/**
+\class PropertyLoaderVisitor
+
+Cette classe permet de charger un ensemble de Property depuis un fichier JSON donné.
+**/
 class PropertyLoaderVisitor : public PropertyVisitor
 {
 public:
+    //! Construit le PropertyLoaderVisitor à partir des données contenues dans un fichier JSON.
+    //! \param filename Le nom du fichier.
     PropertyLoaderVisitor(const std::string& filename);
 
 private:
diff --git a/include/structurereader.hpp b/include/structurereader.hpp
index f8c0160..b538277 100644
--- a/include/structurereader.hpp
+++ b/include/structurereader.hpp
@@ -1,3 +1,14 @@
+/**
+\file structurereader.hpp
+\date 07/05/2021
+\author Yann Boucher
+\version 1
+\brief StructureReader
+
+Fichier contenant la classe StructureReader et ses filles, permettant de lire une Structure à partir de différents formats de fichier.
+
+**/
+
 #ifndef STRUCTUREREADER_HPP
 #define STRUCTUREREADER_HPP
 
@@ -6,8 +17,6 @@
 
 class Structure;
 
-// TODO : documenter ce fichier
-
 // TODO : adapter cettre classe d'Exception en la faisant hériter à notre propre classe d'Exception
 class StructureReaderException : public std::exception
 {
@@ -23,24 +32,40 @@ private:
     const std::string m_what;
 };
 
+//! \class StructureReader
+//! Classe abstraite permettant de lire une Structure à partir de différents formats de fichier.
 class StructureReader
 {
 public:
+    //! \brief Constructeur prenant en argument les données du fichier à lire sous forme de std::string
     StructureReader(const std::string& in_data):
           m_idx(0), m_data(in_data)
     {}
+    //! \brief Retourne la structure lue.
+    //! \exception StructureReaderException si il y a une erreur lors de la lecture
     virtual Structure read_structure() = 0;
 
 protected:
+    //! \brief Retourne le caractère au niveau du curseur actuel.
     char peek() const;
+    //! \brief Lit le caractère actuel sous le curseur, et avance le curseur.
     char read();
+    //! \brief Retourne vrai si l'entièreté des données a été lue, faux sinon.
     bool eof() const;
+    //! \brief Renvoie une exception si les données sous le curseur actuelles sont différentes de str, avance le curseur sinon.
     void expect(const std::string& str);
+    //! \brief Retourne vrai si ls données sous le curseur correspondent à str et avance le curseur, retourne faux sinon.
     bool accept(const std::string& str);
+    //! \brief Lit un mot délimité par des espaces dans l'entrée.
     std::string read_word();
+    //! \brief Lit la ligne actuelle dans l'entrée, à partir du curseur.
     std::string read_line();
+    //! \brief Retourne toutes les données situées à partir du curseur.
     std::string data_left() const;
+    //! \brief Lit un entier dans l'entrée.
+    //! \exception StructureReaderException si il y a une erreur lors de la lecture de l'entier
     int read_int();
+    //! \brief Avance le curseur jusqu'au premier caractère qui n'est pas un espace.
     void read_white();
 
 private:
@@ -48,6 +73,8 @@ private:
     const std::string& m_data;
 };
 
+//! \class RLEStructureReader
+//! Lit une structure au format Extended RLE de Golly (https://www.conwaylife.com/wiki/Run_Length_Encoded)
 class RLEStructureReader : public StructureReader
 {
 public:
@@ -60,6 +87,8 @@ private:
     unsigned read_state();
 };
 
+//! \class StructureReader
+//! Lit une structure au format JSON.
 class JSONStructureReader : public StructureReader
 {
 public:
diff --git a/src/structurereader.cpp b/src/structurereader.cpp
index 6c70e1b..bd9fc31 100644
--- a/src/structurereader.cpp
+++ b/src/structurereader.cpp
@@ -1,3 +1,11 @@
+/**
+\file structurereader.cpp
+\date 07/05/2021
+\author Yann Boucher
+\version 1
+\brief StructureReader
+**/
+
 #include "structurereader.hpp"
 
 #include <QByteArray>
-- 
GitLab