imgtools/imgcheck/libimgutils/inc/romfsentry.h
changeset 0 044383f39525
child 590 360bd6b35136
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/imgcheck/libimgutils/inc/romfsentry.h	Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,136 @@
+/*
+* 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: 
+* @internalComponent
+* @released
+*
+*/
+
+
+#ifndef ROMFSENTRY_H
+#define ROMFSENTRY_H
+
+#include "typedefs.h"
+
+/**
+Class RomImageFSEntry, Base class ROM image file and directory entry structure
+
+@internalComponent
+@released
+*/
+class RomImageFSEntry 
+{
+public:
+	RomImageFSEntry (char* aName) 
+	: iName(aName), iSibling(0), iChildren(0)
+	{
+	}
+
+	virtual ~RomImageFSEntry(void)
+	{
+	}
+
+	virtual bool IsDirectory(void) = 0;
+	virtual bool IsExecutable(void) = 0;
+	const char *Name(void) { return iName.data();}
+
+	void Destroy(void)
+	{
+		RomImageFSEntry *current = this; // root has no siblings
+		while (current)
+		{
+			if (current->iChildren)
+				current->iChildren->Destroy();
+			RomImageFSEntry* prev=current;
+			current=current->iSibling;
+			DELETE(prev);
+		}
+	}
+
+	String iName;
+	String iPath;
+	RomImageFSEntry *iSibling;
+	RomImageFSEntry *iChildren;
+};
+
+/**
+Class RomImageFileEntry, ROM image file entry structure
+
+@internalComponent
+@released
+*/
+class RomImageFileEntry : public RomImageFSEntry 
+{
+public:
+	RomImageFileEntry(char* aName) 
+	: RomImageFSEntry(aName),iExecutable(true)
+	{
+	}
+	~RomImageFileEntry(void)
+	{
+	}
+	bool IsDirectory(void)
+	{
+		return false;
+	}
+	union ImagePtr
+	{
+		TRomImageHeader *iRomFileEntry;
+		TLinAddr iDataFileAddr;
+	}ImagePtr;
+	TRomEntry *iTRomEntryPtr;
+	bool iExecutable;
+	/** 
+	Function responsible to return the node is executable or not.
+
+	@internalComponent
+	@released
+
+	@return - returns 'true' if executable or 'false'
+	*/
+	bool IsExecutable(void)
+	{
+		if (iExecutable)
+			return true;
+		else
+			return false;
+	}
+};
+
+/**
+Class RomImageDirEntry, ROM image Directory entry structure
+
+@internalComponent
+@released
+*/
+class RomImageDirEntry : public RomImageFSEntry
+{
+public:
+	RomImageDirEntry(char* aName) : RomImageFSEntry(aName)
+	{
+	}
+	~RomImageDirEntry(void)
+	{
+	}
+	bool IsDirectory(void)
+	{
+		return true;
+	}
+	bool IsExecutable(void)
+	{
+		return false;
+	}
+};
+
+#endif //ROMFSENTRY_H