Updates to CompatibilityAnalyser
- The Tool should now work with Symbian^4
- Some minor bug fixes related to Qt headers in the Symbian Platform
/** Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved.* This component and the accompanying materials are made available* under the terms of "Eclipse Public License v1.0"* which accompanies this distribution, and is available* at the URL "http://www.eclipse.org/legal/epl-v10.html".** Initial Contributors:* Nokia Corporation - initial contribution.** Contributors:** Description: **/#ifndef __COMMAND_LINE_H__#define __COMMAND_LINE_H__#include "CmdGlobals.h"#ifdef __WIN__#pragma warning(disable:4786)#endif#include <string>#include <map>#include <set>using namespace std;typedef pair<string, string> mapentry;/*** The class CommandLine handles the command line parsing and represents* the options for the program in an easy way.*/class CommandLine {// constructors & destructorspublic: /** * Constructor */ CommandLine(); /** * Constructor * @param args commanline argument as pointer to string * @param argc argument count */ CommandLine(char** args, int argc); /** * Destructor */ ~CommandLine();// public methodspublic: /** * Returns the parameter value for a given parameter. * * @param parm parameter to get * @return parameter value * @exception throw an exception if illegal parameter is requested. */ string getParameter(string parm); /** * Get parameters * @return map of parameters */ const map <string, string>& getParameters(); /** * Check if the asked parameter is given * @param parm parameter name * @return true if the asked parameter is given */ bool parameterExists(const string& parm); /** * Validate parameters. Returns a string containing mismatching/insufficiently * specified parameters if there are any mismatches. Otherwise returns a string * of zero length. * @return error string consisting of invalid parameters. */ string validateParameters(); /** * Check if the given parameter value is valid * @param parm parameter to check * @param val parameter value to check */ void validParamValue(string parm, string val);// private methodsprivate: /** * Inserts a parameter into parameter validation lists. * This is *NOT* the same as storeParameter, which stores * the actual parameter value of a command line parm. * * Parameter to be inserted can require a specifier/no * specifier, and can be optional/mandatory * * @param parmname name of the paramter to insert * @param specifierRequired if required, this true * @param optional true if parameter is optional */ void insertParameter(string parmname, bool specifierRequired, bool optional = true); /** * Initialize acceptable parameters list * * Define which parameters are valid and which additionally require a string * after them (dir etc), and which are mandatory (ie. modal, ie. non-optional) * Also assign the initial values for epocroot directories. * * See documentation for exact meaning of each parameter. */ void initializeAcceptableParametersList(); /** * Stores a parameter. Actual functionality depends on parameter type * (was it a command-line parameter [overrides environmental variables and * command file variables], a command-file parameter [overrides environmental * variables] or an environmental variable) * In other words, it's not possible for a command-file parameter or * an environment variable to replace any parameter that has been * specified on command-line; respectively, command-line argument * will always override any other type of argument, no matter where it * was earlier defined. * * Throws an exception if no specifier is given to a parameter that * requires one (e.g. -baselinedir requires a specifier [directory], * whereas -recursive doesn't) * * @param parm parameter to store * @param val parameter value to store * @param parmtype commandline or commandfile * @exception an exeption is thrown if no specifier is given to a parameter * that requires one (e.g. -baselinedir requires a specifier [directory], * whereas -recursive doesn't) */ void storeParameter(string parm, string val, int parmtype = EParmCommandLine); /** * Parses the command line parameters and stores them to public instance * variables. * @param params list of params * @param count count params * @param parmtype defaulttype=EParmCommandLine */ void parse(char** params, size_t count, int parmtype = EParmCommandLine); /** * Show commandline options and exit programe * Not enough options are given, so options list is shown and * the program is exited */ void showCommandLineOptionsAndExit();// Private instance variablesprivate: //! All the parameters that the program accepts map <string, string> iAcceptableParameterMap; //! Map of parameters map <string, string> iParameterMap; //! These command line parameters require option set <string> parameterSpecifierSet; //! These command line parameters are required set <string> requiredParametersSet; //! True if the parameters are valid int iParametersValid; //! Command line arguments char** iArgList; //! Count of command line arguments int iArgCount;};#endif