#ifndef HEUREDEPOINTECRENEAUXHORRAIRE_H #define HEUREDEPOINTECRENEAUXHORRAIRE_H #include #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