Référence de la classe metro::Plan

#include <plan.h>

Liste de tous les membres

Fonctions membres publiques

 Plan (size_t delaiStation, size_t delaiCorrespondance, bool bOptimise=false)
 ~Plan ()
bool Load (const std::string &filename)
 Charge le fichier des lignes.
bool SetEtapes (const etapes_t &etapes)
 Assigne les etapes.
void Trajet (const std::string &from, const std::string &to)
 Calcul le trajet le plus court.
bool StationExists (const std::string &station) const
 Verifie si la station existe sur le plan.

Fonctions membres protégées

void Add (const std::string &ligne, const std::string &station)
 Ajoute une station à une ligne.
void Create (graph_t &g, int &nEtape, const etapes_t &etapes)
 Crée le plan pour une étape.
void CreateCorrespondance (graph_t &g, const StationData &stationData, int temps, int nEtape)
 Crée une correspondance.
bool IsStationEtape (const station::Data &stationData) const
 La station est elle une etape.
const std::string & GetFileStationName (const std::string &ligne, const std::string &station) const
 Recupere le nom de la station tel qu'il est dans le fichier.

Fonctions membres protégées statiques

static std::string Clean (const std::string &station)
 Nettoie le nom de la station.
static std::string FormatTemps (size_t temps)
 Format l'heure.

Types privés

typedef Graph< id_stationgraph_t
 Graph.
typedef graph_t::solution_t solution_t
 Solution.
typedef std::list< std::string > ligne_t
 Une ligne de métro est une liste de nom de station.
typedef std::map< std::string,
ligne_t
plan_t
 Liste de l'ensemble des lignes de métro.
typedef std::multimap
< std::string, std::string > 
correspondances_t
 Ensemble des correspondance.
typedef std::vector< std::string > etapes_t
 Container d'étapes.
typedef std::map< std::pair
< std::string, std::string >
, std::string > 
file_names_t
 Permet de retrouver le nom réel du fichier pour une station nettoyée.

Attributs privés

plan_t m_plan
correspondances_t m_correspondances
size_t m_delaiStation
size_t m_delaiCorrespondance
bool m_bOptimise
etapes_t m_etapes
std::list< int > m_etapesFinales
std::set< int > m_etapesId
file_names_t m_fileNames


Description détaillée

cette classe repressente le plan du métro, avec ces lignes, ces stations.

Documentation des définitions de type membres

typedef std::multimap<std::string, std::string> metro::Plan::correspondances_t [private]

typedef std::vector<std::string> metro::Plan::etapes_t [private]

typedef std::map<std::pair<std::string, std::string>, std::string> metro::Plan::file_names_t [private]

typedef std::list<std::string> metro::Plan::ligne_t [private]

typedef std::map<std::string, ligne_t> metro::Plan::plan_t [private]


Documentation des constructeurs et destructeur

Plan::Plan ( size_t  delaiStation,
size_t  delaiCorrespondance,
bool  bOptimise = false 
)

Paramètres:
delaiStation delai entre 2 stations en seconde
delaiCorrespondance delai entre 2 correspondance en seconde
bOptimise optimise la recherche

metro::Plan::~Plan (  )  [inline]


Documentation des fonctions membres

void Plan::Add ( const std::string &  ligne,
const std::string &  station 
) [protected]

Ajoute une station de metro sur une ligne donnée. L'ordre est important, car la station est ajoutée à la fin des stations existantes.

Paramètres:
ligne numéro de la ligne de métro
station nom de la station de métro

std::string Plan::Clean ( const std::string &  station  )  [static, protected]

Cette fonction permet de remplacer tous les caracteres speciaux d'une station par un caractere simple. Ceci permet de pouvoir nommer une station avec ou sans accent / tirets / majuscules

Paramètres:
station nom de la station. Cette variable est modifiée lors de l'appel à la fonction

void Plan::Create ( graph_t g,
int &  nEtape,
const etapes_t etapes 
) [protected]

Cela crée les différent arcs du graph pour les lignes de metro, et pour les correspondances

Paramètres:
g graph
nEtape numéro d'étape
etapes etapes restant à traiter

void Plan::CreateCorrespondance ( graph_t g,
const StationData stationData,
int  temps,
int  nEtape 
) [protected]

Paramètres:
g graph
stationData information sur la station
temps durée en seconde entre la station et les correspondances
nEtape numéro d'etapes à laquelle on veux se connecter

std::string Plan::FormatTemps ( size_t  temps  )  [static, protected]

Paramètres:
temps temps en seconde
Renvoie:
une chaine de caractere au format HH:MM:SS

const std::string & Plan::GetFileStationName ( const std::string &  ligne,
const std::string &  station 
) const [protected]

Paramètres:
ligne nom de la ligne
station nom de la station
Renvoie:
le nom de la station tel qu'il apparait dans le fichier

bool Plan::IsStationEtape ( const station::Data stationData  )  const [protected]

Paramètres:
stationData information sur la station
Renvoie:
true si la station est une etape

bool Plan::Load ( const std::string &  filename  ) 

Le fichier contient l'ensemble des stations rapportées à une ligne donnée. Ce fichier est codé en UTF-16 avec BOM

Paramètres:
filename nom du fichier
Renvoie:
true si le fichier est correctement chargé et valide

bool Plan::SetEtapes ( const etapes_t etapes  ) 

Les etapes sont les stations par lesquelles le trajet doit obligatoirement passer. Si l'option 'optimise' est présente, l'ordre des étapes n'est pas forcement respecté.

Paramètres:
etapes 
Renvoie:
true si les etapes existent dans le plan

bool Plan::StationExists ( const std::string &  station  )  const

Paramètres:
station nom de la station
Renvoie:
true si la station existe su le reseau

void Plan::Trajet ( const std::string &  sDepart,
const std::string &  sArrivee 
)

effectue la recherche du trajet le plus court entre 2 stations. L'algorithme utilisé celui de Dijkstra.

Paramètres:
sDepart nom de la station de départ
sArrivee nom de la station d'arrivée


Documentation des données membres

bool metro::Plan::m_bOptimise [private]

size_t metro::Plan::m_delaiStation [private]

std::list<int> metro::Plan::m_etapesFinales [private]

std::set<int> metro::Plan::m_etapesId [private]


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

Généré le Sun Jun 14 14:02:24 2009 pour Balade dans le métro Parisien par  doxygen 1.5.9