imgtools/imgcheck/src/main.cpp
changeset 0 044383f39525
child 590 360bd6b35136
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/imgcheck/src/main.cpp	Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,108 @@
+/*
+* 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: 
+* Begining of imgcheck tool.
+*
+*/
+
+
+/**
+ @file
+ @internalComponent
+ @released
+*/
+
+#include "imgcheckmanager.h"
+#include "exceptionreporter.h"
+
+/**
+Global pointers declaration.
+
+@internalComponent
+@released
+*/
+CmdLineHandler* cmdInput = KNull;
+ImgCheckManager* imgCheckerPtr = KNull;
+
+/**
+Function to delete the created instances
+
+@internalComponent
+@released
+*/
+
+void DeleteInstances()
+{
+	DELETE(imgCheckerPtr);
+	DELETE(cmdInput);
+}
+
+/**
+Main function for imgcheck Tool, invokes ImgCheckManager public functions
+to carry out the validation and to generate report.
+
+@internalComponent
+@released
+
+@param argc - commandline argument count
+@param argv - argument variables
+
+@return - returns Exit status success or failure
+*/
+int main(int argc,char* argv[])
+{
+	try
+	{
+		cmdInput = new CmdLineHandler();
+		if(cmdInput == KNull)
+		{
+			throw ExceptionReporter(NOMEMORY, __FILE__, __LINE__);
+		}
+		ReturnType val = cmdInput->ProcessCommandLine(argc,argv);
+
+		int ret = 0;
+		switch(val)
+		{
+			case EQuit:
+				ret = EXIT_SUCCESS;
+				break;
+	
+			case ESuccess:
+				imgCheckerPtr = new ImgCheckManager(cmdInput);
+				if(imgCheckerPtr == KNull)
+				{
+					throw ExceptionReporter(NOMEMORY, __FILE__, __LINE__);
+				}
+				imgCheckerPtr->CreateObjects();
+				imgCheckerPtr->Execute();
+				imgCheckerPtr->FillReporterData();
+				imgCheckerPtr->GenerateReport();
+				break;
+			
+			case EFail:
+				ret = EXIT_FAILURE;
+				break;
+		}
+		DeleteInstances();
+		ExceptionImplementation::DeleteInstance();
+		return ret;
+	}
+    catch(ExceptionReporter& aExceptionReport)
+	{
+		aExceptionReport.Report();
+		ExceptionImplementation::DeleteInstance();
+		DeleteInstances();
+		return EXIT_FAILURE;
+	}
+}