66 lines
2.2 KiB
C++
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 d�crivant un creneau horaire heures de pointe sp�cifiant le nombre maximum de rentr�e de rames
|
||
|
|
*/
|
||
|
|
class [[maybe_unused]] HeurePointeCreneauxHoraire :
|
||
|
|
public CreneauHoraire {
|
||
|
|
private:
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief nomre maximum de rames autoris�es � rentrer sur site de maintenance
|
||
|
|
*/
|
||
|
|
unsigned int m_nbMaxRameImmobilisees{};
|
||
|
|
public:
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Constructeur par d�faut
|
||
|
|
*/
|
||
|
|
HeurePointeCreneauxHoraire() = default;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Constructeur de copie
|
||
|
|
* @param creneau le creneau � copier
|
||
|
|
*/
|
||
|
|
HeurePointeCreneauxHoraire(const HeurePointeCreneauxHoraire &creneau);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Constructeur de confort
|
||
|
|
* @param pDebut la date de d�but du creneau
|
||
|
|
* @param pFin la date de fin du creneau
|
||
|
|
* @param nbRame le nombre de rames maximum immobilis�es
|
||
|
|
*/
|
||
|
|
HeurePointeCreneauxHoraire(SolverDate const &pDebut, SolverDate const &pFin, int nbRame);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Destructeur. Ne fait rien
|
||
|
|
*/
|
||
|
|
~HeurePointeCreneauxHoraire() override = default;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Getter sur le nombre maximum de rentr�es 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 d�crivant 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 d�crivant un creneau d'heure de pointe
|
||
|
|
* @return l'instance de la classe HeurePointeCreneauxHoraire correspondant � l'objet JSON d'entr�e
|
||
|
|
*/
|
||
|
|
static HeurePointeCreneauxHoraire from_json(nlohmann::json &json);
|
||
|
|
};
|
||
|
|
}
|
||
|
|
#endif
|