diff -r 59148e28d9f6 -r 626366955efb toolsandutils/e32tools/elf2e32/source/parametermanager.h --- a/toolsandutils/e32tools/elf2e32/source/parametermanager.h Fri Jun 25 18:24:47 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,451 +0,0 @@ -// Copyright (c) 2004-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: -// Implementation of the Header file for Class ParameterManager of the elf2e32 tool -// @internalComponent -// @released -// -// - -#if !defined(SYMBIAN_PARAMETERMANAGER_H_) -#define SYMBIAN_PARAMETERMANAGER_H_ - -#include "parameterlistinterface.h" -#include -#include -#include - -class UseCaseBase; -class Symbol; - - - -/** -This class is derived from ParameterListInterface (the abstract base class). - -@internalComponent -@released -*/ -class ParameterManager : public ParameterListInterface -{ - -public: - - typedef std::vector ParamList; - - struct OptionDesc - { - char * iName; - const void * iParser; - char * iDoc; - }; - - struct TargetTypeDesc - { - const char * iName; - ETargetType iTargetType; - }; - - struct PriorityValueDesc - { - const char * iName; - TProcessPriority iPriority; - }; - - struct CompressionMethodDesc - { - const char *iMethodName; - UINT iMethodUid; - }; - - /*struct SysDefs - { - int iSysDefOrdinalNum; - char * iSysDefSymbolName; - }; - - typedef struct SysDefs Sys;*/ - - typedef std::string string; - typedef std::less OptionCompare; - typedef std::map OptionMap; - typedef vector LibSearchPaths; - - typedef void (*ParserFn)(ParameterManager *, char *, char *, const OptionDesc *); - - - #define DECLARE_PARAM_PARSER(name) \ - static void name(ParameterManager* aPM, char* aOption, char* aValue, void* aDesc) - - #define DEFINE_PARAM_PARSER(name) \ - void name(ParameterManager * aPM, char * aOption, char* aValue, void * aDesc) - - #define INITIALISE_PARAM_PARSER \ - aOption = aOption; \ - aValue = aValue; \ - aDesc = aDesc; - - DECLARE_PARAM_PARSER(ParseDefInput); - DECLARE_PARAM_PARSER(ParseDSOOutput); - DECLARE_PARAM_PARSER(ParseTargetTypeName); - DECLARE_PARAM_PARSER(ParseLinkAs); - DECLARE_PARAM_PARSER(ParseDefOutput); - DECLARE_PARAM_PARSER(ParseElfInput); - DECLARE_PARAM_PARSER(ParseFileDump); - DECLARE_PARAM_PARSER(ParseE32ImageInput); - DECLARE_PARAM_PARSER(ParseOutput); - DECLARE_PARAM_PARSER(ParseLogFile); - DECLARE_PARAM_PARSER(ParseMessageFile); - DECLARE_PARAM_PARSER(ParseDumpMessageFile); - - DECLARE_PARAM_PARSER(ParamHelp); - DECLARE_PARAM_PARSER(ParseUID1); - DECLARE_PARAM_PARSER(ParseUID2); - DECLARE_PARAM_PARSER(ParseUID3); - - - DECLARE_PARAM_PARSER(ParseCapability); - DECLARE_PARAM_PARSER(ParseSecureId); - DECLARE_PARAM_PARSER(ParseVendorId); - DECLARE_PARAM_PARSER(ParseFixedAddress); - DECLARE_PARAM_PARSER(ParseUncompressed); - DECLARE_PARAM_PARSER(ParseCompressionMethod); - DECLARE_PARAM_PARSER(ParseHeap); - DECLARE_PARAM_PARSER(ParseStackCommitted); - DECLARE_PARAM_PARSER(ParseUnfrozen); - DECLARE_PARAM_PARSER(ParseIgnoreNonCallable); - DECLARE_PARAM_PARSER(ParseLibPaths); - DECLARE_PARAM_PARSER(ParseSysDefs); - DECLARE_PARAM_PARSER(ParseAllowDllData); - DECLARE_PARAM_PARSER(ParsePriority); - DECLARE_PARAM_PARSER(ParseVersion); - DECLARE_PARAM_PARSER(ParseCallEntryPoint); - DECLARE_PARAM_PARSER(ParseFPU); - - DECLARE_PARAM_PARSER(ParsePaged); - DECLARE_PARAM_PARSER(ParseUnpaged); - DECLARE_PARAM_PARSER(ParseDefaultPaged); - - DECLARE_PARAM_PARSER(ParseCodePaging); - DECLARE_PARAM_PARSER(ParseDataPaging); - - DECLARE_PARAM_PARSER(ParseExcludeUnwantedExports); - DECLARE_PARAM_PARSER(ParseIsCustomDllTarget); - DECLARE_PARAM_PARSER(ParseSymNamedLookup); - DECLARE_PARAM_PARSER(ParseDebuggable); - DECLARE_PARAM_PARSER(ParseSmpSafe); - - ParameterManager(int aArgc, char** aArgv); - virtual ~ParameterManager(); - void ParameterAnalyser(); - void SetDefInput(char * aDefInputVal); - void SetDSOOutput(char * aDSOOutputVal); - void SetElfInput(char * aSetElfInput); - void SetE32Input(char * aSetE32Input); - void SetFileDumpOptions(char * aSetE32DumpOptions); - void SetE32Output(char * aSetE32Output); - void SetDefOutput(char * aSetDefOutput); - void SetTargetTypeName(ETargetType aSetTargetTypeName); - void SetLinkDLLName(char * aSetLinkDLLName); - void SetUID1(UINT aSetUINT1); - void SetUID2(UINT aSetUINT2); - void SetUID3(UINT aSetUINT3); - void SetFixedAddress(bool aSetFixedAddress); - void SetCompress(bool aSetCompress); - void SetCompressionMethod(UINT aCompressionMethod); - void SetSecureId(UINT aSetSecureID); - void SetVendorId(UINT aSetVendorID); - void SetHeapCommittedSize(UINT aSetHeapCommittedSize); - void SetHeapReservedSize(UINT aSetHeapReservedSize); - void SetStackCommittedSize(UINT aSetStackCommittedSize); - void SetUnfrozen(bool aVal); - void SetIgnoreNonCallable(bool aVal); - void SetCapability(unsigned int newVal); - void SetCapability(SCapabilitySet & newVal); - void SetSysDefs(unsigned int aSysDefOrdinal, char * aSysDefSymbol, int aCount); - void SetLogFile(char * aSetLogFile); - void SetMessageFile(char *aMessageFile); - void SetDumpMessageFile(char *aDumpMessageFile); - void SetDllDataP(bool newVal); - void SetPriority(TProcessPriority anewVal); - void SetVersion(UINT aSetVersion); - void SetCallEntryPoint(bool aCallEntryPoint); - void SetFPU(UINT aVal); - - void SetCodePaged(bool); - void SetCodeUnpaged(bool); - void SetCodeDefaultPaged(bool); - - void SetDataPaged(bool); - void SetDataUnpaged(bool); - void SetDataDefaultPaged(bool); - - void SetExcludeUnwantedExports(bool aVal); - void SetCustomDllTarget(bool aVal); - void SetSymNamedLookup(bool aVal); - void SetDebuggable(bool aVal); - void SetSmpSafe(bool aVal); - - int NumOptions(); - int NumShortOptions(); - void InitParamParser(); - void ParseCommandLine(); - void RecordImageLocation(); - char * Path(char * aArg); - ETargetType TargetTypeName(); - ETargetType ValidateTargetType(const char * aTargetType); - LibSearchPaths& LibPath(); - char * DefInput(); - char * ElfInput(); - char * E32Input(); - bool DefFileInOption(); - bool DefFileOutOption(); - bool ElfFileInOption(); - bool E32ImageInOption(); - bool FileDumpOption(); - bool DSOFileOutOption(); - bool E32OutOption(); - bool LinkAsOption(); - bool Uid1Option(); - bool SecureIdOption(); - bool VendorIdOption(); - bool SysDefOption(); - bool LogFileOption(); - bool MessageFileOption(); - bool DumpMessageFileOption(); - bool DllDataP(); - TProcessPriority Priority(); - bool PriorityOption(); - bool VersionOption(); - bool CallEntryPoint(); - bool FPUOption(); - - char * DefOutput(); - char * DSOOutput(); - char * E32ImageOutput(); - char * LinkAsDLLName(); - char * FileName(char * aArg); - char * LogFile(); - char * MessageFile(); - char * DumpMessageFile(); - char * FileDumpOptions(); - char * FileDumpSubOptions(); - int DumpOptions(); - int SysDefCount(); - char DirectorySeparator(); - //int SysDefOrdinalNum(); - //char * SysDefSymbol(); - Sys SysDefSymbols(int count); - UINT Uid1(); - UINT Uid2(); - UINT Uid3(); - UINT SecureId(); - UINT VendorId(); - UINT Version(); - bool FixedAddress(); - bool Compress(); - UINT CompressionMethod(); - size_t HeapCommittedSize(); - size_t HeapReservedSize(); - size_t StackCommittedSize(); - bool Unfrozen(); - bool IgnoreNonCallable(); - UseCaseBase * SelectUseCase(); - SCapabilitySet Capability(); - void ParseCapability1(const char * name, const char * end, SCapabilitySet& aCapabilities, bool invert); - void ParseCapabilitiesArg(SCapabilitySet& aCapabilities, const char *aText); - UINT FPU(); - - bool IsCodePaged(); - bool IsCodeUnpaged(); - bool IsCodeDefaultPaged(); - - bool IsDataPaged(); - bool IsDataUnpaged(); - bool IsDataDefaultPaged(); - - bool ExcludeUnwantedExports(); - bool IsCustomDllTarget(); - bool SymNamedLookup(); - bool IsDebuggable(); - bool IsSmpSafe(); - -private: - /** The number of command line arguments passed into the program */ - int iArgc; - - /** The listing of all the arguments */ - char ** iArgv; - - /** REVISIT */ - char * iImageLocation; - - /** REVISIT */ - char * iImageName; - - /** To check if the --targettypeoption (Option to pass the target type of the final image) is provided */ - bool iTargetTypeOption; - - /** To check if the --definput (Option to pass the input DEF File) is passed as input */ - bool iDefFileInOption; - - /** To check if the --defoutput (Option to pass the output DEF File name) is passed as input */ - bool iDefFileOutOption; - - /** To check if the --dump is passed as input */ - bool iFileDumpOption; - - /** To check if the --dso (Option to pass the output DSO File name) is passed as input */ - bool iDSOFileOutOption; - - /** To check if the --output (Option to pass the output image name) is passed as input */ - bool iOutFileOption; - - /** To check if the --elfinput (Option to pass the input Elf File) is passed as input */ - bool iElfFileInOption; - - /** To check if the --e32input (Option to pass the input E32 File) is passed as input */ - bool iE32ImageInOption; - - /** To check if the --linkas (Option to pass DLL name to be linked with) is passed as input */ - bool iLinkAsOption; - - bool iUid1Option; - bool iSecureIDOption; - bool iVendorIDOption; - - /** System level identifier, identifies the general type of a Symbian OS object */ - UINT iUID1; - - /** Interface identifier, distinguishes within a type (i.e.within a UID1) */ - UINT iUID2; - - /** Project identifier, identifies a particular subtype */ - UINT iUID3; - - UINT iSecureID; - - UINT iVendorID; - - bool iCompress; - UINT iCompressionMethod; - - bool iFixedAddress; - - size_t iHeapCommittedSize; - size_t iHeapReservedSize; - size_t iStackCommittedSize; - bool iUnfrozen; - bool iIgnoreNonCallable; - - - /** List of the parameters */ - ParamList iParamList; - - /** The short prefix '-' used for the command line options for the program */ - static const char * iParamShortPrefix; - - /** The normal prefix '--' used for the command line options for the program */ - static const char * iParamPrefix; - - /** The '=' used for passing the arguments to the command line options for the program */ - static const char iParamEquals; - - /** The list of command line options (with normal prefix '--') that will be accepted by the program */ - static const OptionDesc iOptions[]; - - /** The list of command line options (with short prefix '-') that will be accepted by the program */ - static const OptionDesc iShortOptions[]; - - /** The map between the command line option (with normal prefix '--') and the corresponding function */ - OptionMap iOptionMap; - - /** The map between the command line option (with short prefix '-') and the corresponding function */ - OptionMap iShortOptionMap; - - /** The usecase that is selected, could either be LibraryTarget or DLLTarget or EXETarget */ - UseCaseBase *iUseCase; - - /** Target Type that is passed as input to the --targettype option */ - ETargetType iTargetTypeName; - - /** File name of the output DEF file passed as input to the --defoutput option */ - char * iDefOutput; - - /** File name of the output DSO file passed as input to the --dso option */ - char * iDSOOutput; - - /** File name of the output image passed as input to the --output option */ - char * iOutFileName; - - /** File name of the input DEF file passed as input to the --definput option */ - char * iDefInput; - - /** File name of the input DSO file passed as input to the --dsoin option */ - char * iElfInput; - - /** File name of the input E32 image passed as input to the --e32dump option */ - char * iE32Input; - - /** File name of the DLL to be linked with passed as input to the --linkas option */ - char * iLinkDLLName; - - /** Path name of the intermediate libraries passed as input to the --libpath option */ - char * iLibPath; - - int iDumpOptions; - char *iFileDumpSubOptions; - - bool iSysDefOption; - char * iLogFileName; - bool iLogFileOption; - char * iMessageFileName; - bool iMessageFileOption; - char * iDumpMessageFileName; - bool iDumpMessageFileOption; - - bool iDllDataP; - - //vector iLibPathList; - LibSearchPaths iLibPathList; - SCapabilitySet iCapability; - //struct SysDefs iSysDefSymbols[10]; - Sys iSysDefSymbols[10]; - int iSysDefCount; - bool iPriorityOption; - TProcessPriority iPriorityVal; - UINT iVersion; - bool iVersionOption; - bool iCallEntryPoint; - UINT iFPU; - bool iFPUOption; - - int iArgumentCount; - - bool iCodePaged; - bool iCodeUnpaged; - bool iCodeDefaultPaged; - - bool iDataPaged; - bool iDataUnpaged; - bool iDataDefaultPaged; - - bool iExcludeUnwantedExports; - bool iCustomDllTarget; - bool iSymNamedLookup; - bool iDebuggable; - bool iSmpSafe; -}; - - -#endif // !defined(SYMBIAN_PARAMETERMANAGER_H_)