imgtools/imglib/filesystem/source/errorhandler.cpp
changeset 620 ad8ffc8e1982
parent 585 238f4cb8391f
parent 617 3a747a240983
child 621 96fee2635b19
equal deleted inserted replaced
585:238f4cb8391f 620:ad8ffc8e1982
     1 /*
       
     2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 * ErrorHandler class receives the message index and the message.
       
    16 * Formats the error message using MessageHandler then writes the
       
    17 * same into the log file and standard output.
       
    18 * @internalComponent
       
    19 * @released
       
    20 *
       
    21 */
       
    22 
       
    23 #include "errorhandler.h"
       
    24 #include "messagehandler.h"
       
    25 
       
    26 char *errMssgPrefix="FileSystem : Error:";
       
    27 char *Gspace=" ";
       
    28 
       
    29 /**
       
    30 ErrorHandler constructor for doing common thing required for derived 
       
    31 class functions.
       
    32 
       
    33 In some error conditions aSubMessage is required to be passed. So overloaded 
       
    34 constructor used here.
       
    35 
       
    36 @internalComponent
       
    37 @released
       
    38 
       
    39 @param aMessageIndex - Message Index
       
    40 @param aSubMessage - Should be displayed  with original message
       
    41 @param aFileName - File name from where the error is thrown
       
    42 @param aLineNumber - Line number from where the error is thrown
       
    43 */
       
    44 ErrorHandler::ErrorHandler(int aMessageIndex, char* aSubMessage, char* aFileName, int aLineNumber)
       
    45                             :iSubMessage(aSubMessage), iFileName(aFileName), iLineNumber(aLineNumber)
       
    46 {
       
    47 	iMessageIndex = aMessageIndex;
       
    48 	iMessage = errMssgPrefix;
       
    49 	iMessage += Gspace;
       
    50 }
       
    51 
       
    52 /**
       
    53 ErrorHandler constructor for doing common thing required for derived 
       
    54 class functions.
       
    55 
       
    56 @internalComponent
       
    57 @released
       
    58 
       
    59 @param aMessageIndex - Message Index
       
    60 @param aFileName - File name from where the error is thrown
       
    61 @param aLineNumber - Line number from where the error is thrown
       
    62 */
       
    63 ErrorHandler::ErrorHandler(int aMessageIndex, char* aFileName, int aLineNumber)
       
    64                             : iFileName(aFileName), iLineNumber(aLineNumber)
       
    65 {
       
    66 	iMessageIndex = aMessageIndex;
       
    67 	iMessage = errMssgPrefix;
       
    68 	iMessage += Gspace;
       
    69 }
       
    70 
       
    71 /**
       
    72 ErrorHandler destructor.
       
    73 
       
    74 @internalComponent
       
    75 @released
       
    76 */
       
    77 ErrorHandler::~ErrorHandler()
       
    78 {
       
    79 	MessageHandler::CleanUp();
       
    80 }
       
    81 
       
    82 /**
       
    83 Function to report the error
       
    84 
       
    85 @internalComponent
       
    86 @released
       
    87 */
       
    88 void ErrorHandler::Report()
       
    89 {
       
    90 	char *tempMssg;
       
    91 	char *errMessage;
       
    92 
       
    93 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
    94 	if(errMessage)
       
    95 	{
       
    96 		tempMssg = new char[strlen(errMessage) + strlen(iFileName.c_str()) + sizeof(int) + strlen(iSubMessage.c_str())];
       
    97 		sprintf(tempMssg, errMessage, iFileName.c_str(), iLineNumber, iSubMessage.c_str());
       
    98 		iMessage += tempMssg;
       
    99 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   100 		delete[] tempMssg;
       
   101 	}
       
   102 }