Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Phase8_RepositoryTransfer

#include <Phase8_RepositoryTransfer.h>

Graphe de collaboration de Phase8_RepositoryTransfer:

Fonctions membres publiques

 Phase8_RepositoryTransfer ()=delete
 

Fonctions membres publiques statiques

static void resolve (PipelineContext &ctx, Logger &logger)
 9a — Résout les pointeurs inter-blocs.
 
static void transfer (PipelineContext &ctx, Logger &logger)
 9b — Transfère les blocs vers TopologyRepository.
 

Fonctions membres privées statiques

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.
 

Documentation des constructeurs et destructeur

◆ Phase8_RepositoryTransfer()

Phase8_RepositoryTransfer::Phase8_RepositoryTransfer ( )
delete

Documentation des fonctions membres

◆ 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
blocksEnsemble des blocs.
Renvoie
Map ID → ShuntingElement* (non-propriétaire).

◆ resolve()

void Phase8_RepositoryTransfer::resolve ( PipelineContext ctx,
Logger logger 
)
static

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
ctxContexte pipeline. Modifie les pointeurs dans ctx.blocks.
loggerRéférence au logger GeoParser.

◆ resolveStraight()

void Phase8_RepositoryTransfer::resolveStraight ( StraightBlock st,
const BlockEndpoint epPrev,
const BlockEndpoint epNext,
const std::unordered_map< std::string, ShuntingElement * > &  index,
Logger logger 
)
staticprivate

Résout les pointeurs prev/next d'un StraightBlock.

Paramètres
stStraightBlock à résoudre.
epPrevEndpoint côté prev.
epNextEndpoint côté next.
indexIndex ID → ShuntingElement*.
loggerRéférence au logger.

◆ resolveSwitch()

void Phase8_RepositoryTransfer::resolveSwitch ( SwitchBlock sw,
const std::array< BlockEndpoint, 3 > &  eps,
const std::unordered_map< std::string, ShuntingElement * > &  index,
Logger logger 
)
staticprivate

Résout les pointeurs root/normal/deviation d'un SwitchBlock.

Paramètres
swSwitchBlock à résoudre.
epsTableau des 3 endpoints (root, normal, deviation).
indexIndex ID → ShuntingElement*.
loggerRéférence au logger.

◆ transfer()

void Phase8_RepositoryTransfer::transfer ( PipelineContext ctx,
Logger logger 
)
static

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
ctxContexte pipeline. Transfère ctx.blocks → TopologyRepository.
loggerRéférence au logger GeoParser.

La documentation de cette classe a été générée à partir des fichiers suivants :