ipsservices/ipssossettings/inc/ipssetdatactrlaccount.h
changeset 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssossettings/inc/ipssetdatactrlaccount.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,139 @@
+/*
+* Copyright (c) 2007 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:  This class handles the complex account id shifting operations.
+*
+*/
+
+
+#ifndef IPSSETDATACTRLACCOUNT_H
+#define IPSSETDATACTRLACCOUNT_H
+
+
+#include <msvstd.h>                     // TMsvId
+
+class CEmailAccounts;
+
+/**
+ *  Definitions:
+ *   - Mailbox Id :  TMsvId, TEntry.Id()
+ *                   Entry Id of mail service entry.
+ *   - AccountId  :  TUint32, TEntry.iMtmData2
+ *                   Index of the Symbian account in the Central Repository
+ *                   for the specific protocol. Each protocol can have
+ *                   account id of 1. Can get values from 1 to 6.
+ *   - ExtensionId : TUint32 (a.k.a ExtendedAccountId)
+ *                   Index of the S60 account in the Central Repository for
+ *                   the specific protocol. Extension Id is always unique.
+ *                   Can get any value except 0.
+ *                       Imap4 keys   : 0x00000001 - 0x000000ff
+ *                        Pop3 keys   : 0x00000100 - 0x0000ff00
+ *   - Base Key   :  Extension id shifted left by 8 (1 byte). This basekey
+ *                   is then used to form the unique key id to refer the
+ *                   setting item.
+ *                        Imap4 keys  : 0x000001xx - 0x0000ffxx
+ *                        Pop3 keys   : 0x000100xx - 0x00ff00xx
+ *
+ *  @lib IpsSosSettings.lib
+ *  @since FS v1.0
+ */
+class IpsSetDataCtrlAccount
+    {
+public:
+
+// New functions
+
+    /**
+     * Function to create a base key.
+     * Creates the base key from account id for storing the keys
+     * into extended settings.
+     *
+     * @param aAccountId Id of the symbian account
+     * @param aProtocol Protocol MTM ID of the account
+     * @return Base key
+     */
+    static TUint32 CreateBaseKeyFromAccountId(
+        const TUint32 aAccountId,
+        const TUid& aProtocol );
+
+    /**
+     * Function to create a base key.
+     * Creates base key from own extended settings. The key is used
+     * to store the settings to extended settings part.
+     *
+     * @param aExtenededAccountId
+     * @return Base key
+     */
+    static TUint32 CreateBaseKeyFromExtendedAccountId(
+        const TUint32 aExtendedAccountId );
+
+    /**
+     * Converts the account ID to extended account ID.
+     *
+     * @param aAccountId Symbian account ID.
+     * @param aProtocol Protocol MTM ID of the used account
+     * @return Extended account Id
+     */
+    static TUint32 AccountIdToExtendedAccountId(
+        const TUint32 aAccountId,
+        const TUid& aMtmId );
+
+    /**
+     * Converts extended account ID to Symbian account ID.
+     *
+     * @param aExtension Account's Extension ID
+     * @param aMtmID Protocol MTM ID of the used account
+     * @return Symbian account ID
+     */
+    static TUint32 ExtendedAccountIdToAccountId(
+        const TUint32 aExtension,
+        const TUid& aMtmId );
+
+    /**
+     * Converts mailbox ID to account ID.
+     *
+     * @param aMailboxId Mailbox entry ID
+     * @param aMtmId Protocol MTM ID of the used entry.
+     * @return Symbian account ID
+     */
+    static TUint32 MailboxIdToAccountIdL(
+        const TMsvId aMailboxId,
+        const TUid& aMtmId );
+
+    /**
+     * Converts Symbian mailbox account ID to mailbox service entry ID.
+     *
+     * @param aAccountId Symbian account ID.
+     * @param aMtmId Protocol MTM ID of the used entry.
+     */
+    static TMsvId AccountIdToMailboxId(
+        CEmailAccounts& aAccounts,
+        const TUint32 aAccountId,
+        const TUid& aMtmId );
+
+    /**
+     * Creates setting key for account and its item.
+     *
+     * @param aAccountId Symbian account ID.
+     * @param aSetting Unique ID of the setting
+     * @param aMtmId Protocol MTM ID of the used entry.
+     */
+    static TUint32 CreateSettingKey(
+        const TUint32 aAccountId,
+        const TUint32 aSetting,
+        const TUid& aMtmId );
+    };
+
+#endif // IPSSETDATACTRLACCOUNT_H
+
+// End of File