#include <Phase8_RepositoryTransfer.h>
|
| static std::unordered_map< std::string, ShuntingElement * > | buildBlockIndex (const BlockSet &blocks) |
| | Construit l'index ID → ShuntingElement* depuis ctx.blocks.
|
| |
| static void | resolveStraight (StraightBlock &st, const BlockEndpoint &epPrev, const BlockEndpoint &epNext, const std::unordered_map< std::string, ShuntingElement * > &index, Logger &logger) |
| | Résout les pointeurs prev/next d'un StraightBlock.
|
| |
| static void | resolveSwitch (SwitchBlock &sw, const std::array< BlockEndpoint, 3 > &eps, const std::unordered_map< std::string, ShuntingElement * > &index, Logger &logger) |
| | Résout les pointeurs root/normal/deviation d'un SwitchBlock.
|
| |
◆ Phase8_RepositoryTransfer()
| Phase8_RepositoryTransfer::Phase8_RepositoryTransfer |
( |
| ) |
|
|
delete |
◆ buildBlockIndex()
| std::unordered_map< std::string, ShuntingElement * > Phase8_RepositoryTransfer::buildBlockIndex |
( |
const BlockSet & |
blocks | ) |
|
|
staticprivate |
Construit l'index ID → ShuntingElement* depuis ctx.blocks.
Utilisé en Passe 1 de resolve() pour permettre la résolution des pointeurs en Passe 2.
- Paramètres
-
| blocks | Ensemble des blocs. |
- Renvoie
- Map ID → ShuntingElement* (non-propriétaire).
◆ resolve()
9a — Résout les pointeurs inter-blocs.
Construit un index ID → bloc*, puis résout prev/next des StraightBlock et root/normal/deviation des @ref SwitchBlock depuis les BlockEndpoint enregistrés en Phase 6.
- Précondition
ctx.blocks doit être peuplé (Phase 6) et les doubles aiguilles absorbées (Phase 8). Les BlockEndpoint::neighbourId doivent être renseignés (remplis automatiquement par Phase 6 via les nœuds frontières).
- Paramètres
-
| ctx | Contexte pipeline. Modifie les pointeurs dans ctx.blocks. |
| logger | Référence au logger GeoParser. |
◆ resolveStraight()
Résout les pointeurs prev/next d'un StraightBlock.
- Paramètres
-
| st | StraightBlock à résoudre. |
| epPrev | Endpoint côté prev. |
| epNext | Endpoint côté next. |
| index | Index ID → ShuntingElement*. |
| logger | Référence au logger. |
◆ resolveSwitch()
Résout les pointeurs root/normal/deviation d'un SwitchBlock.
- Paramètres
-
| sw | SwitchBlock à résoudre. |
| eps | Tableau des 3 endpoints (root, normal, deviation). |
| index | Index ID → ShuntingElement*. |
| logger | Référence au logger. |
◆ transfer()
9b — Transfère les blocs vers TopologyRepository.
- Précondition
resolve() et Phase8_SwitchOrientator::run() doivent avoir été appelés avant ce transfert.
Vide TopologyRepository via clear(), transfère les unique_ptr via std::move, appelle buildIndex() et libère ctx.blocks.
- Paramètres
-
La documentation de cette classe a été générée à partir des fichiers suivants :