--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/e32tools/elf2e32/source/parameterlistinterface.h Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,285 @@
+// 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 the ParameterListInterface of the elf2e32 tool
+// @internalComponent
+// @released
+//
+//
+
+#ifndef PARAMETERLISTINTERFACE_H
+#define PARAMETERLISTINTERFACE_H
+
+#ifdef _MSC_VER
+#pragma warning(disable: 4786) // identifier was truncated to '255' characters in the debug information
+#pragma warning(disable: 4702) // unreachable code
+#endif
+
+#include <string>
+#include <vector>
+#include "e32imagedefs.h"
+
+enum ETargetType
+{
+ ETargetTypeNotSet = - 2,
+ EInvalidTargetType = - 1,
+ /** Target type is Library */
+ ELib,
+ /** Target type is DLL */
+ EDll,
+ EExe,
+ EPolyDll,
+ EExexp,
+ EStdExe
+};
+
+typedef unsigned int UINT;
+
+using std::vector;
+/**
+This class is the abstract base class from which ParameterManager is derived.
+
+@internalComponent
+@released
+*/
+class ParameterListInterface
+{
+
+public:
+ typedef vector<char *> LibSearchPaths;
+
+ struct SysDefs
+ {
+ unsigned int iSysDefOrdinalNum;
+ char * iSysDefSymbolName;
+ };
+
+ typedef struct SysDefs Sys;
+
+ typedef std::string string;
+
+ virtual ~ParameterListInterface();
+/**
+This function extracts the DEF file name that is passed as input through the --definput option.
+
+@internalComponent
+@released
+
+@return the name of the input DEF file if provided as input through --definput or 0.
+*/
+ virtual char * DefInput()=0;
+/**
+This function extracts the Elf file name that is passed as input through the --dsoin option.
+
+@internalComponent
+@released
+
+@return the name of the input Elf file if provided as input through --dsoin or 0.
+*/
+ virtual char * ElfInput()=0;
+/**
+This function extracts the E32 image name that is passed as input through the --e32dump option.
+
+@internalComponent
+@released
+
+@return the name of the input E32 image if provided as input through --e32dump or 0.
+*/
+ virtual char * E32Input()=0;
+ virtual bool E32ImageInOption()=0;
+ virtual bool FileDumpOption()=0;
+ virtual int DumpOptions()=0;
+
+/**
+This function extracts the output DEF file name that is passed as input through the --defoutput option.
+
+@internalComponent
+@released
+
+@return the name of the output DEF file if provided as input through --defoutput or 0.
+*/
+ virtual char * DefOutput()=0;
+/**
+This function extracts the DSO file name that is passed as input through the --dso option.
+
+@internalComponent
+@released
+
+@return the name of the output DSO file if provided as input through --dso or 0.
+*/
+ virtual char * DSOOutput()=0;
+/**
+This function extracts the E32 image output that is passed as input through the --output option.
+
+@internalComponent
+@released
+
+@return the name of the output E32 image output if provided as input through --output or 0.
+*/
+ virtual char * E32ImageOutput()=0;
+/**
+This function extracts the target type that is passed as input through the --targettype option.
+
+@internalComponent
+@released
+
+@return the name of the input target type if provided as input through --targettype or 0.
+*/
+ virtual ETargetType TargetTypeName()=0;
+/**
+This function extracts the name of the DLL (that the DSO is to be linked with)
+that is passed as input through the --linkas option.
+
+@internalComponent
+@released
+
+@return the name of the DLL name to be linked with if provided as input through --linkas or 0.
+*/
+ virtual char * LinkAsDLLName()=0;
+/**
+This function extracts the path (where the intermediate libraries should be put)
+that is passed as input through the --libpath option.
+
+@internalComponent
+@released
+
+@return the path if provided as input through --libpath or 0.
+*/
+ virtual LibSearchPaths& LibPath()=0;
+/**
+This function extracts the filename from the absolute path that is given as input.
+
+@internalComponent
+@released
+
+@param aFileName
+The filename alongwith the absolute path.
+
+@return the filename (without the absolute path) for valid input else the filename itself.
+
+*/
+ virtual char * FileName(char * aArg)=0;
+/**
+This function finds out the directory separator '\' in the path
+
+@internalComponent
+@released
+
+@return the directory spearator '\'
+*/
+ virtual char DirectorySeparator()=0;
+/**
+This function finds out if the --definput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --definput option is passed in or False.
+*/
+ virtual bool DefFileInOption()=0;
+/**
+This function finds out if the --elfinput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --elfinput option is passed in or False.
+*/
+ virtual bool ElfFileInOption()=0;
+/**
+This function finds out if the --dso option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --dso option is passed in or False.
+*/
+ virtual bool DSOFileOutOption()=0;
+/**
+This function finds out if the --linkas option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --linkas option is passed in or False.
+*/
+ virtual bool LinkAsOption()=0;
+/**
+This function parses the command line options and sets the appropriate values based on the
+input options.
+
+@internalComponent
+@released
+
+*/
+ virtual void ParameterAnalyser()=0;
+
+ virtual bool LogFileOption()=0;
+ virtual char* LogFile()=0;
+
+ virtual bool E32OutOption()=0;
+ virtual bool DefFileOutOption()=0;
+
+ virtual bool Uid1Option()=0;
+ virtual bool SecureIdOption()=0;
+ virtual bool VendorIdOption()=0;
+
+ virtual bool MessageFileOption()=0;
+ virtual char* MessageFile()=0;
+
+ virtual bool DumpMessageFileOption()=0;
+ virtual char* DumpMessageFile()=0;
+
+ virtual Sys SysDefSymbols(int count)=0;
+
+
+ virtual UINT Uid1() = 0;
+ virtual UINT Uid2() = 0;
+ virtual UINT Uid3() = 0;
+ virtual UINT SecureId() = 0;
+ virtual UINT VendorId() = 0;
+ virtual bool FixedAddress() = 0;
+ virtual bool Compress() = 0;
+ virtual UINT CompressionMethod() = 0;
+ virtual size_t HeapCommittedSize() = 0;
+ virtual size_t HeapReservedSize() = 0;
+ virtual size_t StackCommittedSize() = 0;
+ virtual bool Unfrozen() = 0;
+ virtual bool IgnoreNonCallable() = 0;
+ virtual SCapabilitySet Capability() = 0;
+ virtual int SysDefCount() = 0;
+ virtual char * FileDumpSubOptions() = 0;
+ virtual TProcessPriority Priority() = 0;
+ virtual bool DllDataP() = 0;
+ virtual unsigned int Version() = 0;
+ virtual bool CallEntryPoint() = 0; //{ return true;}
+ virtual UINT FPU() = 0;
+
+ virtual bool IsCodePaged() = 0;
+ virtual bool IsCodeUnpaged() = 0;
+ virtual bool IsCodeDefaultPaged() = 0;
+
+ virtual bool IsDataPaged() = 0;
+ virtual bool IsDataUnpaged() = 0;
+ virtual bool IsDataDefaultPaged() = 0;
+
+ virtual bool ExcludeUnwantedExports() = 0;
+ virtual bool IsCustomDllTarget() = 0;
+ virtual bool SymNamedLookup() = 0;
+ virtual bool IsDebuggable() = 0;
+ virtual bool IsSmpSafe() = 0;
+};
+
+
+#endif // PARAMETERLISTINTERFACE_H
+