--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/e32tools/elf2e32/source/messageimplementation.h Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,173 @@
+// 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:
+// Message Implementation Class for elf2e32 tool
+// @internalComponent
+// @released
+//
+//
+
+
+#ifndef _MESSAGE_IMPLEMENTATION_
+#define _MESSAGE_IMPLEMENTATION_
+
+#ifdef _MSC_VER
+ #pragma warning(disable: 4514) // unreferenced inline function has been removed
+ #pragma warning(disable: 4702) // unreachable code
+ #pragma warning(disable: 4710) // function not inlined
+ #pragma warning(disable: 4786) // identifier was truncated to '255' characters in the debug information
+#endif
+
+#include<map>
+#include<string>
+
+typedef std::map<int,char*> Map;
+typedef std::string String;
+
+enum { MAXMSSGNOLENGTH=5, BASEMSSGNO=1000 };
+
+enum { ERROR = 0,
+ WARNING,
+ INFORMATION
+};
+
+enum { FILEOPENERROR=1,
+ FILEREADERROR,
+ FILEWRITEERROR,
+ ELFMAGICERROR,
+ ELFCLASSERROR,
+ ELFABIVERSIONERROR,
+ ELFLEERROR,
+ ELFARMERROR,
+ ELFEXECUTABLEERROR,
+ ELFSHSTRINDEXERROR,
+ NAMELIBRARYNOTCORRECT,
+ ORDINALSEQUENCEERROR,
+ ARGUMENTNAMEERROR,
+ OPTIONNAMEERROR,
+ NOARGUMENTERROR,
+ OPTIONPREFIXERROR,
+ NOREQUIREDOPTIONERROR,
+ NOFILENAMEERROR,
+ INVALIDARGUMENTERROR,
+ HUFFMANBUFFEROVERFLOWERROR,
+ HUFFMANTOOMANYCODESERROR,
+ HUFFMANINVALIDCODINGERROR,
+ CAPABILITYALLINVERSIONERROR,
+ CAPABILITYNONEINVERSIONERROR,
+ UNRECOGNISEDCAPABILITYERROR,
+ NOSTATICSYMBOLSERROR,
+ DLLHASINITIALISEDDATAERROR,
+ DLLHASUNINITIALISEDDATAERROR,
+ ENTRYPOINTCORRUPTERROR,
+ ENTRYPOINTNOTSUPPORTEDERROR,
+ EXCEPTIONDESCRIPTOROUTSIDEROERROR,
+ NOEXCEPTIONDESCRIPTORERROR,
+ NEEDSECTIONVIEWERROR,
+ DSONOTFOUNDERROR,
+ UNDEFINEDSYMBOLERROR,
+ SYMBOLMISSINGFROMELFERROR,
+ MEMORYALLOCATIONERROR,
+ E32IMAGEERROR,
+ INVALIDINVOCATIONERROR,
+ TARGETTYPENOTSPECIFIEDERROR,
+ UNSUPPORTEDTARGETTYPEERROR,
+ INDEXNOMESSAGEERROR,
+ INDEXNOTREQUIREDERROR,
+ INDEXNOTFOUNDERROR,
+ NOMESSAGEFILEERROR,
+ ENTRYPOINTNOTSETERROR,
+ UNDEFINEDENTRYPOINTERROR,
+ ORDINALNOTANUMBER,
+ UNRECOGNIZEDTOKEN,
+ NONAMEMISSING,
+ EXPORTSEXPECTED,
+ ATRATEMISSING,
+ SYSDEFSMISMATCHERROR,
+ SYSDEFERROR,
+ INVALIDE32IMAGEERROR,
+ HUFFMANBUFFERUNDERFLOWERROR,
+ HUFFMANINCONSISTENTSIZEERROR,
+ MULTIPLESYSDEFERROR,
+ SYSDEFNOSYMBOLERROR,
+ VALUEIGNOREDWARNING,
+ ELFFILEERROR,
+ SYMBOLCOUNTMISMATCHERROR,
+ POSTLINKERERROR,
+ BYTEPAIRINCONSISTENTSIZEERROR,
+ ILLEGALEXPORTFROMDATASEGMENT,
+ VALIDATIONERROR
+};
+
+
+/**
+Abstract base Class for Message Implementation.
+@internalComponent
+@released
+*/
+class Message
+{
+ public:
+ virtual ~Message(){};
+ // get error string from message file
+ virtual char * GetMessageString(int errorIndex)=0;
+ // display message to output device
+ virtual void Output(const char *aName) =0;
+ // start logging to a file
+ virtual void StartLogging(char *fileName)=0;
+ // virtual void ReportWarning(int warnIndex,...)=0;
+ virtual void ReportMessage(int aMsgType, int aMsgIndex,...)=0;
+ virtual void CreateMessageFile(char *fileName)=0;
+ virtual void InitializeMessages(char *fileName)=0;
+};
+
+/**
+Class for Message Implementation.
+@internalComponent
+@released
+*/
+class MessageImplementation : public Message
+{
+ public:
+ MessageImplementation();
+ ~MessageImplementation();
+
+ //override base class methods
+ char* GetMessageString(int errorIndex);
+ void Output(const char *aName);
+ void StartLogging(char *fileName);
+ // void ReportWarning(int warnIndex,...);
+ void ReportMessage(int aMsgType, int aMsgIndex,...);
+ void CreateMessageFile(char *fileName);
+ void InitializeMessages(char *fileName);
+ private:
+
+ bool iLogging;
+ char* iLogFileName;
+ FILE *iLogPtr;
+ Map iMessage;
+};
+
+/**
+Structure for Messages.
+@internalComponent
+@released
+*/
+struct EnglishMessage
+{
+ int index;
+ char message[1024];
+};
+
+#endif
+