emailservices/emailframework/commonlib/src/CFSMailFolderBase.cpp
changeset 0 8466d47a6819
child 8 e1b6206813b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/commonlib/src/CFSMailFolderBase.cpp	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,310 @@
+/*
+* Copyright (c) 2007-2008 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:  common email folder base object
+*
+*/
+
+
+//<cmail>
+#include "emailtrace.h"
+#include "CFSMailFolderBase.h"
+//</cmail>
+
+// ================= MEMBER FUNCTIONS ==========================================
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::CFSMailFolderBase
+// -----------------------------------------------------------------------------
+CFSMailFolderBase::CFSMailFolderBase()
+{
+    FUNC_LOG;
+	iFolderName = HBufC::New(1);
+	iFolderName->Des().Copy(KNullDesC());
+	iMoveOfflineBlocked.Reset();
+	iMoveOnlineBlocked.Reset();
+	iCopyOfflineBlocked.Reset();
+	iCopyOnlineBlocked.Reset();
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::~CFSMailFolderBase
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailFolderBase::~CFSMailFolderBase()
+{
+    FUNC_LOG;
+	if(iFolderName)
+	{
+		delete iFolderName;
+		iFolderName = NULL;
+	}
+	iMoveOfflineBlocked.Reset();
+	iMoveOnlineBlocked.Reset();
+	iCopyOfflineBlocked.Reset();
+	iCopyOnlineBlocked.Reset();
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::ConstructL
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::ConstructL( TFSMailMsgId aFolderId )
+{
+    FUNC_LOG;
+	iFolderId.SetPluginId(aFolderId.PluginId());
+	iFolderId.SetId(aFolderId.Id());
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::NewLC
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewLC( TFSMailMsgId aFolderId )
+{
+    FUNC_LOG;
+  CFSMailFolderBase* folder = new (ELeave) CFSMailFolderBase();
+  CleanupStack:: PushL(folder);
+  folder->ConstructL(aFolderId);
+  return folder;
+} 
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::NewL
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewL(const TFSMailMsgId aFolderId)
+{
+    FUNC_LOG;
+  CFSMailFolderBase* folder =  CFSMailFolderBase::NewLC(aFolderId);
+  CleanupStack:: Pop(folder);
+  return folder;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetFolderId
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailFolderBase::GetFolderId() const
+{
+    FUNC_LOG;
+	return iFolderId;
+}
+
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetParentFolderId
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailFolderBase::GetParentFolderId() const
+{
+    FUNC_LOG;
+	return iParentFolderId;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetParentFolderId
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetParentFolderId(TFSMailMsgId aFolderId)
+{
+    FUNC_LOG;
+	iParentFolderId.SetPluginId(aFolderId.PluginId());
+	iParentFolderId.SetId(aFolderId.Id());
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetMailBoxId
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailFolderBase::GetMailBoxId() const
+{
+    FUNC_LOG;
+	return iMailBoxId;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetMailBoxId
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetMailBoxId(TFSMailMsgId aMailBoxId)
+{
+    FUNC_LOG;
+	iMailBoxId.SetPluginId(aMailBoxId.PluginId());
+	iMailBoxId.SetId(aMailBoxId.Id());
+}
+
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetFolderType
+// -----------------------------------------------------------------------------
+EXPORT_C TFSFolderType CFSMailFolderBase::GetFolderType() const
+{
+    FUNC_LOG;
+	return iFolderType;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetFolderType
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetFolderType(const TFSFolderType aFolderType)
+{
+    FUNC_LOG;
+	iFolderType = aFolderType;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetFolderName
+// -----------------------------------------------------------------------------
+EXPORT_C TDesC& CFSMailFolderBase::GetFolderName() const
+{
+    FUNC_LOG;
+	return *iFolderName;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetFolderName
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetFolderName(const TDesC& aFolderName)
+{
+    FUNC_LOG;
+	// init mailbox name
+	HBufC* name = HBufC::New(aFolderName.Length());
+	
+	// store new mailbox name
+	if(name)
+	{
+		delete iFolderName;
+		iFolderName = name;
+		iFolderName->Des().Copy(aFolderName);
+	}
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetMessageCount
+// -----------------------------------------------------------------------------
+EXPORT_C TUint CFSMailFolderBase::GetMessageCount() const
+{
+    FUNC_LOG;
+	return iMessageCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetUnreadCount
+// -----------------------------------------------------------------------------
+EXPORT_C TUint CFSMailFolderBase::GetUnreadCount() const
+{
+    FUNC_LOG;
+	return iUnreadMessageCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetUnseenCount
+// -----------------------------------------------------------------------------
+EXPORT_C TUint CFSMailFolderBase::GetUnseenCount() const
+{
+    FUNC_LOG;
+	return iUnseenCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetSubFolderCount
+// -----------------------------------------------------------------------------
+EXPORT_C TUint CFSMailFolderBase::GetSubFolderCount() const
+{
+    FUNC_LOG;
+	return iSubFolderCount;
+}
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetMessageCount
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetMessageCount( TUint aMessageCount )
+{
+    FUNC_LOG;
+	iMessageCount = aMessageCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetUnreadCount
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetUnreadCount( TUint aMessageCount )
+{
+    FUNC_LOG;
+	iUnreadMessageCount = aMessageCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetUnseenCount
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetUnseenCount( TUint aMessageCount )
+{
+    FUNC_LOG;
+	iUnseenCount = aMessageCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::SetSubFolderCount
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::SetSubFolderCount(TUint aFolderCount)
+{
+    FUNC_LOG;
+	iSubFolderCount = aFolderCount;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolder::BlockCopyFromL
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::BlockCopyFromL( RArray<TFSFolderType> aFolderTypes, 
+													TFSMailBoxStatus aMailBoxStatus )
+	{
+    FUNC_LOG;
+	switch(aMailBoxStatus)
+		{
+			case EFSMailBoxOnline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iCopyOnlineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+
+			case EFSMailBoxOffline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iCopyOfflineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+			
+			default:
+			break;
+		}
+	}
+
+// -----------------------------------------------------------------------------
+// CFSMailFolder::BlockMoveFromL
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolderBase::BlockMoveFromL( RArray<TFSFolderType> aFolderTypes, 
+													TFSMailBoxStatus aMailBoxStatus )
+	{
+    FUNC_LOG;
+	switch(aMailBoxStatus)
+		{
+			case EFSMailBoxOnline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iMoveOnlineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+
+			case EFSMailBoxOffline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iMoveOfflineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+			
+			default:
+			break;
+		}
+	
+	}
+