#ifndef PARAMETER_MANAGER_H #define PARAMETER_MANAGER_H namespace fw { /** * \brief Une classe pour gérer les paramètres des arguments d'entrée de * ligne de commande du programme. */ class Parameter { public: Parameter(const std::string& sName); virtual ~Parameter(); // Met un argument du paramètre void PushArgument(const std::string& sArgument); // Récupère le nom du paramètre const std::string& GetName() const; // Récupère un argument const char* GetArgument(uint32 iArgumentNumber) const; // Retourne le nombre d'argument uint32 GetArgumentCount() const; private: std::string m_sName; std::vector<std::string> m_vArguments; }; class CommandLineManager : public Singleton<CommandLineManager> { public: CommandLineManager(int argc, char* argv[]); ~CommandLineManager(); // Est-ce que la ligne de commande a ce paramètre bool HasParameter(const std::string& sParameter); // Le nombre de paramètre uint32 GetParameterCount(); // Récupère le paramètre Parameter* GetParameter(const std::string& sParameter); private: // Evalue la ligne de commande void ParseCommandLineArguments(uint32 iArgumentCount, char* paArguments[]); private: std::map<std::string, Parameter*> m_vParameters; }; } #endif