imgtools/imglib/patchdataprocessor/include/patchdataprocessor.h
changeset 0 044383f39525
child 590 360bd6b35136
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/imglib/patchdataprocessor/include/patchdataprocessor.h	Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,98 @@
+/*
+* Copyright (c) 2008-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: 
+* Class for Patching Exported Data 
+* @internalComponents
+* @released
+*
+*/
+
+
+#ifndef PATCHDATAPROCESSOR_H
+#define PATCHDATAPROCESSOR_H
+
+#ifdef _MSC_VER
+	#pragma warning(disable: 4786) // identifier was truncated to '255' characters in the debug information
+#endif
+
+#include <e32def.h>
+
+#ifdef _L
+#undef _L
+#endif
+
+#include <iostream>
+#include <vector>
+#include <map>
+#include <sstream>
+
+typedef std::string String;
+typedef std::vector<String> StringVector;
+typedef std::vector<StringVector> VectorOfStringVector;
+typedef std::map<String,String> MapOfString;
+typedef std::map<String,String>::iterator MapOfStringIterator;
+typedef std::ostringstream OutputStringStream; 
+
+/**
+Class for patching exported data.
+
+@internalComponent
+@released
+*/
+class CPatchDataProcessor
+{
+	VectorOfStringVector iPatchDataStatements; // Vector of string containing patchdata statements.
+	MapOfString iRenamedFileMap; // Map containing information of renamed files. 
+
+public:	
+	void AddPatchDataStatement(StringVector aPatchDataStatement);
+	void AddToRenamedFileMap(String aCurrentName, String aNewName);
+	VectorOfStringVector GetPatchDataStatements() const;
+	MapOfString GetRenamedFileMap() const;		
+};
+
+
+class TRomNode;
+
+/**
+Class to form a patchdata linked-list contatining symbol size, address/ordinal 
+new value to be patched.
+
+@internalComponent
+@released
+*/
+class DllDataEntry
+{
+	
+public:
+	DllDataEntry(TUint32 aSize, TUint32 aNewValue) :
+				 iSize(aSize), iDataAddress((TUint32)-1), iOrdinal((TUint32)-1), iOffset(0),
+				 iNewValue(aNewValue), iRomNode(NULL), iNextDllEntry(NULL)
+	{
+	}
+
+
+	TUint32			iSize;
+	TLinAddr		iDataAddress;
+	TUint32			iOrdinal;
+	TUint32			iOffset;
+	TUint32			iNewValue;
+	TRomNode*		iRomNode;
+	DllDataEntry*	iNextDllEntry;
+ 
+ 	void			AddDllDataEntry(DllDataEntry*);
+	DllDataEntry*	NextDllDataEntry() const;
+};
+
+#endif //PATCHDATAPROCESSOR_H