email/pop3andsmtpmtm/imapservermtm/inc/FLDINDEX.H
changeset 25 84d9eb65b26f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/imapservermtm/inc/FLDINDEX.H	Mon May 03 12:29:07 2010 +0300
@@ -0,0 +1,89 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+// IMAP Folder indexing header
+// 
+//
+
+#if !defined(__FLDINDEX_H__)
+#define __FLDINDEX_H__
+
+#if !defined(__E32STD_H__)
+#include <e32std.h>
+#endif
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+// We need this for TMsvId
+#include <msvstd.h>
+
+// Actual entries stored in the index
+class CImImap4IndexEntry:public CBase
+/**
+@internalComponent
+@released
+*/
+	{
+public:
+	CImImap4IndexEntry();
+	CImImap4IndexEntry(CImImap4IndexEntry& aFrom);
+
+	CImImap4IndexEntry& operator=(CImImap4IndexEntry& aFrom);
+
+public:
+	TUint32			iUid;
+	TMsvId			iMsvId;
+	};
+
+class CImImap4FolderIndex:public CBase
+/**
+@internalComponent
+@released
+*/
+	{
+public:
+	CImImap4FolderIndex();
+	~CImImap4FolderIndex();
+
+	// Clear index
+	void Reset();
+
+	// Note number of entries
+	void SetSizeL(const TUint aEntries);
+	TInt Size();
+
+	// Access an entry directly
+	CImImap4IndexEntry& operator[] (const TInt aIndex);
+
+	// Sort index by UID
+	void Sort();
+
+	// Expunge a message
+	void Expunge(const TUint aMsgNr);
+
+private:
+	// Set a UID for a message number
+	void SetUid(const TUint aMsgNr, const TUint aMsgUid);
+
+	// Set a TMsvId for a message number
+	void SetMsvId(const TUint aMsgnr, const TMsvId aMsvId);
+
+	// Find a message number
+	TUint FindMsg(const TUint aMsgUid);
+
+private:
+	TInt								iSize;
+	CArrayFix<CImImap4IndexEntry>*		iIndex;
+	};
+#endif