diff -r 000000000000 -r 72b543305e3a email/imum/Utils/Inc/IMASAccountControl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Inc/IMASAccountControl.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,202 @@ +/* +* Copyright (c) 2006 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 IMASACCOUNTCONTROL_H +#define IMASACCOUNTCONTROL_H + +// INCLUDES +#include +#include // TMsvId +#include // CEmailAccounts + +// CONSTANTS + +// NOTE: Do not change the order of the enumerations, as it will +// break the data compatibility. Add new keys just before +// EImaKeyLast -key. +enum TImasCommonSettings + { + // 3.0 + EImaCommonSetStatusFlagsH = 0x00, + EImaCommonSetStatusFlagsL, + EImaCommonSetMailboxId, + EImaCommonSetAccountId, + EImaCommonSetExtensionId, + EImaCommonSetProtocol, + EImaCommonSetEmailAddress, + EImaExtSetEmailNotif, + EImaExtSetIndicators, + EImaExtSetHideMsgs, + EImaExtSetOpenHtmlMail, + EImaAoVersion, + EImaAoOnlineState, + EImaAoWeekDays, + EImaAoTimeStartH, + EImaAoTimeStartL, + EImaAoTimeStopH, + EImaAoTimeStopL, + EImaAoInboxRefreshTime, + EImaAoUpdateMode, + EImaAoLastSuccessfulUpdateH, + EImaAoLastSuccessfulUpdateL, + EImaAoLastUpdateFailed, + EImaAoUpdateSuccessfulWithCurSettings, + // 3.2 + EImaExtSetMailDeletion, + EImaExtIsPredefined, + EImaKeyLast // Keep this last! + }; + +// MACROS +// DATA TYPES +// FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +// CLASS DECLARATION + +/** +* 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 ImumUtils.lib +* @since S60 3.0 +*/ +class IMASAccountControl + { + public: // Constructors and destructor + public: // New functions + + /** + * + * @since S60 3.0 + */ + static TUint32 CreateBaseKeyFromAccountId( + const TUint32 aAccountId, + const TUid& aProtocol ); + + /** + * + * @since S60 3.0 + */ + static TUint32 CreateBaseKeyFromExtendedAccountId( + const TUint32 aExtendedAccountId ); + + /** + * + * @since S60 3.0 + */ + static TUint32 AccountIdToExtendedAccountId( + const TUint32 aAccountId, + const TUid& aMtmId ); + + /** + * + * @since S60 3.0 + */ + static TUint32 ExtendedAccountIdToAccountId( + const TUint32 aExtension, + const TUid& aMtmId ); + + /** + * + * @since S60 3.0 + */ + static TUint32 MailboxIdToAccountIdL( + const TMsvId aMailboxId, + const TUid& aMtmId ); + + /** + * + * @since S60 3.0 + */ + static TMsvId AccountIdToMailboxId( + CEmailAccounts& aAccounts, + const TUint32 aAccountId, + const TUid& aMtmId ); + + /** + * + * @since Series60 3.0 + */ + static TUint32 CreateSettingKey( + const TUint32 aAccountId, + const TUint32 aSetting, + 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 + + /** + * Searches the correct account id to be used to load settings + * @since S60 3.2 + * @param aEntry aPopMailboxId Id of the Pop3 mailbox + * @return Account id of the mailbox + */ + static TPopAccount GetPopAccountIdL( + const TMsvId aPopMailboxId ); + + /** + * Searches the correct account id to be used to load settings + * @since S60 3.2 + * @param aEntry aImapMailboxId Id of the Imap4 mailbox + * @return Account id of the mailbox + */ + static TImapAccount GetImapAccountIdL( + const TMsvId aImapMailboxId ); + + /** + * Searches the correct account id to be used to load settings + * @since S60 3.2 + * @param aEntry aSmtpMailboxId Id of the Smtp mailbox + * @return Account id of the mailbox + */ + static TSmtpAccount GetSmtpAccountIdL( + const TMsvId aSmtpMailboxId ); + + private: // Functions from base classes + + public: // Data + protected: // Data + private: // Data + }; + +#endif // IMASACCOUNTCONTROL_H + +// End of File