toolsandutils/e32tools/elf2e32/source/parameterlistinterface.h
changeset 0 83f4b4db085c
child 10 d4b442d23379
child 61 b376866b09e6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/parameterlistinterface.h	Tue Feb 02 01:39:43 2010 +0200
@@ -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
+