--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/e32tools/elf2e32/source/errorhandler.h Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,356 @@
+// 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:
+// Error Handler Classes for elf2e32 tool
+// @internalComponent
+// @released
+//
+//
+
+
+#ifndef _ERROR_HANDLER_
+#define _ERROR_HANDLER_
+
+#include "messagehandler.h"
+#include <list>
+#include <string>
+
+using std::list;
+typedef std::string String;
+
+/**
+Base class from which all other error handler classes are derived from.
+@internalComponent
+@released
+*/
+class ErrorHandler
+{
+ public:
+ ErrorHandler(int aMessageIndex);
+ virtual ~ErrorHandler();
+ virtual void Report() =0;
+
+ String iMessage;
+ int iMessageIndex;
+};
+
+/**
+Base class for File Errors.
+@internalComponent
+@released
+*/
+class FileError : public ErrorHandler
+{
+ public:
+ FileError(int aMessageIndex, char * aName);
+ virtual ~FileError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Base class for ELFFormat Errors.
+@internalComponent
+@released
+*/
+class ELFFormatError : public ErrorHandler
+{
+ public:
+ ELFFormatError(int aMessageIndex, char * aName);
+ virtual ~ELFFormatError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Base class for DEF File Errors.
+@internalComponent
+@released
+*/
+class DEFFileError : public ErrorHandler
+{
+ public:
+ DEFFileError(int aMessageIndex, char * aName, int aLineNo,char * aToken);
+ virtual ~DEFFileError();
+ void Report();
+
+ String iName;
+ int iLineNo;
+ String iToken;
+};
+
+/**
+Base class for Parameter Parser Errors.
+@internalComponent
+@released
+*/
+class ParameterParserError : public ErrorHandler
+{
+ public:
+ ParameterParserError(int aMessageIndex, char * aName);
+ virtual ~ParameterParserError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Class for Invalid Argument Errors.
+@internalComponent
+@released
+*/
+class InvalidArgumentError : public ErrorHandler
+{
+ public:
+ InvalidArgumentError(int aMessageIndex, const char * aValue, char * aOption);
+ virtual ~InvalidArgumentError();
+ void Report();
+
+ String iValue;
+ String iOption;
+};
+
+/**
+Base class for E32Image Compression Errors.
+@internalComponent
+@released
+*/
+class E32ImageCompressionError : public ErrorHandler
+{
+ public:
+ E32ImageCompressionError(int aMessageIndex);
+ virtual ~E32ImageCompressionError();
+ void Report();
+};
+
+/**
+Base class for Capability Errors.
+@internalComponent
+@released
+*/
+class CapabilityError : public ErrorHandler
+{
+ public:
+ CapabilityError(int aMessageIndex);
+ virtual ~CapabilityError();
+ void Report();
+};
+
+/**
+Class for handling Unrecognised Capability Errors.
+@internalComponent
+@released
+*/
+class UnrecognisedCapabilityError : public CapabilityError
+{
+ public:
+ UnrecognisedCapabilityError(int aMessageIndex, char * aName);
+ ~UnrecognisedCapabilityError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Base class for ELF File Errors.
+@internalComponent
+@released
+*/
+class ELFFileError : public ErrorHandler
+{
+ public:
+ ELFFileError(int aMessageIndex, const char * aName);
+ virtual ~ELFFileError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Class for handling Undefined Symbol Errors.
+@internalComponent
+@released
+*/
+class UndefinedSymbolError : public ELFFileError
+{
+public:
+ UndefinedSymbolError(int aMessageIndex, char * aName, char *aSymbolName);
+ ~UndefinedSymbolError();
+ void Report();
+
+ String iSymbolName;
+};
+
+/**
+Class for handling Import relocation to Data segment
+@internalComponent
+@released
+*/
+class ImportRelocationError : public ELFFileError
+{
+public:
+ ImportRelocationError(int aMessageIndex, char * aName, char *aSymbolName);
+ ~ImportRelocationError();
+ void Report();
+
+ String iSymbolName;
+};
+
+/**
+Class for handling Symbol Missing From Elf Errors.
+@internalComponent
+@released
+*/
+class SymbolMissingFromElfError : public ELFFileError
+{
+ public:
+ SymbolMissingFromElfError(int aMessageIndex, list<String> &aSymbolList, const char * aName);
+ virtual ~SymbolMissingFromElfError();
+ void Report();
+
+ String iSymbolNames;
+};
+
+/**
+Class for handling Memory Allocation Errors.
+@internalComponent
+@released
+*/
+class MemoryAllocationError : public ErrorHandler
+{
+ public:
+ MemoryAllocationError(int aMessageIndex, char * aName);
+ virtual ~MemoryAllocationError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Class for handling E32 Image Errors.
+@internalComponent
+@released
+*/
+class E32ImageError : public ErrorHandler
+{
+public:
+ E32ImageError(int aMessageIndex);
+ ~E32ImageError();
+ void Report();
+};
+
+/**
+Class for handling Invalid Invocation Errors.
+@internalComponent
+@released
+*/
+class InvalidInvocationError : public ErrorHandler
+{
+public:
+ InvalidInvocationError(int aMessageIndex);
+ ~InvalidInvocationError();
+ void Report();
+};
+
+/**
+Base class for handling Target Type Errors.
+@internalComponent
+@released
+*/
+class TargetTypeError : public ErrorHandler
+{
+public:
+ TargetTypeError(int aMessageIndex);
+ ~TargetTypeError();
+ void Report();
+};
+
+/**
+Class for handling Unsupported Target Type Errors.
+@internalComponent
+@released
+*/
+class UnsupportedTargetTypeError : public TargetTypeError
+{
+public:
+ UnsupportedTargetTypeError(int aMessageIndex, char * aName);
+ ~UnsupportedTargetTypeError();
+ void Report();
+
+ String iName;
+};
+
+/**
+Class for handling Message Errors.
+@internalComponent
+@released
+*/
+class MessageError : public ErrorHandler
+{
+public:
+ MessageError(int aMessageIndex, int aIndexValue);
+ ~MessageError();
+ void Report();
+
+ int iIndexValue;
+};
+
+/**
+Class for handling No Message File Errors.
+@internalComponent
+@released
+*/
+class NoMessageFileError : public ErrorHandler
+{
+public:
+ NoMessageFileError(int aMessageIndex);
+ ~NoMessageFileError();
+ void Report();
+};
+
+/**
+Class for handling Symbol that are passed through --sysdef
+not matching with the ones in the DEF file.
+@internalComponent
+@released
+*/
+class SysDefMismatchError : public ErrorHandler
+{
+ public:
+ SysDefMismatchError(int aMessageIndex, list<String> &aSymbolList, const char * aName);
+ virtual ~SysDefMismatchError();
+ void Report();
+
+ String iName;
+ String iSymbolNames;
+};
+
+/**
+Class for handling Invalid E32 Image Error
+@internalComponent
+@released
+*/
+class InvalidE32ImageError : public ErrorHandler
+{
+ public:
+ InvalidE32ImageError(int aMessageIndex, char * aName);
+ virtual ~InvalidE32ImageError();
+ void Report();
+
+ String iName;
+};
+
+#endif
+