imgtools/imgcheck/src/exceptionimplementation.cpp
changeset 590 360bd6b35136
parent 0 044383f39525
--- a/imgtools/imgcheck/src/exceptionimplementation.cpp	Wed Jun 16 16:51:40 2010 +0300
+++ b/imgtools/imgcheck/src/exceptionimplementation.cpp	Wed Jun 23 16:56:47 2010 +0800
@@ -1,216 +1,203 @@
-/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-* This class is used to log and/or display the error, warning and status
-* messages. This is a sigleton class.
-*
-*/
-
-
-/**
- @file
- @internalComponent
- @released
-*/
-
-#include "exceptionimplementation.h"
-
-enum MessageArraySize{MAX=42};
-
-/**
-Message objects are created and these objects holds the error, warning and status
-message required by imgcheck tool.
-
-@internalComponent
-@released
-*/
-struct Messages MessageArray[MAX]=
-{
-	{UNKNOWNIMAGETYPE, "Error: Image Type Unknown: '%s'"},
-	{UNKNOWNPREFIX,"Error: Option has Un-Known Prefix: '%s'"},
-	{VALUEEXPECTED,"Error: Value expected for option: '%s'"},
-	{VALUENOTEXPECTED,"Error: Value not expected for option: '%s'"},
-	{UNKNOWNOPTION,"Error: Unknown option: '%s'"},
-	{QUIETMODESELECTED,"Error: Quiet mode selected while not generating XML report"},
-	{NOIMAGE,"Error: No images specified in the input"},
-	{NOROMIMAGE,"Warning: ROM image not passed"},
-	{XMLOPTION,"Warning: XML file name specified while not generating XML report"},
-	{NOMEMORY,"Error:%s:%d: Insuffient program memory"},
-	{FILENAMETOOBIG,"Error:'%s':%d: Improper File Name Size"},
-	{XMLNAMENOTVALID,"Error: Not a valid Xml File name"},
-	{REPORTTYPEINVALID,"Error: Not a valid report type"},
-	{FILEOPENFAIL,"Error:%s:%d: Cannot Open file: '%s'"},
-	{XSLCREATIONFAILED,"Warning:%s:%d: Unable to Create XSL file: '%s'"},
-	{UNEXPECTEDNUMBEROFVALUE, "Error: Unexpected number of values received for option: '%s'"},
-	{INVALIDVIDVALUE, "Error: Invalid VID value: '%s'"},
-	{UNKNOWNSUPPRESSVAL, "Error: Unknown suppress value: '%s'"},
-	{ALLCHECKSSUPPRESSED, "Error: All Validations suppressed"},
-	{SUPPRESSCOMBINEDWITHVIDVAL, "Warning: VID values received but VID validation suppressed"},
-	{SIDALLCOMBINEDWITHSID, "Warning: --sidall option received but SID validation suppressed"},
-	{DATAOVERFLOW, "Overflow: Input value '%s'"},
-	{VALIDIMAGE, "Success: Image(s) are valid"},
-	{IMAGENAMEALREADYRECEIVED, "Warning: Image '%s' passed in multiple times, first one is considered and rest are ignored."},
-	{UNKNOWNDBGVALUE , "Error: Invalid value is passed to --dbg, expected values are TRUE or FALSE."},
-	{ONLYSINGLEDIRECTORYEXPECTED , "Error: Only single directory should be passed as input when E32Input is enabled."},
-	{INVALIDDIRECTORY , "Error: Invalid directory or E32 file received as E32Input."},
-	{INCORRECTVALUES , "Warning: The status reported for Dependency and SID check may not be correct in E32 input mode."},
-	{NOVALIDATIONSENABLED , "Error: No validations are enabled."},
-	{NOEXEPRESENT, "Error: No valid executables are present"},
-	{E32INPUTNOTEXIST, "Error: Invalid E32 input '%s'"},
-	{VALIDE32INPUT, "Success: E32 executable(s) are validated"},
-	// Add the New Error and warning messages above this line
-	{GATHERINGDEPENDENCIES,"Gathering dependencies for '%s'"},
-	{WRITINGINTOREPORTER,"'%s' Checker writing data into Reporter"},
-	{COLLECTDEPDATA,"Collecting dependency data for '%s'"},
-	{NOOFEXECUTABLES,"No of executables in '%s': %d"},
-	{NOOFHEXECUTABLES,"No of hidden executables in '%s': %d"},
-	{READINGIMAGE,"Reading image: '%s'"},
-	{GATHERINGIDDATA,"Gathering %s data for '%s'"},
-	{GENERATINGREPORT,"Generating '%s' Report"},
-	{REPORTGENERATION,"Report generation %s"},
-	//Add the new status informations below this line
-	{NODISKSPACE,"Error: No enough disk space for %s"}
-};
-
-/**
-Static variables used to construct singleton class are initialized
-
-@internalComponent
-@released
-*/
-unsigned int ExceptionImplementation::iCmdFlag = 0;
-ExceptionImplementation* ExceptionImplementation::iInstance = KNull;
-
-/**
-Static function provides the way to get the instance of ExceptionImplementation
-class. It takes aCmdFlag as argument, this argument contains the specified 
-commandline options and this flag is used to display the status information to 
-standard output upon receiving verbose mode flag.
-
-@internalComponent
-@released
-
-@param aCmdFlag - has all the options received in commandline.
-
-@return - returns the instance
-*/
-ExceptionImplementation* ExceptionImplementation::Instance(unsigned int aCmdFlag)
-{
-	if(iInstance == KNull)
-	{
-		iCmdFlag = aCmdFlag;
-		iInstance = new ExceptionImplementation();
-	}
-	return iInstance;
-}
-
-/**
-Static function to delete the instance.
-
-@internalComponent
-@released
-*/
-void ExceptionImplementation::DeleteInstance()
-{
-	DELETE(iInstance);
-}
-
-/**
-Constructor opens the output stream and traverses through MessageArray objects to 
-initialize iMessage map. This map is used later to log the messages.
-
-@internalComponent
-@released
-*/
-ExceptionImplementation::ExceptionImplementation()
-:iMsgIndex(0)
-{
-	iLogStream.open(gLogFileName.c_str(),Ios::out);
-	int i;
-	for(i = 0; i < MAX; i++)
-	{
-		iMessage.insert(std::make_pair(MessageArray[i].iIndex,MessageArray[i].iMessage));
-	}
-}
-
-/**
-Destructor closes the output stream opened during construction.
-
-@internalComponent
-@released
-*/
-ExceptionImplementation::~ExceptionImplementation()
-{
-	iLogStream.close();
-}
-
-/**
-Function returns the message equivalent to the recived enum value.
-
-@internalComponent
-@released
-
-@param aMsgIndex - enum value
-*/
-String& ExceptionImplementation::Message(const int aMsgIndex)
-{
-	iMsgIndex = aMsgIndex;
-	return iMessage[aMsgIndex];
-}
-
-/**
-Function to log the error, warning and status information.
-Irrespective of the messgae type all the messages are logged into the imgcheck 
-logfile. The warning and error messages are needed to be displayed on the command
-prompt always. But the status information is displayed at standard output only if
-the verbose mode is selected by the user.
-
-@internalComponent
-@released
-
-@param aMsgIndex - enum value
-*/
-void ExceptionImplementation::Log(const String aMsg)
-{
-	iLogStream <<  aMsg.c_str() << "\n";
-    
-	if(iCmdFlag & KVerbose)
-	{
-		cout << aMsg.c_str() << endl;
-	}
-}
-
-/**
-Function to report the error and warning information.
-Irrespective of the messgae type all the messages are logged into the imgcheck 
-logfile. The warning and error messages are needed to be displayed on the command
-prompt always. 
-
-@internalComponent
-@released
-
-@param aMsgIndex - enum value
-*/
-void ExceptionImplementation::Report(const String aMsg)
-{
-	iLogStream <<  aMsg.c_str() << "\n";
-	if(aMsg.find("Success") != String::npos)
-	{
-		cout << aMsg.c_str() << endl;
-	}
-	else
-	{
-		cerr << aMsg.c_str() << endl;
-	}
-}
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+* This class is used to log and/or display the error, warning and status
+* messages. This is a sigleton class.
+*
+*/
+
+
+/**
+@file
+@internalComponent
+@released
+*/
+
+#include "exceptionimplementation.h"
+
+enum MessageArraySize{MAX=42};
+
+/**
+Message objects are created and these objects holds the error, warning and status
+message required by imgcheck tool.
+
+@internalComponent
+@released
+*/
+struct Messages MessageArray[MAX]= {
+	{UNKNOWNIMAGETYPE, "Error: Image Type Unknown: '%s'"},
+	{UNKNOWNPREFIX,"Error: Option has Un-Known Prefix: '%s'"},
+	{VALUEEXPECTED,"Error: Value expected for option: '%s'"},
+	{VALUENOTEXPECTED,"Error: Value not expected for option: '%s'"},
+	{UNKNOWNOPTION,"Error: Unknown option: '%s'"},
+	{QUIETMODESELECTED,"Error: Quiet mode selected while not generating XML report"},
+	{NOIMAGE,"Error: No images specified in the input"},
+	{NOROMIMAGE,"Warning: ROM image not passed"},
+	{XMLOPTION,"Warning: XML file name specified while not generating XML report"},
+	{NOMEMORY,"Error:%s:%d: Insuffient program memory"},
+	{FILENAMETOOBIG,"Error:'%s':%d: Improper File Name Size"},
+	{XMLNAMENOTVALID,"Error: Not a valid Xml File name"},
+	{REPORTTYPEINVALID,"Error: Not a valid report type"},
+	{FILEOPENFAIL,"Error:%s:%d: Cannot Open file: '%s'"},
+	{XSLCREATIONFAILED,"Warning:%s:%d: Unable to Create XSL file: '%s'"},
+	{UNEXPECTEDNUMBEROFVALUE, "Error: Unexpected number of values received for option: '%s'"},
+	{INVALIDVIDVALUE, "Error: Invalid VID value: '%s'"},
+	{UNKNOWNSUPPRESSVAL, "Error: Unknown suppress value: '%s'"},
+	{ALLCHECKSSUPPRESSED, "Error: All Validations suppressed"},
+	{SUPPRESSCOMBINEDWITHVIDVAL, "Warning: VID values received but VID validation suppressed"},
+	{SIDALLCOMBINEDWITHSID, "Warning: --sidall option received but SID validation suppressed"},
+	{DATAOVERFLOW, "Overflow: Input value '%s'"},
+	{VALIDIMAGE, "Success: Image(s) are valid"},
+	{IMAGENAMEALREADYRECEIVED, "Warning: Image '%s' passed in multiple times, first one is considered and rest are ignored."},
+	{UNKNOWNDBGVALUE , "Error: Invalid value is passed to --dbg, expected values are TRUE or FALSE."},
+	{ONLYSINGLEDIRECTORYEXPECTED , "Error: Only single directory should be passed as input when E32Input is enabled."},
+	{INVALIDDIRECTORY , "Error: Invalid directory or E32 file received as E32Input."},
+	{INCORRECTVALUES , "Warning: The status reported for Dependency and SID check may not be correct in E32 input mode."},
+	{NOVALIDATIONSENABLED , "Error: No validations are enabled."},
+	{NOEXEPRESENT, "Error: No valid executables are present"},
+	{E32INPUTNOTEXIST, "Error: Invalid E32 input '%s'"},
+	{VALIDE32INPUT, "Success: E32 executable(s) are validated"},
+	// Add the New Error and warning messages above this line
+	{GATHERINGDEPENDENCIES,"Gathering dependencies for '%s'"},
+	{WRITINGINTOREPORTER,"'%s' Checker writing data into Reporter"},
+	{COLLECTDEPDATA,"Collecting dependency data for '%s'"},
+	{NOOFEXECUTABLES,"No of executables in '%s': %d"},
+	{NOOFHEXECUTABLES,"No of hidden executables in '%s': %d"},
+	{READINGIMAGE,"Reading image: '%s'"},
+	{GATHERINGIDDATA,"Gathering %s data for '%s'"},
+	{GENERATINGREPORT,"Generating '%s' Report"},
+	{REPORTGENERATION,"Report generation %s"},
+	//Add the new status informations below this line
+	{NODISKSPACE,"Error: No enough disk space for %s"}
+};
+
+/**
+Static variables used to construct singleton class are initialized
+
+@internalComponent
+@released
+*/
+unsigned int ExceptionImplementation::iCmdFlag = 0;
+ExceptionImplementation* ExceptionImplementation::iInstance = KNull;
+
+/**
+Static function provides the way to get the instance of ExceptionImplementation
+class. It takes aCmdFlag as argument, this argument contains the specified 
+commandline options and this flag is used to display the status information to 
+standard output upon receiving verbose mode flag.
+
+@internalComponent
+@released
+
+@param aCmdFlag - has all the options received in commandline.
+
+@return - returns the instance
+*/
+ExceptionImplementation* ExceptionImplementation::Instance(unsigned int aCmdFlag) {
+	if(iInstance == KNull) {
+		iCmdFlag = aCmdFlag;
+		iInstance = new ExceptionImplementation();
+	}
+	return iInstance;
+}
+
+/**
+Static function to delete the instance.
+
+@internalComponent
+@released
+*/
+void ExceptionImplementation::DeleteInstance() {
+	DELETE(iInstance);
+}
+
+/**
+Constructor opens the output stream and traverses through MessageArray objects to 
+initialize iMessage map. This map is used later to log the messages.
+
+@internalComponent
+@released
+*/
+ExceptionImplementation::ExceptionImplementation()
+:iMsgIndex(0) {
+	iLogStream.open(gLogFileName.c_str(),ios_base::out);
+	int i;
+	for(i = 0; i < MAX; i++) {
+		iMessage.insert(make_pair(MessageArray[i].iIndex,MessageArray[i].iMessage));
+	}
+}
+
+/**
+Destructor closes the output stream opened during construction.
+
+@internalComponent
+@released
+*/
+ExceptionImplementation::~ExceptionImplementation() {
+	iLogStream.close();
+}
+
+/**
+Function returns the message equivalent to the recived enum value.
+
+@internalComponent
+@released
+
+@param aMsgIndex - enum value
+*/
+string& ExceptionImplementation::Message(const int aMsgIndex) {
+	iMsgIndex = aMsgIndex;
+	return iMessage[aMsgIndex];
+}
+
+/**
+Function to log the error, warning and status information.
+Irrespective of the messgae type all the messages are logged into the imgcheck 
+logfile. The warning and error messages are needed to be displayed on the command
+prompt always. But the status information is displayed at standard output only if
+the verbose mode is selected by the user.
+
+@internalComponent
+@released
+
+@param aMsgIndex - enum value
+*/
+void ExceptionImplementation::Log(const string aMsg) {
+	iLogStream <<  aMsg.c_str() << "\n";
+
+	if(iCmdFlag & KVerbose) {
+		cout << aMsg.c_str() << endl;
+	}
+}
+
+/**
+Function to report the error and warning information.
+Irrespective of the messgae type all the messages are logged into the imgcheck 
+logfile. The warning and error messages are needed to be displayed on the command
+prompt always. 
+
+@internalComponent
+@released
+
+@param aMsgIndex - enum value
+*/
+void ExceptionImplementation::Report(const string aMsg) {
+	iLogStream <<  aMsg.c_str() << "\n";
+	if(aMsg.find("Success") != string::npos) {
+		cout << aMsg.c_str() << endl;
+	}
+	else {
+		cerr << aMsg.c_str() << endl;
+	}
+}