symport/f32/sfsrv/cl_entry.cpp
changeset 1 0a7b44b10206
child 2 806186ab5e14
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symport/f32/sfsrv/cl_entry.cpp	Thu Jun 25 15:59:54 2009 +0100
@@ -0,0 +1,223 @@
+// 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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// f32\sfsrv\cl_entry.cpp
+// 
+//
+
+#include "cl_std.h"
+
+
+/**
+Default constructor.
+*/
+EXPORT_C TVolumeInfo::TVolumeInfo()
+	{
+    Mem::FillZ(this, sizeof(TVolumeInfo)); //-- zero-fill itself
+    new(&iName)TBufC<KMaxFileName>;        //-- initialise broken descriptor 
+    }
+
+
+
+
+EXPORT_C TBool TEntry::IsReadOnly() const
+/**
+Tests whether the file or directory is read-only.
+
+@return ETrue if entry is read-only, EFalse if not.
+
+@see KEntryAttReadOnly
+*/
+	{
+	return(iAtt&KEntryAttReadOnly);
+	}
+
+
+
+
+EXPORT_C TBool TEntry::IsHidden() const
+/**
+Tests whether the file or directory is hidden.
+
+@return ETrue if entry is hidden, EFalse if not.
+
+@see KEntryAttHidden
+*/
+	{
+
+	return(iAtt&KEntryAttHidden);
+	}
+
+
+
+
+EXPORT_C TBool TEntry::IsSystem() const
+/**
+Tests whether the file or directory has the system attribute set.
+
+@return ETrue if entry is a system entry, EFalse if not.
+
+@see KEntryAttSystem
+*/
+	{
+
+	return(iAtt&KEntryAttSystem);
+	}
+
+
+
+
+EXPORT_C TBool TEntry::IsDir() const
+/**
+Tests whether the entry is a directory.
+
+@return ETrue if entry indicates a directory, EFalse if not.
+
+@see KEntryAttDir
+*/
+	{
+
+	return(iAtt&KEntryAttDir);
+	}
+
+
+
+
+EXPORT_C TBool TEntry::IsArchive() const
+/**
+Tests whether the file is an archive file.
+
+@return ETrue if file is archive, EFalse if not.
+
+@see KEntryAttArchive
+*/
+	{
+
+	return(iAtt&KEntryAttArchive);
+	}
+
+
+
+
+EXPORT_C TEntryArray::TEntryArray()
+	: iCount(0)
+/**
+Default constructor.
+
+Initialises its count of contained TEntry objects to zero.
+*/
+	{}
+
+
+
+
+EXPORT_C TInt TEntryArray::Count() const
+/**
+Gets the number of entries in the array.
+
+@return The number of entries in the array.
+*/
+	{
+
+	if (iCount==KCountNeeded)
+		{
+		const TEntry* pE=(const TEntry*)iBuf.Ptr();
+		const TEntry* pEnd=PtrAdd(pE,iBuf.Length());
+		TInt c=0;
+		while (pE<pEnd)
+			{
+			c++;
+			pE=PtrAdd(pE,Align4(EntrySize(*pE)));
+			}
+		TEntryArray& me=(TEntryArray& )(*this);
+		me.iCount=c;
+		me.iIndex=0;
+		me.iPos=(const TEntry*)iBuf.Ptr();
+		}
+	return(iCount);
+	}
+
+
+
+
+EXPORT_C const TEntry& TEntryArray::operator[](TInt anIndex) const
+/**
+Gets the directory entry at the specified index.
+
+@param anIndex Index of the entry within the array.
+               This value is relative to zero.
+               
+@return On return contains the entry at the specified index.
+
+@panic FSCLIENT 22 if anIndex is greater than or equal to the number
+       of elements in the array.
+*/
+	{
+
+	__ASSERT_ALWAYS(anIndex<Count(),Panic(EEntryArrayBadIndex));
+	const TEntry* pE=iPos;
+	TInt ix=iIndex;
+	if (anIndex<ix)
+		{
+		ix=0;
+		pE=(const TEntry*)iBuf.Ptr();
+		}
+	while (ix<anIndex)
+		{
+		pE=PtrAdd(pE,Align4(EntrySize(*pE)));
+		ix++;
+		}
+	TEntryArray& me=(TEntryArray& )(*this);
+	me.iIndex=ix;
+	me.iPos=pE;
+	return(*pE);
+	}
+
+
+
+
+EXPORT_C TEntry::TEntry()
+/**
+Default constructor.
+*/
+	{}
+
+
+
+
+EXPORT_C TEntry::TEntry(const TEntry& aEntry)
+/**
+Copy constructor.
+
+@param aEntry The TEntry object to be copied.
+*/
+	{
+	Mem::Copy(this,&aEntry,EntrySize(aEntry));
+	}
+
+
+
+
+EXPORT_C TEntry& TEntry::operator=(const TEntry& aEntry)
+/**
+Assignment operator.
+
+@param aEntry The TEntry object to be copied to this TEntry object.
+
+@return A reference to this TEntry object.
+*/
+	{
+	if(this!=&aEntry)
+		Mem::Copy(this,&aEntry,EntrySize(aEntry));
+	return(*this);
+	}