imgtools/romtools/rofsbuild/r_rofs.h
changeset 590 360bd6b35136
parent 0 044383f39525
--- a/imgtools/romtools/rofsbuild/r_rofs.h	Wed Jun 16 16:51:40 2010 +0300
+++ b/imgtools/romtools/rofsbuild/r_rofs.h	Wed Jun 23 16:56:47 2010 +0800
@@ -1,125 +1,123 @@
-/*
-* Copyright (c) 1995-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: 
-*
-*/
-
-
-#ifndef __R_ROFS_H__
-#define __R_ROFS_H__
-
-#include <e32rom.h>
-
-#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
-#include <fstream>
-#else //!__MSVCDOTNET__
-#include <fstream.h>
-#endif //__MSVCDOTNET__
-
-#include "h_utl.h"
-#include "r_coreimage.h"
-#include <boost/thread/thread.hpp>
-#include <boost/thread/condition.hpp>
-#include <queue>
-
-#define DEFAULT_LOG_LEVEL 0x0
-#define LOG_LEVEL_FILE_DETAILS	0x00000001       // Destination file name (loglevel1)
-#define LOG_LEVEL_FILE_ATTRIBUTES 0x00000002     // File attributes (loglevel2)
-
-
-class CObeyFile;
-class MRofsImage;
-class Memmap;
-
-struct TPlacingSection {
-    TUint8* buf;
-    TInt len;
-    TRomNode* node;
-    TPlacingSection(TRomNode* anode){
-        node = anode;
-        buf = NULL;
-        len = 0;
-    }
-};
-class E32Rofs : public MRofsImage
-	{
-public:
-	E32Rofs(CObeyFile *aObey);
-	virtual ~E32Rofs();
-	TInt Create();
-
-	TInt CreateExtension(MRofsImage* info);
-	TInt WriteImage( TInt aHeaderType );
-
-	TRomNode* CopyDirectory(TRomNode*& aLastExecutable);
-	TRomNode* RootDirectory();
-	void SetRootDirectory(TRomNode* aDir);
-	TText* RomFileName();
-	TInt Size();
-	void MakeAutomaticSize(TUint32 aSize);
-
-        //Get a node to handle, if there is no more, NULL returns.
-        //For alias node, it will be deferred to later phase to handle.
-	TPlacingSection* GetFileNode(bool &aDeferred);
-        TPlacingSection* GetDeferredJob();
-        void ArriveDeferPoint();
-	void DisplaySizes(TPrintType aWhere);
-private:
-	TInt PlaceFiles( TRomNode* aRootDir, TUint8* aDestBase, TUint aBaseOffset, TInt aCoreSize = 0 );
-	TInt LayoutDirectory( TRomNode* aRootDir, TUint aBaseOffset );
-	TInt PlaceDirectory( TRomNode* aRootDir, TUint8* aDest );
-	void LogExecutableAttributes(E32ImageHeaderV *aHdr);
-
-
-	void Write(ofstream &of, TInt aHeaderType);		// main ROM image
-	Memmap* iImageMap;
-
-public:
-	char *iData;
-	TInt iSize;
-
-	TRofsHeader *iHeader;
-	TExtensionRofsHeader *iExtensionRofsHeader;	
-	//
-	CObeyFile *iObey;
-
-	//
-	TInt iSizeUsed;
-	TInt iOverhead;
-	TInt iDirectorySize;
-
-	TInt iTotalDirectoryBlockSize;
-	TInt iTotalFileBlockSize;
-	//
-
-private:
-	TRomNode *iLastNode;
-        int iWorkerArrived;
-        boost::mutex iMuxTree;
-        std::vector<TPlacingSection*> iVPS;
-        std::queue<TPlacingSection*> iQueueAliasNode;
-};
-
-
-class TRofsDirStructure
-	{
-	public:
-		TRofsDirStructure( TRomEntry* aRootDirectory );
-
-		TInt CalculateDirectorySize();
-
-	private:
-		TRomEntry* iRootDirectory;
-	};
-#endif
+/*
+* Copyright (c) 1995-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: 
+*
+*/
+
+
+#ifndef __R_ROFS_H__
+#define __R_ROFS_H__
+
+#include <e32rom.h>
+
+#include <fstream>
+
+#include "h_utl.h"
+#include "r_coreimage.h"
+#include <boost/thread/thread.hpp>
+#include <boost/thread/condition.hpp>
+#include <queue>
+
+#define DEFAULT_LOG_LEVEL 0x0
+#define LOG_LEVEL_FILE_DETAILS	0x00000001       // Destination file name (loglevel1)
+#define LOG_LEVEL_FILE_ATTRIBUTES 0x00000002     // File attributes (loglevel2)
+
+
+class CObeyFile;
+class MRofsImage;
+class Memmap;
+class SymbolGenerator;
+
+struct TPlacingSection {
+	TUint8* buf;
+	TInt len;
+	TRomNode* node;
+	TPlacingSection(TRomNode* anode){
+		node = anode;
+		buf = NULL;
+		len = 0;
+	}
+};
+class E32Rofs : public MRofsImage
+{
+public:
+	E32Rofs(CObeyFile *aObey);
+	virtual ~E32Rofs();
+	TInt Create();
+
+	TInt CreateExtension(MRofsImage* info);
+	TInt WriteImage( TInt aHeaderType );
+
+	TRomNode* CopyDirectory(TRomNode*& aLastExecutable);
+	TRomNode* RootDirectory();
+	void SetRootDirectory(TRomNode* aDir);
+	const char* RomFileName() const ;
+	TInt Size() const;
+	void MakeAutomaticSize(TUint32 aSize);
+
+	//Get a node to handle, if there is no more, NULL returns.
+	//For alias node, it will be deferred to later phase to handle.
+	TPlacingSection* GetFileNode(bool &aDeferred);
+	TPlacingSection* GetDeferredJob();
+	void ArriveDeferPoint();
+	void DisplaySizes(TPrintType aWhere);
+private:
+	TInt PlaceFiles( TRomNode* aRootDir, TUint8* aDestBase, TUint aBaseOffset, TInt aCoreSize = 0 );
+	TInt LayoutDirectory( TRomNode* aRootDir, TUint aBaseOffset );
+	TInt PlaceDirectory( TRomNode* aRootDir, TUint8* aDest );
+	void LogExecutableAttributes(E32ImageHeaderV *aHdr);
+
+
+	void Write(ofstream &of, TInt aHeaderType);		// main ROM image
+	Memmap* iImageMap;
+
+public:
+	char *iData;
+	TInt iSize;
+
+	TRofsHeader *iHeader;
+	TExtensionRofsHeader *iExtensionRofsHeader;	
+	//
+	CObeyFile *iObey;
+
+	//
+	TInt iSizeUsed;
+	TInt iOverhead;
+	TInt iDirectorySize;
+
+	TInt iTotalDirectoryBlockSize;
+	TInt iTotalFileBlockSize;
+	//
+        SymbolGenerator* iSymGen;
+
+private:
+	TRomNode *iLastNode;
+	int iWorkerArrived;
+	boost::mutex iMuxTree;
+	vector<TPlacingSection*> iVPS;
+	queue<TPlacingSection*> iQueueAliasNode;
+};
+
+
+class TRofsDirStructure
+{
+public:
+	TRofsDirStructure( TRomEntry* aRootDirectory );
+
+	TInt CalculateDirectorySize();
+
+private:
+	TRomEntry* iRootDirectory;
+};
+#endif