imgtools/imglib/filesystem/source/errorhandler.cpp
changeset 2 39c28ec933dd
child 6 787612182dd0
equal deleted inserted replaced
1:820b22e13ff1 2:39c28ec933dd
       
     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 #include <cstring>
       
    26 
       
    27 char const *errMssgPrefix="FileSystem : Error:";
       
    28 char const *Gspace=" ";
       
    29 
       
    30 /**
       
    31 ErrorHandler constructor for doing common thing required for derived 
       
    32 class functions.
       
    33 
       
    34 In some error conditions aSubMessage is required to be passed. So overloaded 
       
    35 constructor used here.
       
    36 
       
    37 @internalComponent
       
    38 @released
       
    39 
       
    40 @param aMessageIndex - Message Index
       
    41 @param aSubMessage - Should be displayed  with original message
       
    42 @param aFileName - File name from where the error is thrown
       
    43 @param aLineNumber - Line number from where the error is thrown
       
    44 */
       
    45 ErrorHandler::ErrorHandler(int aMessageIndex, char* aSubMessage, char* aFileName, int aLineNumber)
       
    46                             :iSubMessage(aSubMessage), iFileName(aFileName), iLineNumber(aLineNumber)
       
    47 {
       
    48 	iMessageIndex = aMessageIndex;
       
    49 	iMessage = errMssgPrefix;
       
    50 	iMessage += Gspace;
       
    51 }
       
    52 
       
    53 /**
       
    54 ErrorHandler constructor for doing common thing required for derived 
       
    55 class functions.
       
    56 
       
    57 @internalComponent
       
    58 @released
       
    59 
       
    60 @param aMessageIndex - Message Index
       
    61 @param aFileName - File name from where the error is thrown
       
    62 @param aLineNumber - Line number from where the error is thrown
       
    63 */
       
    64 ErrorHandler::ErrorHandler(int aMessageIndex, char* aFileName, int aLineNumber)
       
    65                             : iFileName(aFileName), iLineNumber(aLineNumber)
       
    66 {
       
    67 	iMessageIndex = aMessageIndex;
       
    68 	iMessage = errMssgPrefix;
       
    69 	iMessage += Gspace;
       
    70 }
       
    71 
       
    72 /**
       
    73 ErrorHandler destructor.
       
    74 
       
    75 @internalComponent
       
    76 @released
       
    77 */
       
    78 ErrorHandler::~ErrorHandler()
       
    79 {
       
    80 	MessageHandler::CleanUp();
       
    81 }
       
    82 
       
    83 /**
       
    84 Function to report the error
       
    85 
       
    86 @internalComponent
       
    87 @released
       
    88 */
       
    89 void ErrorHandler::Report()
       
    90 {
       
    91 	char *tempMssg;
       
    92 	char *errMessage;
       
    93 
       
    94 	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
       
    95 	if(errMessage)
       
    96 	{
       
    97 		tempMssg = new char[strlen(errMessage) + strlen(iFileName.c_str()) + sizeof(int) + strlen(iSubMessage.c_str())];
       
    98 		sprintf(tempMssg, errMessage, iFileName.c_str(), iLineNumber, iSubMessage.c_str());
       
    99 		iMessage += tempMssg;
       
   100 		MessageHandler::GetInstance()->Output(iMessage.c_str());
       
   101 		delete[] tempMssg;
       
   102 	}
       
   103 }