e32tools/elf2e32/source/errorhandler.cpp
changeset 2 39c28ec933dd
equal deleted inserted replaced
1:820b22e13ff1 2:39c28ec933dd
       
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Error Handler Operations for elf2e32 tool
       
    15 // @internalComponent
       
    16 // @released
       
    17 // 
       
    18 //
       
    19 
       
    20 #ifdef _MSC_VER
       
    21 	#pragma warning(disable: 4514) // unreferenced inline function has been removed
       
    22 	#pragma warning(disable: 4702) // unreachable code
       
    23 	#pragma warning(disable: 4710) // function not inlined
       
    24 #endif
       
    25 
       
    26 #include "errorhandler.h"
       
    27 #include "messagehandler.h"
       
    28 #include <iostream>
       
    29 #include <cstdio>
       
    30 #include <cstring>
       
    31 
       
    32 using std::cerr;
       
    33 using std::endl;
       
    34 
       
    35 char *errMssgPrefix="elf2e32 : Error: E";
       
    36 char *colonSpace=": ";
       
    37 
       
    38 /**
       
    39 ErrorHandler constructor for doing common thing required for derived class functions.
       
    40 @param aMessageIndex - Message Index
       
    41 @internalComponent
       
    42 @released
       
    43 */
       
    44 ErrorHandler::ErrorHandler(int aMessageIndex)
       
    45 {
       
    46 	char mssgNo[MAXMSSGNOLENGTH];
       
    47 	int mssgIndex;
       
    48 	
       
    49 	iMessageIndex=aMessageIndex;
       
    50 	iMessage=errMssgPrefix;
       
    51 	mssgIndex=BASEMSSGNO+iMessageIndex;
       
    52 	sprintf(mssgNo,"%d",mssgIndex);
       
    53 	iMessage+=mssgNo;
       
    54 	iMessage+=colonSpace;
       
    55 };
       
    56 
       
    57 /**
       
    58 ErrorHandler destructor.
       
    59 @internalComponent
       
    60 @released
       
    61 */
       
    62 ErrorHandler::~ErrorHandler()
       
    63 {
       
    64 	MessageHandler::CleanUp();
       
    65 }
       
    66 
       
    67 /**
       
    68 FileError constructor for initializing message index and argument name.
       
    69 @param aMessageIndex - Message Index
       
    70 @param aName - File name
       
    71 @internalComponent
       
    72 @released
       
    73 */
       
    74 FileError:: FileError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
    75 {
       
    76 }
       
    77 
       
    78 /**
       
    79 FileError destructor.
       
    80 @internalComponent
       
    81 @released
       
    82 */
       
    83 FileError:: ~FileError()
       
    84 {
       
    85 }
       
    86 
       
    87 /**
       
    88 Function to report File Errors.
       
    89 @internalComponent
       
    90 @released
       
    91 */
       
    92 void FileError::Report()
       
    93 {
       
    94 	char *tempMssg;
       
    95 	char *errMessage;
       
    96 
       
    97 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
    98 	if(errMessage)
       
    99 	{
       
   100 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   101 		sprintf(tempMssg,errMessage,iName.c_str());
       
   102 		iMessage+=tempMssg;
       
   103 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   104 		delete[] tempMssg;
       
   105 	}
       
   106 }
       
   107 
       
   108 /**
       
   109 ELFFormatError constructor for initializing message index and argument name.
       
   110 @param aMessageIndex - Message Index
       
   111 @param aName - ELF File name
       
   112 @internalComponent
       
   113 @released
       
   114 */
       
   115 ELFFormatError::ELFFormatError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
   116 {
       
   117 
       
   118 }
       
   119 
       
   120 /**
       
   121 ELFFormatError destructor.
       
   122 @internalComponent
       
   123 @released
       
   124 */
       
   125 ELFFormatError::~ELFFormatError()
       
   126 {
       
   127 
       
   128 }
       
   129 
       
   130 /**
       
   131 Function to report ELF Format Errors.
       
   132 @internalComponent
       
   133 @released
       
   134 */
       
   135 void ELFFormatError::Report()
       
   136 {
       
   137 	char *tempMssg;
       
   138 	char *errMessage;
       
   139 	
       
   140 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   141 	if(errMessage)
       
   142 	{
       
   143 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   144 		sprintf(tempMssg,errMessage,iName.c_str());
       
   145 		iMessage+=tempMssg;
       
   146 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   147 		delete tempMssg;
       
   148 	}
       
   149 }
       
   150 
       
   151 /**
       
   152 DEFFileError constructor for initializing message index, argument name and line number and token.
       
   153 @param aMessageIndex - Message Index
       
   154 @param aName - DEF File name
       
   155 @param aLineNo - DEF File line number
       
   156 @param aToken - Token in export entry
       
   157 @internalComponent
       
   158 @released
       
   159 */
       
   160 DEFFileError::DEFFileError(int aMessageIndex, char * aName, int aLineNo,char * aToken) : ErrorHandler(aMessageIndex), iName(aName), iLineNo(aLineNo)
       
   161 {
       
   162 	iToken=aToken;
       
   163 	if(iToken[iToken.size()-1]=='\r')
       
   164 		iToken[iToken.size()-1]='\0';
       
   165 }
       
   166 
       
   167 /**
       
   168 DEFFileError destructor.
       
   169 @internalComponent
       
   170 @released
       
   171 */
       
   172 DEFFileError::~DEFFileError()
       
   173 {
       
   174 }
       
   175 
       
   176 /**
       
   177 Function to report DEF File Errors.
       
   178 @internalComponent
       
   179 @released
       
   180 */
       
   181 void DEFFileError::Report()
       
   182 {
       
   183 	char *tempMssg;
       
   184 	char *errMessage;
       
   185 	
       
   186 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   187 	if(errMessage)
       
   188 	{
       
   189 		tempMssg = new char[strlen(errMessage)+5+strlen(iName.c_str())+strlen(iToken.c_str())];
       
   190 		sprintf(tempMssg,errMessage,iName.c_str(),iLineNo,iToken.c_str());
       
   191 		iMessage+=tempMssg;
       
   192 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   193 		delete tempMssg;
       
   194 	}
       
   195 }
       
   196 
       
   197 /**
       
   198 ParameterParserError constructor for initializing message index and argument name.
       
   199 @param aMessageIndex - Message Index
       
   200 @Param aName - Argument name
       
   201 @internalComponent
       
   202 @released
       
   203 */
       
   204 ParameterParserError::ParameterParserError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
   205 {
       
   206 }
       
   207 
       
   208 /**
       
   209 ParameterParserError destructor.
       
   210 @internalComponent
       
   211 @released
       
   212 */
       
   213 ParameterParserError::~ParameterParserError()
       
   214 {
       
   215 }
       
   216 
       
   217 /**
       
   218 Function to report Parameter Parser Error.
       
   219 @internalComponent
       
   220 @released
       
   221 */
       
   222 void ParameterParserError::Report()
       
   223 {
       
   224 	char *tempMssg;
       
   225 	char *errMessage;
       
   226 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   227 
       
   228 	if(errMessage)
       
   229 	{
       
   230 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   231 		sprintf(tempMssg,errMessage,iName.c_str());
       
   232 		iMessage+=tempMssg;
       
   233 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   234 		delete tempMssg;
       
   235 	}
       
   236 }
       
   237 
       
   238 /**
       
   239 InvalidArgumentError constructor for initializing message index, argument value and option.
       
   240 @param aMessageIndex - Message Index
       
   241 @param aValue - Argument value
       
   242 @param aOption - Argument option
       
   243 @internalComponent
       
   244 @released
       
   245 */
       
   246 InvalidArgumentError::InvalidArgumentError(int aMessageIndex, const char * aValue, char * aOption) : ErrorHandler(aMessageIndex), iValue(aValue), iOption(aOption)
       
   247 {
       
   248 }
       
   249 
       
   250 /**
       
   251 InvalidArgumentError destructor.
       
   252 @internalComponent
       
   253 @released
       
   254 */
       
   255 InvalidArgumentError::~InvalidArgumentError()
       
   256 {
       
   257 }
       
   258 
       
   259 /**
       
   260 Function to report Invalid Argument Error.
       
   261 @internalComponent
       
   262 @released
       
   263 */
       
   264 void InvalidArgumentError::Report()
       
   265 {
       
   266 	char *tempMssg;
       
   267 	char *errMessage;
       
   268 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   269 
       
   270 	if(errMessage)
       
   271 	{
       
   272 		tempMssg = new char[strlen(errMessage)+strlen(iValue.c_str())+strlen(iOption.c_str())];
       
   273 		sprintf(tempMssg,errMessage,iValue.c_str(),iOption.c_str());
       
   274 		iMessage+=tempMssg;
       
   275 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   276 		delete tempMssg;
       
   277 	}
       
   278 }
       
   279 
       
   280 /**
       
   281 E32ImageCompressionError constructor for initializing message index.
       
   282 @param aMessageIndex - Message Index
       
   283 @internalComponent
       
   284 @released
       
   285 */
       
   286 E32ImageCompressionError::E32ImageCompressionError(int aMessageIndex) : ErrorHandler(aMessageIndex)
       
   287 {
       
   288 }
       
   289 
       
   290 /**
       
   291 E32ImageCompressionError destructor.
       
   292 @internalComponent
       
   293 @released
       
   294 */
       
   295 E32ImageCompressionError::~E32ImageCompressionError()
       
   296 {
       
   297 }
       
   298 
       
   299 /**
       
   300 Function to report E32 Image Compression Error.
       
   301 @internalComponent
       
   302 @released
       
   303 */
       
   304 void E32ImageCompressionError::Report()
       
   305 {
       
   306 	char *errMessage;
       
   307 
       
   308 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   309 	if(errMessage)
       
   310 	{
       
   311 		iMessage+=errMessage;
       
   312 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   313 	}
       
   314 }
       
   315 
       
   316 /**
       
   317 CapabilityError constructor for initializing message index.
       
   318 @param aMessageIndex - Message Index
       
   319 @internalComponent
       
   320 @released
       
   321 */
       
   322 CapabilityError::CapabilityError(int aMessageIndex) : ErrorHandler(aMessageIndex)
       
   323 {
       
   324 }
       
   325 
       
   326 /**
       
   327 CapabilityError destructor.
       
   328 @internalComponent
       
   329 @released
       
   330 */
       
   331 CapabilityError::~CapabilityError()
       
   332 {
       
   333 }
       
   334 
       
   335 /**
       
   336 Function to report Capability Error.
       
   337 @internalComponent
       
   338 @released
       
   339 */
       
   340 void CapabilityError::Report()
       
   341 {
       
   342 	char *errMessage;
       
   343 
       
   344 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   345 	if(errMessage)
       
   346 	{
       
   347 		iMessage+=errMessage;
       
   348 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   349 	}
       
   350 }
       
   351 
       
   352 /**
       
   353 UnrecognisedCapabilityError constructor for initializing message index and argument name.
       
   354 @param aMessageIndex - Message Index
       
   355 @param aName - Capability
       
   356 @internalComponent
       
   357 @released
       
   358 */
       
   359 UnrecognisedCapabilityError::UnrecognisedCapabilityError(int aMessageIndex, char * aName) : CapabilityError(aMessageIndex), iName(aName)
       
   360 {
       
   361 }
       
   362 
       
   363 /**
       
   364 UnrecognisedCapabilityError destructor.
       
   365 @internalComponent
       
   366 @released
       
   367 */
       
   368 UnrecognisedCapabilityError::~UnrecognisedCapabilityError()
       
   369 {
       
   370 }
       
   371 
       
   372 /**
       
   373 Function to report Unrecognised Capability Error.
       
   374 @internalComponent
       
   375 @released
       
   376 */
       
   377 void UnrecognisedCapabilityError::Report()
       
   378 {
       
   379 	char *tempMssg;
       
   380 	char *errMessage;
       
   381 
       
   382 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   383 	if(errMessage)
       
   384 	{
       
   385 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   386 		sprintf(tempMssg,errMessage,iName.c_str());
       
   387 		iMessage+=tempMssg;
       
   388 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   389 		delete tempMssg;
       
   390 	}
       
   391 }
       
   392 
       
   393 /**
       
   394 ELFFileError constructor for initializing message index and argument name.
       
   395 @param aMessageIndex - Message Index
       
   396 @param aName - ELF File name
       
   397 @internalComponent
       
   398 @released
       
   399 */
       
   400 ELFFileError::ELFFileError(int aMessageIndex, const char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
   401 {
       
   402 }
       
   403 
       
   404 /**
       
   405 ELFFileError destructor.
       
   406 @internalComponent
       
   407 @released
       
   408 */
       
   409 ELFFileError::~ELFFileError()
       
   410 {
       
   411 }
       
   412 
       
   413 /**
       
   414 Function to report ELF File Error.
       
   415 @internalComponent
       
   416 @released
       
   417 */
       
   418 void ELFFileError::Report()
       
   419 {
       
   420 	char *tempMssg;
       
   421 	char *errMessage;
       
   422 
       
   423 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   424 	if(errMessage)
       
   425 	{
       
   426 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   427 		sprintf(tempMssg,errMessage,iName.c_str());
       
   428 		iMessage+=tempMssg;
       
   429 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   430 		delete tempMssg;
       
   431 	}
       
   432 }
       
   433 
       
   434 /**
       
   435 UndefinedSymbolError constructor for initializing message index, argument name and symbol name.
       
   436 @param aMessageIndex - Message Index
       
   437 @param aName - File Name
       
   438 @param aSymbolName - Symbol Name
       
   439 @internalComponent
       
   440 @released
       
   441 */
       
   442 UndefinedSymbolError::UndefinedSymbolError(int aMessageIndex, char * aName, char *aSymbolName) : ELFFileError(aMessageIndex,aName), iSymbolName(aSymbolName)
       
   443 {
       
   444 }
       
   445 
       
   446 /**
       
   447 UndefinedSymbolError destructor.
       
   448 @internalComponent
       
   449 @released
       
   450 */
       
   451 UndefinedSymbolError::~UndefinedSymbolError()
       
   452 {
       
   453 }
       
   454 
       
   455 /**
       
   456 Function to report Undefined Symbol Error.
       
   457 @internalComponent
       
   458 @released
       
   459 */
       
   460 void UndefinedSymbolError::Report()
       
   461 {
       
   462 	char *tempMssg;
       
   463 	char *errMessage;
       
   464 	
       
   465 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   466 	if(errMessage)
       
   467 	{
       
   468 		tempMssg = new char[strlen(errMessage)+strlen(iSymbolName.c_str())+strlen(iName.c_str())];
       
   469 		sprintf(tempMssg,errMessage,iSymbolName.c_str(),iName.c_str());
       
   470 		iMessage+=tempMssg;
       
   471 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   472 		delete tempMssg;
       
   473 	}
       
   474 }
       
   475 
       
   476 /**
       
   477 SymbolMissingFromElfError constructor for initializing message index, symbol name list and argument name.
       
   478 @param aMessageIndex - Message Index
       
   479 @param aSymbolList - List of symbols
       
   480 @param aName - File Name
       
   481 @internalComponent
       
   482 @released
       
   483 */
       
   484 SymbolMissingFromElfError::SymbolMissingFromElfError(int aMessageIndex, list<String> &aSymbolList, const char * aName) : ELFFileError(aMessageIndex,aName)
       
   485 {
       
   486 
       
   487 	std::list<String>::iterator aItr = aSymbolList.begin();
       
   488 	std::list<String>::iterator last = aSymbolList.end();
       
   489 
       
   490 	while(aItr != last)
       
   491 	{
       
   492 		iSymbolNames+=*aItr;
       
   493 		aItr++;
       
   494 		if(aItr != last)
       
   495 		{
       
   496 			iSymbolNames+=",";
       
   497 		}
       
   498 	}
       
   499 
       
   500 }
       
   501 
       
   502 /**
       
   503 SymbolMissingFromElfError destructor.
       
   504 @internalComponent
       
   505 @released
       
   506 */
       
   507 SymbolMissingFromElfError::~SymbolMissingFromElfError()
       
   508 {
       
   509 }
       
   510 
       
   511 /**
       
   512 Function to report Symbol Missing From Elf Error.
       
   513 @internalComponent
       
   514 @released
       
   515 */
       
   516 void SymbolMissingFromElfError::Report()
       
   517 {
       
   518 	char *tempMssg;
       
   519 	char *errMessage;
       
   520 
       
   521 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   522 	if(errMessage)
       
   523 	{
       
   524 		tempMssg = new char[strlen(errMessage)+strlen(iSymbolNames.c_str())+strlen(iName.c_str())];
       
   525 		sprintf(tempMssg,errMessage,iSymbolNames.c_str(),iName.c_str());
       
   526 		iMessage+=tempMssg;
       
   527 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   528 		delete tempMssg;
       
   529 	}
       
   530 }
       
   531 
       
   532 /**
       
   533 MemoryAllocationError constructor for initializing message index and argument name.
       
   534 @param aMessageIndex - Message Index
       
   535 @param aName - File Name
       
   536 @internalComponent
       
   537 @released
       
   538 */
       
   539 MemoryAllocationError::MemoryAllocationError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
   540 {
       
   541 }
       
   542 
       
   543 /**
       
   544 MemoryAllocationError destructor.
       
   545 @internalComponent
       
   546 @released
       
   547 */
       
   548 MemoryAllocationError::~MemoryAllocationError()
       
   549 {
       
   550 }
       
   551 
       
   552 /**
       
   553 Function to report Memory Allocation Error.
       
   554 @internalComponent
       
   555 @released
       
   556 */
       
   557 void MemoryAllocationError::Report()
       
   558 {
       
   559 	char *tempMssg;
       
   560 	char *errMessage;
       
   561 
       
   562 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   563 	if(errMessage)
       
   564 	{
       
   565 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   566 		sprintf(tempMssg,errMessage,iName.c_str());
       
   567 		iMessage+=tempMssg;
       
   568 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   569 		delete tempMssg;
       
   570 	}
       
   571 }
       
   572 
       
   573 /**
       
   574 E32ImageError constructor for initializing message index.
       
   575 @param aMessageIndex - Message Index
       
   576 @internalComponent
       
   577 @released
       
   578 */
       
   579 E32ImageError::E32ImageError(int aMessageIndex) : ErrorHandler(aMessageIndex)
       
   580 {
       
   581 }
       
   582 
       
   583 /**
       
   584 E32ImageError destructor.
       
   585 @internalComponent
       
   586 @released
       
   587 */
       
   588 E32ImageError::~E32ImageError()
       
   589 {
       
   590 }
       
   591 
       
   592 /**
       
   593 Function to report E32 Image Error.
       
   594 @internalComponent
       
   595 @released
       
   596 */
       
   597 void E32ImageError::Report()
       
   598 {
       
   599 	char *errMessage;
       
   600 
       
   601 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   602 	if(errMessage)
       
   603 	{
       
   604 		iMessage+=errMessage;
       
   605 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   606 	}
       
   607 }
       
   608 
       
   609 /**
       
   610 InvalidInvocationError constructor for initializing message index.
       
   611 @param aMessageIndex - Message Index
       
   612 @internalComponent
       
   613 @released
       
   614 */
       
   615 InvalidInvocationError::InvalidInvocationError(int aMessageIndex) : ErrorHandler(aMessageIndex)
       
   616 {
       
   617 }
       
   618 
       
   619 /**
       
   620 InvalidInvocationError destructor.
       
   621 @internalComponent
       
   622 @released
       
   623 */
       
   624 InvalidInvocationError::~InvalidInvocationError()
       
   625 {
       
   626 }
       
   627 
       
   628 /**
       
   629 Function to report Invalid Invocation Error.
       
   630 @internalComponent
       
   631 @released
       
   632 */
       
   633 void InvalidInvocationError::Report()
       
   634 {
       
   635 	char *errMessage;
       
   636 
       
   637 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   638 	if(errMessage)
       
   639 	{
       
   640 		iMessage+=errMessage;
       
   641 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   642 	}
       
   643 }
       
   644 
       
   645 /**
       
   646 TargetTypeError constructor for initializing message index.
       
   647 @param aMessageIndex - Message Index
       
   648 @internalComponent
       
   649 @released
       
   650 */
       
   651 TargetTypeError::TargetTypeError(int aMessageIndex) : ErrorHandler(aMessageIndex)
       
   652 {
       
   653 }
       
   654 
       
   655 /**
       
   656 TargetTypeError destructor.
       
   657 @internalComponent
       
   658 @released
       
   659 */
       
   660 TargetTypeError::~TargetTypeError()
       
   661 {
       
   662 }
       
   663 
       
   664 /**
       
   665 Function to report Target Type Error.
       
   666 @internalComponent
       
   667 @released
       
   668 */
       
   669 void TargetTypeError::Report()
       
   670 {
       
   671 	char *errMessage;
       
   672 
       
   673 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   674 	if(errMessage)
       
   675 	{
       
   676 		iMessage+=errMessage;
       
   677 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   678 	}
       
   679 }
       
   680 
       
   681 /**
       
   682 UnsupportedTargetTypeError constructor for initializing message index and argument name.
       
   683 @param aMessageIndex - Message Index
       
   684 @param aName - Target type name
       
   685 @internalComponent
       
   686 @released
       
   687 */
       
   688 UnsupportedTargetTypeError::UnsupportedTargetTypeError(int aMessageIndex, char * aName) : TargetTypeError(aMessageIndex), iName(aName)
       
   689 {
       
   690 }
       
   691 
       
   692 /**
       
   693 UnsupportedTargetTypeError destructor.
       
   694 @internalComponent
       
   695 @released
       
   696 */
       
   697 UnsupportedTargetTypeError::~UnsupportedTargetTypeError()
       
   698 {
       
   699 }
       
   700 
       
   701 /**
       
   702 Function to report Unsupported Target Type Error.
       
   703 @internalComponent
       
   704 @released
       
   705 */
       
   706 void UnsupportedTargetTypeError::Report()
       
   707 {
       
   708 	char *tempMssg;
       
   709 	char *errMessage;
       
   710 
       
   711 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   712 	if(errMessage)
       
   713 	{
       
   714 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   715 		sprintf(tempMssg,errMessage,iName.c_str());
       
   716 		iMessage+=tempMssg;
       
   717 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   718 		delete tempMssg;
       
   719 	}
       
   720 }
       
   721 
       
   722 /**
       
   723 MessageError constructor for initializing message index and index value.
       
   724 @param aMessageIndex - Message Index
       
   725 @param aIndexValue - Value of Index
       
   726 @internalComponent
       
   727 @released
       
   728 */
       
   729 MessageError::MessageError(int aMessageIndex, int aIndexValue) : ErrorHandler(aMessageIndex), iIndexValue(aIndexValue)
       
   730 {
       
   731 }
       
   732 
       
   733 /**
       
   734 MessageError destructor.
       
   735 @internalComponent
       
   736 @released
       
   737 */
       
   738 MessageError::~MessageError()
       
   739 {
       
   740 }
       
   741 
       
   742 /**
       
   743 Function to report Message Errors.
       
   744 @internalComponent
       
   745 @released
       
   746 */
       
   747 void MessageError::Report()
       
   748 {
       
   749 	char *tempMssg;
       
   750 	char *errMessage;
       
   751 	
       
   752 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   753 	if(errMessage)
       
   754 	{
       
   755 		tempMssg = new char[strlen(errMessage)+5];
       
   756 		sprintf(tempMssg,errMessage,iIndexValue);
       
   757 		iMessage+=tempMssg;
       
   758 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   759 		delete tempMssg;
       
   760 	}
       
   761 }
       
   762 
       
   763 /**
       
   764 NoMessageFileError constructor for initializing message index.
       
   765 @param aMessageIndex - Message Index
       
   766 @internalComponent
       
   767 @released
       
   768 */
       
   769 NoMessageFileError::NoMessageFileError(int aMessageIndex) : ErrorHandler(aMessageIndex)
       
   770 {
       
   771 }
       
   772 
       
   773 /**
       
   774 NoMessageFileError destructor.
       
   775 @internalComponent
       
   776 @released
       
   777 */
       
   778 NoMessageFileError::~NoMessageFileError()
       
   779 {
       
   780 }
       
   781 
       
   782 /**
       
   783 Function to report No Message File Error.
       
   784 @internalComponent
       
   785 @released
       
   786 */
       
   787 void NoMessageFileError::Report()
       
   788 {
       
   789 	char *errMessage;
       
   790 
       
   791 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   792 	if(errMessage)
       
   793 	{
       
   794 		iMessage+=errMessage;
       
   795 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   796 	}
       
   797 }
       
   798 
       
   799 /**
       
   800 SysDefMismatchError constructor for initializing message index, symbol name list and argument name.
       
   801 @param aMessageIndex - Message Index
       
   802 @param aSymbolList - list of symbols
       
   803 @param aName - sysdef
       
   804 @internalComponent
       
   805 @released
       
   806 */
       
   807 SysDefMismatchError::SysDefMismatchError(int aMessageIndex, list<String> &aSymbolList, const char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
   808 {
       
   809 
       
   810 	std::list<String>::iterator aItr = aSymbolList.begin();
       
   811 	std::list<String>::iterator last = aSymbolList.end();
       
   812 
       
   813 	while(aItr != last)
       
   814 	{
       
   815 		iSymbolNames+=*aItr;
       
   816 		aItr++;
       
   817 		if(aItr != last)
       
   818 		{
       
   819 			iSymbolNames+=",";
       
   820 		}
       
   821 	}
       
   822 
       
   823 }
       
   824 
       
   825 /**
       
   826 SysDefMismatchError destructor.
       
   827 @internalComponent
       
   828 @released
       
   829 */
       
   830 SysDefMismatchError::~SysDefMismatchError()
       
   831 {
       
   832 }
       
   833 
       
   834 /**
       
   835 Function to report SysDef Mismatch Error.
       
   836 @internalComponent
       
   837 @released
       
   838 */
       
   839 void SysDefMismatchError::Report()
       
   840 {
       
   841 	char *tempMssg;
       
   842 	char *errMessage;
       
   843 
       
   844 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   845 	if(errMessage)
       
   846 	{
       
   847 		tempMssg = new char[strlen(errMessage)+strlen(iSymbolNames.c_str())+strlen(iName.c_str())];
       
   848 		sprintf(tempMssg,errMessage,iSymbolNames.c_str(),iName.c_str());
       
   849 		iMessage+=tempMssg;
       
   850 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   851 		delete tempMssg;
       
   852 	}
       
   853 }
       
   854 
       
   855 /**
       
   856 InvalidE32ImageError constructor for initializing message index and argument name.
       
   857 @param aMessageIndex - Message Index
       
   858 @param aName - E32Image File name
       
   859 @internalComponent
       
   860 @released
       
   861 */
       
   862 InvalidE32ImageError::InvalidE32ImageError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
       
   863 {
       
   864 }
       
   865 
       
   866 /**
       
   867 InvalidE32ImageError destructor.
       
   868 @internalComponent
       
   869 @released
       
   870 */
       
   871 InvalidE32ImageError::~InvalidE32ImageError()
       
   872 {
       
   873 }
       
   874 
       
   875 /**
       
   876 Function to report Invalid E32 Image Error.
       
   877 @internalComponent
       
   878 @released
       
   879 */
       
   880 void InvalidE32ImageError::Report()
       
   881 {
       
   882 	char *tempMssg;
       
   883 	char *errMessage;
       
   884 
       
   885 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   886 	if(errMessage)
       
   887 	{
       
   888 		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
       
   889 		sprintf(tempMssg,errMessage,iName.c_str());
       
   890 		iMessage+=tempMssg;
       
   891 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   892 		delete tempMssg;
       
   893 	}
       
   894 }
       
   895 
       
   896 /**
       
   897 ImportRelocationError constructor for initializing message index, argument name and symbol name.
       
   898 @param aMessageIndex - Message Index
       
   899 @param aName - File Name
       
   900 @param aSymbolName - Symbol Name
       
   901 @internalComponent
       
   902 @released
       
   903 */
       
   904 ImportRelocationError::ImportRelocationError(int aMessageIndex, char * aName, char *aSymbolName) : ELFFileError(aMessageIndex,aName), iSymbolName(aSymbolName)
       
   905 {
       
   906 }
       
   907 
       
   908 /**
       
   909 ImportRelocationError destructor.
       
   910 @internalComponent
       
   911 @released
       
   912 */
       
   913 ImportRelocationError::~ImportRelocationError()
       
   914 {
       
   915 }
       
   916 
       
   917 /**
       
   918 Function to report Import Relocations references to Data Segment Error
       
   919 @internalComponent
       
   920 @released
       
   921 */
       
   922 void ImportRelocationError::Report()
       
   923 {
       
   924 	char *tempMssg;
       
   925 	char *errMessage;
       
   926 	
       
   927 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
   928 	if(errMessage)
       
   929 	{
       
   930 		tempMssg = new char[strlen(errMessage)+strlen(iSymbolName.c_str())+strlen(iName.c_str())];
       
   931 		sprintf(tempMssg,errMessage,iSymbolName.c_str(),iName.c_str());
       
   932 		iMessage+=tempMssg;
       
   933 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   934 		delete tempMssg;
       
   935 	}
       
   936 }
       
   937 
       
   938