diff -r 000000000000 -r 72b543305e3a email/pop3andsmtpmtm/smtpservermtm/src/csmtpsettings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/pop3andsmtpmtm/smtpservermtm/src/csmtpsettings.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,398 @@ +// Copyright (c) 2007-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: +// + +#include "csmtpsettings.h" +#include +#include +#include + +/** +Factory constructor +*/ +CSmtpSettings* CSmtpSettings::NewL(const CMsvServerEntry& aServerEntry) + { + CSmtpSettings* self = new (ELeave) CSmtpSettings(aServerEntry); + CleanupStack::PushL(self); + self->ConstructL(aServerEntry); + CleanupStack::Pop(self); + return self; + } + +/** +Constructor +*/ +CSmtpSettings::CSmtpSettings(const CMsvServerEntry& aServerEntry) : + iSmtpAccountId(aServerEntry.Entry().MtmData2()) + { + } + +/** +Second phase constructor +*/ +void CSmtpSettings::ConstructL(const CMsvServerEntry& aServerEntry) + { + CEmailAccounts* emailAccounts = CEmailAccounts::NewLC(); + + iDefaultSettings = new(ELeave) CImSmtpSettings; + iIapPrefs= CImIAPPreferences::NewLC(); + CleanupStack::Pop(); + + TSmtpAccount id; + id.iSmtpAccountId = iSmtpAccountId; + id.iSmtpAccountName = aServerEntry.Entry().iDetails; + id.iSmtpService = aServerEntry.Entry().iServiceId; + id.iRelatedService = aServerEntry.Entry().iRelatedId; + + emailAccounts->LoadSmtpSettingsL(id, *iDefaultSettings); + emailAccounts->LoadSmtpIapSettingsL(id, *iIapPrefs); + + CleanupStack::PopAndDestroy(emailAccounts); + } + +/** +Destructor +*/ +CSmtpSettings::~CSmtpSettings() + { + delete iDefaultSettings; + delete iIapSettings; + delete iIapPrefs; + } + +/** +Sets the IAP currently in use. +The class will be updated to use the settings specific to that IAP + +@param aIap IAP in use +*/ +void CSmtpSettings::SetIapL(TUint32 aIap) + { + delete iIapSettings; + iIapSettings = NULL; + + if (aIap != KDefaultSettingsIap) + { + CEmailAccounts* emailAccounts = CEmailAccounts::NewLC(); + + CImSmtpMobilitySettings* newSettings = CImSmtpMobilitySettings::NewLC(); + + if (emailAccounts->LoadSmtpMobilitySettingsL(iSmtpAccountId, aIap, *newSettings)) + { + CleanupStack::Pop(newSettings); + iIapSettings = newSettings; + } + else + { + CleanupStack::PopAndDestroy(newSettings); + } + + CleanupStack::PopAndDestroy(emailAccounts); + } + } + +/** +Get the IAP preferences + +@return IAP preferences +*/ +CImIAPPreferences& CSmtpSettings::IapPrefs() + { + return *iIapPrefs; + } + +/** +Get server address + +@see CImSmtpSettings::ServerAddress() +@see CImSmtpMobilitySettings::ServerAddress() + +@return Server address +*/ +const TPtrC CSmtpSettings::ServerAddress() const + { + if (iIapSettings) + { + return iIapSettings->ServerAddress(); + } + else + { + return iDefaultSettings->ServerAddress(); + } + } + +/** +Get TCP port + +@see CImSmtpSettings::Port() +@see CImSmtpMobilitySettings::Port() + +@return TCP port +*/ +TUint CSmtpSettings::Port() const + { + if (iIapSettings) + { + return iIapSettings->Port(); + } + else + { + return iDefaultSettings->Port(); + } + } + +/** +Get secure sockets flag + +@see CImSmtpSettings::SecureSockets() +@see CImSmtpMobilitySettings::SecureSockets() + +@return ETrue if secure sockets flag is set, EFalse if not +*/ +TBool CSmtpSettings::SecureSockets() const + { + if (iIapSettings) + { + return iIapSettings->SecureSockets(); + } + else + { + return iDefaultSettings->SecureSockets(); + } + } + +/** +Get SSL Wrapper flag + +@see CImSmtpSettings::SSLWrapper() +@see CImSmtpMobilitySettings::SSLWrapper() + +@return ETrue if SSL wrapper flag is set, EFalse if not +*/ +TBool CSmtpSettings::SSLWrapper() const + { + if (iIapSettings) + { + return iIapSettings->SSLWrapper(); + } + else + { + return iDefaultSettings->SSLWrapper(); + } + } + +/** +Get bearer mobility flag + +@see CImSmtpSettings::BearerMobility() + +@return ETrue if bearer mobility flag is set, EFalse if not +*/ +TBool CSmtpSettings::BearerMobility() const + { + return iDefaultSettings->BearerMobility(); + } + +/** +Get email alias + +@see CImSmtpSettings::EmailAlias() +@see CImSmtpMobilitySettings::EmailAlias() + +@return Email alias +*/ +const TPtrC CSmtpSettings::EmailAlias() const + { + if (iIapSettings) + { + return iIapSettings->EmailAlias(); + } + else + { + return iDefaultSettings->EmailAlias(); + } + } + +/** +Get email address + +@see CImSmtpSettings::EmailAddress() +@see CImSmtpMobilitySettings::EmailAddress() + +@return Email address +*/ +const TPtrC CSmtpSettings::EmailAddress() const + { + if (iIapSettings) + { + return iIapSettings->EmailAddress(); + } + else + { + return iDefaultSettings->EmailAddress(); + } + } + +/** +Get reply to address + +@see CImSmtpSettings::ReplyToAddress() + +@return Reply to address +*/ +const TPtrC CSmtpSettings::ReplyToAddress() const + { + return iDefaultSettings->ReplyToAddress(); + } + +/** +Get receipt address + +@see CImSmtpSettings::ReceiptAddress() + +@return Receipt address +*/ +const TPtrC CSmtpSettings::ReceiptAddress() const + { + return iDefaultSettings->ReceiptAddress(); + } + +/** +Get body encoding + +@see CImSmtpSettings::BodyEncoding() + +@return Body encoding +*/ +TMsgOutboxBodyEncoding CSmtpSettings::BodyEncoding() const + { + return iDefaultSettings->BodyEncoding(); + } + +/** +Get default message charset + +@see CImSmtpSettings::DefaultMsgCharSet() +@see CImSmtpMobilitySettings::DefaultMsgCharSet() + +@return Default message charset +*/ +const TUid CSmtpSettings::DefaultMsgCharSet() const + { + if (iIapSettings) + { + return iIapSettings->DefaultMsgCharSet(); + } + else + { + return iDefaultSettings->DefaultMsgCharSet(); + } + } + +/** +Get send copy to self option + +@see CImSmtpSettings::SendCopyToSelf() + +@return Send copy to self option +*/ +TImSMTPSendCopyToSelf CSmtpSettings::SendCopyToSelf() const + { + return iDefaultSettings->SendCopyToSelf(); + } + +/** +Get login name + +@see CImSmtpSettings::LoginName() +@see CImSmtpMobilitySettings::LoginName() + +@return Login name +*/ +const TPtrC8 CSmtpSettings::LoginName() const + { + if (iIapSettings) + { + return iIapSettings->LoginName(); + } + else + { + return iDefaultSettings->LoginName(); + } + } + +/** +Get password + +@see CImSmtpSettings::Password() +@see CImSmtpMobilitySettings::Password() + +@return Password +*/ +const TPtrC8 CSmtpSettings::Password() const + { + if (iIapSettings) + { + return iIapSettings->Password(); + } + else + { + return iDefaultSettings->Password(); + } + } + +/** +Get SMTP authentication flag + +@see CImSmtpSettings::() +@see CImSmtpMobilitySettings::SMTPAuth() + +@return ETrue if SMTP authentication flag is set, EFalse if not +*/ +TBool CSmtpSettings::SMTPAuth() const + { + if (iIapSettings) + { + return iIapSettings->SMTPAuth(); + } + else + { + return iDefaultSettings->SMTPAuth(); + } + } + +/** +Get TLS/SSL domain name + +@see CImSmtpSettings::TlsSslDomain() +@see CImSmtpMobilitySettings::TlsSslDomain() + +@return TLS/SSL domain name +*/ +TPtrC8 CSmtpSettings::TlsSslDomain() const + { + if (iIapSettings) + { + return iIapSettings->TlsSslDomain(); + } + else + { + return iDefaultSettings->TlsSslDomain(); + } + } + +const CImSmtpSettings& CSmtpSettings::SmtpSettings() const + { + return *iDefaultSettings; + }