28#include <unordered_map>
171 [[nodiscard]]
const std::vector<std::unique_ptr<PCCNode>>&
getNodes()
const {
return m_nodes; }
178 [[nodiscard]]
const std::vector<std::unique_ptr<PCCEdge>>&
getEdges()
const {
return m_edges; }
228 std::vector<std::unique_ptr<PCCNode>>
m_nodes;
234 std::vector<std::unique_ptr<PCCEdge>>
m_edges;
244 std::unordered_map<std::string, PCCNode*>
m_index;
Système de journalisation à 5 niveaux de trace, un fichier par moteur.
Connexion orientée entre deux nœuds du graphe PCC.
PCCEdgeRole
Rôle sémantique d'une arête dans la topologie ferroviaire.
Definition PCCEdge.h:34
Nœud abstrait du graphe PCC représentant un bloc ferroviaire.
Nœud PCC représentant un StraightBlock.
Nœud PCC représentant un SwitchBlock.
Modèle de domaine d'un bloc de voie droite (Straight).
Modèle de domaine d'un aiguillage ferroviaire à 3 branches.
Journaliseur associé à un moteur nommé.
Definition Logger.h:99
Connexion orientée entre deux PCCNode du PCCGraph.
Definition PCCEdge.h:50
Conteneur propriétaire du graphe PCC — nœuds, arêtes et index.
Definition PCCGraph.h:50
Logger & getLogger()
Retourne une référence au logger PCC pour les classes consommatrices.
Definition PCCGraph.h:76
PCCGraph(const PCCGraph &)=delete
Interdit la copie — unique_ptr non copiable.
void clear()
Vide le graphe — nœuds, arêtes et index.
Definition PCCGraph.cpp:87
const std::vector< std::unique_ptr< PCCEdge > > & getEdges() const
Retourne la collection d'arêtes (lecture seule).
Definition PCCGraph.h:178
PCCGraph()
Definition PCCGraph.cpp:10
std::vector< std::unique_ptr< PCCNode > > m_nodes
Definition PCCGraph.h:228
PCCGraph & operator=(const PCCGraph &)=delete
std::vector< std::unique_ptr< PCCEdge > > m_edges
Definition PCCGraph.h:234
PCCNode * addStraightNode(StraightBlock *source)
Crée un nœud voie droite, l'indexe et le stocke.
Definition PCCGraph.cpp:19
bool isEmpty() const
Indique si le graphe est vide.
Definition PCCGraph.h:199
PCCNode * addSwitchNode(SwitchBlock *source)
Crée un nœud aiguillage, l'indexe et le stocke.
Definition PCCGraph.cpp:29
std::size_t edgeCount() const
Retourne le nombre d'arêtes dans le graphe.
Definition PCCGraph.h:192
PCCEdge * addEdge(PCCNode *from, PCCNode *to, PCCEdgeRole role)
Crée une arête orientée entre deux nœuds et la câble sur les deux.
Definition PCCGraph.cpp:38
PCCGraph & operator=(PCCGraph &&)=default
const std::vector< std::unique_ptr< PCCNode > > & getNodes() const
Retourne la collection de nœuds (lecture seule).
Definition PCCGraph.h:171
PCCNode * findNode(const std::string &sourceId) const
Recherche un nœud par l'identifiant de son bloc source.
Definition PCCGraph.cpp:69
std::size_t nodeCount() const
Retourne le nombre de nœuds dans le graphe.
Definition PCCGraph.h:185
PCCGraph(PCCGraph &&)=default
Déplacement autorisé.
std::unordered_map< std::string, PCCNode * > m_index
Definition PCCGraph.h:244
Logger m_logger
Definition PCCGraph.h:221
Nœud abstrait du graphe PCC.
Definition PCCNode.h:70
Definition StraightBlock.h:24
Definition SwitchBlock.h:41