emailservices/emailclientapi/inc/emailfolder.h
changeset 0 8466d47a6819
child 4 e7aa27f58ae1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailclientapi/inc/emailfolder.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 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: CEmailMailbox.
+*
+*/
+
+#ifndef CEMAILFOLDER_H
+#define CEMAILFOLDER_H
+
+#include <emailapidefs.h>
+#include "cfsmailcommon.h"
+#include <memailfolder.h>
+#include "mfsmaileventobserver.h"
+
+using namespace EmailInterface;
+
+class CFSMailPlugin;
+class CPluginData;
+class CFSMailFolder;
+class EmailInterface::MMessageIterator;
+
+NONSHARABLE_CLASS( CEmailFolder ) : 
+    public CBase, 
+    public MEmailFolder
+{
+public:
+    
+    static CEmailFolder* NewLC( 
+        CPluginData& aPluginData,
+        const TFolderId& aFolderId,
+        CFSMailFolder *aFolder );
+    
+    static CEmailFolder* NewL( 
+        CPluginData& aPluginData,
+        const TFolderId& aFolderId,
+        CFSMailFolder *aFolder );
+
+    ~CEmailFolder();           
+
+public: // from MEmailInterface
+    virtual TEmailTypeId InterfaceId() const;
+    
+    virtual void Release();
+    
+public:    // from MEmailFolder
+    virtual TFolderId FolderId() const;
+    
+    virtual TFolderId ParentFolderId() const;
+    
+    virtual TFolderType FolderType() const;    
+
+    virtual TPtrC Name() const;
+
+    /**
+    * Returns direct childs of this folder, i.e. this is not recursive.
+    * @return number of subfolders or an error code
+    */    
+    virtual TInt GetSubfoldersL( 
+        RFolderArray& aSubfolders ) const;
+
+    virtual EmailInterface::MMessageIterator* MessagesL( 
+        const RSortCriteriaArray& aCriteria );
+    
+    virtual void DeleteMessagesL( const REmailMessageIdArray& aMessageIds );
+    
+private: // constructors
+    CEmailFolder( CPluginData& aPluginData, const TFolderId& aFolderId, CFSMailFolder *aFolder );
+    
+    void ConstructL();
+
+private: // Internal methods
+    static void ToFsSortCriteriaL( 
+        const RSortCriteriaArray& aSortCriteria, 
+        RArray<TFSMailSortCriteria>& aFsCriteria );
+
+private:
+    CPluginData&    iPluginData;
+    
+    CFSMailPlugin*  iPlugin;
+
+    TFolderType     iFolderType;
+       
+    TFolderId       iFolderId;
+    
+    TFolderId       iParentId;
+    
+    CFSMailFolder   *iFolder;
+};
+    
+#endif // CEMAILFOLDER_H
+
+// End of file