messagingappbase/msgavkon/muiu_internal/emailtools/inc/MuiuEmailTools.h
branchRCL_3
changeset 27 7fdbb852d323
parent 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgavkon/muiu_internal/emailtools/inc/MuiuEmailTools.h	Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2002 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:  MuiuEmailTools  declaration
+*
+*/
+
+
+
+#ifndef CIMASETTINGSUTILS_H
+#define CIMASETTINGSUTILS_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32cmn.h>             
+#include <msvstd.h>                 // TEntry        
+#include <mtmuibas.h>               // CBaseMtmUi
+#include <cemailaccounts.h>         // CEmailAccounts
+#include <SendUiConsts.h>           // Mtm's
+
+// CONSTANTS
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+// CLASS DECLARATION
+
+/**
+*  This class contains simple tools for mailbox handling
+*  @lib muiu
+*  @since S60 3.0
+*/
+class MuiuEmailTools
+    {
+    public:  // Constructors and destructor
+    public: // New functions             
+                        
+        /**
+        * Checks the current default mailbox
+        * @since S60 3.0
+        * @param aMsvSession Message server session
+        * @param aMtmId 
+        *   Mail Mtm Id to be used for searching default mailbox. If Pop3 or
+        *   Imap4 mtm is offered, the value of aMtmId is changed to 
+        *   corresponding Smtp mtm id.
+        * @return KMsvUnknownServiceIndexEntryId if no default mailbox
+        * @return Default mailbox id
+        */
+        IMPORT_C static TMsvId DefaultSendingMailboxL( 
+            CMsvSession& aMsvSession,            
+            TUid& aMtmId );               
+                            
+        /**
+        * Sets the default sending mailbox
+        * @since S60 3.0
+        * @param aSendingMailboxId 
+        */
+        IMPORT_C static void SetDefaultSendingMailboxL(
+            const TMsvId aSendingMailboxId );                
+            
+        /**
+        * Searches the correct entry of specified protocol for required mailbox
+        * @since S60 3.0
+        * @param aMsvSession Session to be used in search
+        * @param aEntry Entry for result to be stored
+        * @param aMailboxId Id of the required mailbox
+        * @param aGetSendingService Get either receiving or sending type
+        * @return TInt KErrNone if search is successful
+        */
+        IMPORT_C static TInt GetMailboxServiceId(
+            CMsvSession& aMsvSession,
+            TMsvEntry& aEntry,
+            const TMsvId aMailboxId,            
+            const TBool aGetSendingService );              
+            
+        /**
+        * Finds the first valid mailbox with spesific mtm        
+        * @since S60 3.0
+        * @param aMsvSession Message server session
+        * @param a
+        */
+        static TMsvId FindFirstValidMailboxL( 
+            CMsvSession& aMsvSession,
+            const CMsvEntrySelection& aSelection,
+            const TUid& aMtmId );            
+        
+        /**
+        * Checks if given mtm-type matches known mail mtm's 
+        * @since S60 3.0
+        * @param aMtm Mtm to be tested
+        * @param aAllowExtended Other than basic mail mtm's are accepted also
+        * @return EFalse if the mtm is not recognized
+        * @return ETrue if the mtm is supported type (Imap4 / Pop3 / Smtp )
+        */
+       IMPORT_C static TBool IsMailMtm( 
+            const TUid& aMtm,
+            const TBool aAllowExtended = EFalse );          
+    
+        /**
+        * Verifies that the mailbox can be used in the current phone.
+        * @since S60 3.0
+        * @return ETrue/EFalse, Based on the validity of the mailbox
+        */
+        static TBool ValidateMailboxL( 
+            CMsvSession& aMsvSession,
+            const TUid& aMtmId,
+            const TMsvId aMailboxId );
+
+        /**
+        * Simplifies the call of MtmUi's QueryCapability.
+        * @since S60 3.0
+        * @param aQuery Capability to be queried
+        * @param aMtmUi MtmUi to be used for the query
+        * @return ETrue, when no error and capability exist        
+        * @return EFalse, when the capability is rejected or error has occurred
+        */
+        static TBool QueryCapability( 
+            const TInt aQuery, 
+            CBaseMtmUi& aMtmUi ); 
+            
+        /**
+        * Queries default service from specific MTM
+        * @since S60 3.0
+        * @param aMtmId Mtm type to be queried
+        * @return Id of the default service
+        */
+        static TMsvId QueryDefaultServiceL( 
+            CMsvSession& aMsvSession, 
+            const TUid& aMtmId );          
+    
+    public: // Functions from base classes
+
+    protected:  // Constructors
+    protected:  // New virtual functions
+    protected:  // New functions
+    protected:  // Functions from base classes
+
+    private:  // New virtual functions
+    private:  // New functions
+    
+        /**
+        * Simplifies the MtmUi's query Mtm
+        * @since S60 3.0
+        * @param aMailboxId, Mailbox id to be checked
+        * @param aMtmUi, MtmUi to be used for the query      
+        * @return The result of the query
+        */
+        static TInt QueryMailboxValidityL( 
+            const TMsvId aMailboxId,
+            CBaseMtmUi& aMtmUi );            
+            
+    private:  // Functions from base classes
+
+    public:     // Data
+    protected:  // Data
+    private:    // Data
+    };
+
+#endif //  CIMASETTINGSUTILS_H
+
+// End of File
\ No newline at end of file