// Copyright (c) 2006-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:
// CImapSettings header
//
//
#if !defined(__CIMAPSETTINGS_H__)
#define __CIMAPSETTINGS_H__
#include <msventry.h>
#include <imapset.h>
#include <cimapsyncdownloadrules.h>
class CImIAPPreferences;
class CImapSyncDownloadRules;
class CImapTransportBufferSizes;
/**
@internalComponent
@prototype
*/
class CImapSettings : public CBase
{
public:
IMPORT_C static CImapSettings* NewL(CMsvServerEntry& aServerEntry);
~CImapSettings();
// Indicates if account settings have been loaded
IMPORT_C TBool SettingsLoaded() const;
// Loads the settings from CenRep
IMPORT_C void LoadSettingsL(const TMsvId aId);
// Access to the service ID
IMPORT_C TMsvId ServiceId() const;
// Access to CImBaseEmailSettings
IMPORT_C const TPtrC ServerAddress() const;
IMPORT_C TUint Port() const;
IMPORT_C TBool SecureSockets() const;
IMPORT_C TBool SSLWrapper() const;
IMPORT_C TBool BearerMobility() const;
// Access to CImImap4Settings
IMPORT_C const TPtrC8 LoginName() const;
IMPORT_C const TPtrC8 Password() const;
IMPORT_C const TPtrC8 FolderPath() const;
IMPORT_C const TPtrC8 SearchString() const;
IMPORT_C const TDesC& PathSeparator() const;
IMPORT_C TBool DisconnectedUserMode() const;
IMPORT_C TFolderSyncType Synchronise() const;
IMPORT_C TFolderSubscribeType Subscribe() const;
IMPORT_C TBool DeleteEmailsWhenDisconnecting() const;
IMPORT_C TImap4GetMailOptions GetMailOptions() const;
IMPORT_C TInt32 InboxSynchronisationLimit() const;
IMPORT_C TInt32 MailboxSynchronisationLimit() const;
IMPORT_C TBool UpdatingSeenFlags() const;
IMPORT_C TUint FetchSize() const;
IMPORT_C TBool ImapIdle() const;
IMPORT_C TInt ImapIdleTimeout() const;
IMPORT_C TBool UseExpunge() const;
IMPORT_C TPtrC8 TlsSslDomain() const;
IMPORT_C TBool UseSyncDownloadRules() const;
IMPORT_C TBool FolderSyncDisabled() const;
//Access to SASL authenticate login methods
#if (defined SYMBIAN_EMAIL_CAPABILITY_SUPPORT)
IMPORT_C TBool FallBack() const;
IMPORT_C TBool IMAP4Auth() const;
#endif
// Access to CImIAPPreferences
IMPORT_C const CImIAPPreferences& IAPPreferences() const;
IMPORT_C TInt GetSyncDownloadRuleL(CImapSyncDownloadRules::TRulesType aType, TImImap4GetPartialMailInfo& aMailInfo) const;
IMPORT_C void GetTransportBufferSizesL(TUint& aFetchRequestSize, TUint& aMaxOutstandingFetchResponses) const;
// Access to Resource File data
IMPORT_C TInt Store8BitData() const;
IMPORT_C const TDesC& DefaultAttachmentName() const;
IMPORT_C const HBufC8* DefaultPartialMessageFooter() const;
// Setters for settings that can be updated by the Server MTM
IMPORT_C void SetPathSeparatorL(const TText8 aPathSeparator);
IMPORT_C TInt StorePlainText() const;
IMPORT_C void SetCurrentBearerType(TUint32 aBearerType);
private:
CImapSettings(CMsvServerEntry& aServerEntry);
void ConstructL();
void ReadResourceFileL();
// stores the settings to CenRep
void SaveSettingsL();
private:
/** The CMsvServerEntry to use for accessing the server entry */
CMsvServerEntry& iServerEntry;
/** ETrue if settings have been loaded */
TBool iSettingsLoaded;
/** The Service ID for the IMAP Service */
TMsvId iServiceId;
/** The IMAP Service's settings */
CImImap4Settings* iServiceSettings;
/** The IAP preferences relating to IAPs for email*/
CImIAPPreferences* iIapPrefs;
/** The path separator is defined by the remote IMAP server and retrieved when the
connection is established */
TBufC16<1> iPathSeparator;
/** The buffer for Store8BitData flag. The flag value is read from a resource file */
TInt iStore8BitData;
/** The buffer for the default atachment name. The value is read from a resource file */
HBufC* iDefaultAttachmentName;
/** The default message footer that is appended when an email is only partially fetched.
The default partial message footer is defined in IMCM.rss */
HBufC8* iDefaultPartialMessageFooter;
/** The StorePlainBodyText flag. The flag value is read from a resource file */
TInt iStorePlainBodyText;
/** Download rules for sync phase */
CImapSyncDownloadRules* iSyncDownloadRules;
/** Transport buffer sizes for fetch operations */
CImapTransportBufferSizes* iTransportBufferSizes;
/** Stores the currently connected brearer type */
TUint32 iCurrentBearerType;
};
#endif // __CIMAPSETTINGS_H__