diff -r c7c26511138f -r 360bd6b35136 imgtools/imgcheck/inc/cmdlinehandler.h --- a/imgtools/imgcheck/inc/cmdlinehandler.h Wed Jun 16 16:51:40 2010 +0300 +++ b/imgtools/imgcheck/inc/cmdlinehandler.h Wed Jun 23 16:56:47 2010 +0800 @@ -1,244 +1,243 @@ -/* -* 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 the License "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: -* CmdLineHandler class declaration. -* @internalComponent -* @released -* -*/ - - -#ifndef CMDLINEHANDLER_H -#define CMDLINEHANDLER_H - -#include "common.h" -#include "exceptionreporter.h" -#include "version.h" -#include "hash.h" -#include -#include - -/** -Tydefs used in this class. - -@internalComponent -@released -*/ - -typedef std::map OptionsMap; -typedef std::map SuppressionsMap; -typedef std::vector ArgumentList; - - -/** -Long options will be intialized into an MAP, this data is used later to -validate the received command line arguments. - -@internalComponent -@released -*/ -const String KLongHelpOption("--help"); -const String KLongXmlOption("--xml"); -const String KLongQuietOption("--quiet"); -const String KLongAllOption("--all"); -const String KLongOutputOption("--output"); -const String KLongVerboseOption("--verbose"); -const String KLongSuppressOption("--suppress"); -const String KLongVidValOption("--vidlist"); -const String KLongSidAllOption("--sidall"); -const String KLongE32InputOption("--e32input"); - -/** -Short options will be intialized into an MAP, this data is used later to -validate the received command line arguments. - -@internalComponent -@released -*/ -const String KShortHelpOption("-h"); -const String KShortXmlOption("-x"); -const String KShortQuietOption("-q"); -const String KShortAllOption("-a"); -const String KShortOutputOption("-o"); -const String KShortVerboseOption("-v"); -const String KShortSuppressOption("-s"); -const String KShortNoCheck("-n"); - -/** -options to enable required Validation - -@internalComponent -@released -*/ -const String KLongEnableDepCheck("--dep"); -const String KLongEnableSidCheck("--sid"); -const String KLongEnableVidCheck("--vid"); -const String KLongEnableDbgFlagCheck("--dbg"); -const String KLongNoCheck("--nocheck"); - -/** -option values to disable specific Validation. - -@internalComponent -@released -*/ -const String KSuppressDependency("dep"); -const String KSuppressSid("sid"); -const String KSuppressVid("vid"); - -/** -To mark whether validaition is enabled or not - -@internalComponent -@released -*/ -const unsigned int KMarkEnable = 0x80000000; - -/** -VID value size - -@internalComponent -@released -*/ -const unsigned int KHexEightByte = 8; -const unsigned int KDecHighValue = 0xFFFFFFFF; - -/** -Applicable values of option suppress or -s, allocate each bit for every Validation. - -@internalComponent -@released -*/ -typedef enum Suppress -{ - EDep = 0x1, - ESid = 0x2, - EVid = 0x4, - EDbg = 0x8, - //While including more checks, define the constants here; - EAllValidation = EDep | ESid | EVid //Add the new check over here. -}; - -/** -Constants to define number of values. - -@internalComponent -@released -*/ -typedef enum NumberOfValue -{ - ENone = 0x0, - ESingle = 0x1, - //Include new number of values here - EMultiple = 0x2, - EOptional -}; - -/** -Prefix to the short option - -@internalComponent -@released -*/ -const char KShortOptionPrefix = '-'; - -/** -XML file extension, if the extension is not provided as part of report name, -this string is appended. - -@internalComponent -@released -*/ -const String KXmlExtension(".xml"); - -/** -Default XML report name, used if the output report name is not passed through -command line. - -@internalComponent -@released -*/ -const String GXmlFileName("imgcheckreport.xml"); - -/** -Tool name - -@internalComponent -@released -*/ -const String KToolName("imgcheck"); - -/** -Constants used validate the input Decimal or Hexadecimal values - -@internalComponent -@released -*/ -const String KHexNumber("0123456789abcdef"); -const String KDecNumber("0123456789"); - -/** -class command line handler - -@internalComponent -@released -*/ -class CmdLineHandler -{ -public: - CmdLineHandler(void); - ~CmdLineHandler(void); - void Usage(void); - void Version(void); - const String& PrintUsage(void) const; - const String& PrintVersion(void) const; - String NextImageName(void); - unsigned int NoOfImages(void) const; - const unsigned int ReportFlag(void) const; - const String& XmlReportName(void) const; - ReturnType ProcessCommandLine(unsigned int aArgc, char* aArgv[]); - void ValidateArguments(void) const; - const unsigned int EnabledValidations(void) const; - UnIntList& VidValueList(void); - const String& Command(void) const; - bool DebuggableFlagVal(void); - void ValidateImageNameList(void); - void ValidateE32NoCheckArguments(void); - -private: - bool IsOption(const String& aName, int& aLongOptionFlag); - bool Validate(const String& aName, bool aOptionValue, unsigned int aNoOfVal); - void NormaliseName(void); - void ParseOption(const String& aFullName, String& aOptionName, StringList& aOptionValues, bool& aOptionValue); - void HandleImage(const String& aImageName); - void StringListToUnIntList(StringList& aStrList, UnIntList& aUnIntList); - bool AlreadyReceived(String& aName); - -private: - StringList iImageNameList; - OptionsMap iOptionMap; - SuppressionsMap iSuppressVal; - UnIntList iVidValList; - bool iDebuggableFlagVal; - String iInputCommand; - String iXmlFileName; - bool iNoImage; - unsigned int iCommmandFlag; - unsigned int iValidations; - unsigned int iSuppressions; - String iVersion; - String iUsage; -}; - -#endif //CMDLINEHANDLER_H +/* +* 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 the License "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: +* CmdLineHandler class declaration. +* @internalComponent +* @released +* +*/ + + +#ifndef CMDLINEHANDLER_H +#define CMDLINEHANDLER_H + +#include "common.h" +#include "exceptionreporter.h" +#include "version.h" +#include "hash.h" + +#include +#include + +/** +Tydefs used in this class. + +@internalComponent +@released +*/ + +typedef map OptionsMap; +typedef map SuppressionsMap; +typedef vector cstrings ; + +/** +Long options will be intialized into an MAP, this data is used later to +validate the received command line arguments. + +@internalComponent +@released +*/ +const string KLongHelpOption("--help"); +const string KLongXmlOption("--xml"); +const string KLongQuietOption("--quiet"); +const string KLongAllOption("--all"); +const string KLongOutputOption("--output"); +const string KLongVerboseOption("--verbose"); +const string KLongSuppressOption("--suppress"); +const string KLongVidValOption("--vidlist"); +const string KLongSidAllOption("--sidall"); +const string KLongE32InputOption("--e32input"); + +/** +Short options will be intialized into an MAP, this data is used later to +validate the received command line arguments. + +@internalComponent +@released +*/ +const string KShortHelpOption("-h"); +const string KShortXmlOption("-x"); +const string KShortQuietOption("-q"); +const string KShortAllOption("-a"); +const string KShortOutputOption("-o"); +const string KShortVerboseOption("-v"); +const string KShortSuppressOption("-s"); +const string KShortNoCheck("-n"); + +/** +options to enable required Validation + +@internalComponent +@released +*/ +const string KLongEnableDepCheck("--dep"); +const string KLongEnableSidCheck("--sid"); +const string KLongEnableVidCheck("--vid"); +const string KLongEnableDbgFlagCheck("--dbg"); +const string KLongNoCheck("--nocheck"); + +/** +option values to disable specific Validation. + +@internalComponent +@released +*/ +const string KSuppressDependency("dep"); +const string KSuppressSid("sid"); +const string KSuppressVid("vid"); + +/** +To mark whether validaition is enabled or not + +@internalComponent +@released +*/ +const unsigned int KMarkEnable = 0x80000000; + +/** +VID value size + +@internalComponent +@released +*/ +const unsigned int KHexEightByte = 8; +const unsigned int KDecHighValue = 0xFFFFFFFF; + +/** +Applicable values of option suppress or -s, allocate each bit for every Validation. + +@internalComponent +@released +*/ +typedef enum Suppress +{ + EDep = 0x1, + ESid = 0x2, + EVid = 0x4, + EDbg = 0x8, + //While including more checks, define the constants here; + EAllValidation = EDep | ESid | EVid //Add the new check over here. +}; + +/** +Constants to define number of values. + +@internalComponent +@released +*/ +typedef enum NumberOfValue +{ + ENone = 0x0, + ESingle = 0x1, + //Include new number of values here + EMultiple = 0x2, + EOptional +}; + +/** +Prefix to the short option + +@internalComponent +@released +*/ +const char KShortOptionPrefix = '-'; + +/** +XML file extension, if the extension is not provided as part of report name, +this string is appended. + +@internalComponent +@released +*/ +const char KXmlExtension[] = ".xml"; + +/** +Default XML report name, used if the output report name is not passed through +command line. + +@internalComponent +@released +*/ +const char GXmlFileName[] = "imgcheckreport.xml"; + +/** +Tool name + +@internalComponent +@released +*/ +const char KToolName[] = "imgcheck"; + +/** +Constants used validate the input Decimal or Hexadecimal values + +@internalComponent +@released +*/ +const char KHexNumber[] = "0123456789abcdef"; +const char KDecNumber[] = "0123456789"; +/** +class command line handler + +@internalComponent +@released +*/ +class CmdLineHandler +{ +public: + CmdLineHandler(void); + ~CmdLineHandler(void); + void Usage(void); + void Version(void); + const string& PrintUsage(void) const; + const string& PrintVersion(void) const; + const char* NextImageName(void); + unsigned int NoOfImages(void) const; + const unsigned int ReportFlag(void) const; + const string& XmlReportName(void) const; + ReturnType ProcessCommandLine(unsigned int aArgc, char* aArgv[]); + void ValidateArguments(void) const; + const unsigned int EnabledValidations(void) const; + UnIntList& VidValueList(void); + const string& Command(void) const; + bool DebuggableFlagVal(void); + void ValidateImageNameList(void); + void ValidateE32NoCheckArguments(void); + +private: + bool IsOption(const char* aName, int& aLongOptionFlag); + bool Validate(const string& aName, bool aOptionValue, unsigned int aNoOfVal); + void NormaliseName(void); + void ParseOption(char* aFullName, cstrings& aOptionValues, bool& aOptionValue); + void HandleImage(const char* aImageName); + void StringListToUnIntList(cstrings& aStrList, UnIntList& aUnIntList); + bool AlreadyReceived(const char* aName); + +private: + cstrings iImageNameList; + OptionsMap iOptionMap; + SuppressionsMap iSuppressVal; + UnIntList iVidValList; + bool iDebuggableFlagVal; + string iInputCommand; + string iXmlFileName; + bool iNoImage; + unsigned int iCommmandFlag; + unsigned int iValidations; + unsigned int iSuppressions; + string iVersion; + string iUsage; +}; + +#endif //CMDLINEHANDLER_H