Files
OrdonnancementCorrectif/src/General/Model/HeurePointeCreneauxHoraire.h
T
2026-06-03 22:48:34 +02:00

66 lines
2.2 KiB
C++

#ifndef HEUREDEPOINTECRENEAUXHORRAIRE_H
#define HEUREDEPOINTECRENEAUXHORRAIRE_H
#include <iostream>
#include "CreneauHoraire.h"
namespace modellib {
/*! @file HeurePointeCreneauxHoraire.h*/
/**
* @class HeurePointeCreneauxHoraire
* @brief Classe dcrivant un creneau horaire heures de pointe spcifiant le nombre maximum de rentre de rames
*/
class [[maybe_unused]] HeurePointeCreneauxHoraire :
public CreneauHoraire {
private:
/**
* @brief nomre maximum de rames autorises rentrer sur site de maintenance
*/
unsigned int m_nbMaxRameImmobilisees{};
public:
/**
* @brief Constructeur par dfaut
*/
HeurePointeCreneauxHoraire() = default;
/**
* @brief Constructeur de copie
* @param creneau le creneau copier
*/
HeurePointeCreneauxHoraire(const HeurePointeCreneauxHoraire &creneau);
/**
* @brief Constructeur de confort
* @param pDebut la date de dbut du creneau
* @param pFin la date de fin du creneau
* @param nbRame le nombre de rames maximum immobilises
*/
HeurePointeCreneauxHoraire(SolverDate const &pDebut, SolverDate const &pFin, int nbRame);
/**
* @brief Destructeur. Ne fait rien
*/
~HeurePointeCreneauxHoraire() override = default;
/**
* @brief Getter sur le nombre maximum de rentres de rames sur site
*/
[[maybe_unused]] [[nodiscard]] unsigned int getNbMaxRamesImmobiles() const { return m_nbMaxRameImmobilisees; };
/**
* @brief Fonction interface de traduction de l'objet HeurePointeCreneauxHoraire vers un objet JSON
* @return le json dcrivant le creneau d'heure de pointe
*/
nlohmann::json to_json();
/**
* @brief Fonction interface de traduction de l'objet JSON vers un objet HeurePointeCreneauxHoraire
* @param json le JSON dcrivant un creneau d'heure de pointe
* @return l'instance de la classe HeurePointeCreneauxHoraire correspondant l'objet JSON d'entre
*/
static HeurePointeCreneauxHoraire from_json(nlohmann::json &json);
};
}
#endif