Fichier source en cours : FW - CommandLineManager.h






Voici le code source cpp :




	#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