creator/engine/src/creator_mailboxelement.cpp
branchRCL_3
changeset 22 fad26422216a
parent 21 b3cee849fa46
child 23 f8280f3bfeb7
--- a/creator/engine/src/creator_mailboxelement.cpp	Tue Aug 31 15:15:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,496 +0,0 @@
-/*
-* Copyright (c) 2010 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 "creator_mailboxelement.h"
-#include "creator_traces.h"
-#include "creator_mailbox.h"
-
-using namespace creatormailbox;
-
-/*
- * 
- */
-CCreatorMailboxElement* CCreatorMailboxElement::NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext )
-    {
-    CCreatorMailboxElement* self = new (ELeave) CCreatorMailboxElement(aEngine);
-    CleanupStack::PushL(self);
-    self->ConstructL(aName, aContext);
-    CleanupStack::Pop(self);
-    return self;
-    }
-/*
- * 
- */
-CCreatorMailboxElement::CCreatorMailboxElement(CCreatorEngine* aEngine) 
-: 
-CCreatorScriptElement(aEngine)
-    {
-    iIsCommandElement = ETrue;
-    }
-
-TBool CCreatorMailboxElement::SetIntegerParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
-    {    
-    _LIT( KAll, "all");
-    
-    if( aElemName == Kincomingport )
-        {
-        if( aSetRandom )
-            param->iIncomingPort = iEngine->RandomNumber(25, 500);
-        else        
-            param->iIncomingPort = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Kattachmentsizelimit )
-        {
-        if( aSetRandom )
-            param->iAttachmentSizeLimit = iEngine->RandomNumber(1, KMaxTInt);
-        else
-            param->iAttachmentSizeLimit = ConvertStrToIntL(aElemContent);
-        }        
-    else if( aElemName == Kbodytextsizelimit )
-        {
-        if( aSetRandom )
-            param->iBodyTextSizeLimit = iEngine->RandomNumber(1, KMaxTInt);
-        else
-            param->iBodyTextSizeLimit = ConvertStrToIntL(aElemContent);
-        }     
-    else if( aElemName == Kattachmentfetchsize )
-        {
-        if( aSetRandom )
-            param->iAttachmentFetchSize = iEngine->RandomNumber(1, 40960);
-        else            
-            param->iAttachmentFetchSize = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Kimapidletimeout )
-        {
-        if( aSetRandom )
-            param->iImapIdleTimeout = iEngine->RandomNumber(10, 2000);
-        else
-            param->iImapIdleTimeout = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Kmaxemailsize )
-        {
-        if( aSetRandom )
-            param->iMaxEmailSize =  iEngine->RandomNumber(1024, KMaxTInt);
-        else
-            param->iMaxEmailSize = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Ksyncrate )
-        {
-        if( aSetRandom )
-            param->iSyncRate = iEngine->RandomNumber(10, 500);
-        else
-            param->iSyncRate = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Kinboxsynclimit )
-        {
-        if( aSetRandom )
-            param->iInboxSyncLimit = iEngine->RandomNumber(-1, 256);
-        else if( CompareIgnoreCase(aElemContent, KAll) == 0 )
-            param->iInboxSyncLimit = -1;
-        else
-            param->iInboxSyncLimit = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Kmailboxsynclimit )
-        {
-        if( aSetRandom )
-            param->iMailboxSyncLimit = iEngine->RandomNumber(-1, 256);
-        else if( CompareIgnoreCase(aElemContent, KAll) == 0 )
-            param->iMailboxSyncLimit = -1;
-        else
-            param->iMailboxSyncLimit = ConvertStrToIntL(aElemContent);
-        }        
-    else if( aElemName == Koutgoingport )
-        {
-        if( aSetRandom )
-            param->iOutgoingPort = KDefaultSmtpPort;
-        else
-            param->iOutgoingPort = ConvertStrToIntL(aElemContent);
-        }
-    else if( aElemName == Ktoccincludelimit )
-        {
-        if( aSetRandom )
-            param->iToCCIncludeLimit = iEngine->RandomNumber(0, 30);
-        else
-            param->iToCCIncludeLimit = ConvertStrToIntL(aElemContent);
-        }
-    else
-        return EFalse;
-    
-    return ETrue;
-    }
-
-TBool CCreatorMailboxElement::GetBooleanValueL(const TDesC& aElemContent, TBool aSetRandom)
-    {
-    if( aSetRandom )
-        return iEngine->RandomNumber(0,1) == 1;
-    
-    return ConvertStrToBooleanL(aElemContent);
-    }
-
-TBool CCreatorMailboxElement::SetBooleanParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
-    {  
-    TBool val = GetBooleanValueL(aElemContent, aSetRandom);
-    if( aElemName == Kincomingsslwrapper )
-        param->iIncomingSSLWrapper = val;
-    else if( aElemName == Kincomingsecuresockets )
-        param->iIncomingSecureSockets = val;
-    else if( aElemName == Kacknowledgereceipts )
-        param->iAcknowledgeReceipts = val;
-    else if( aElemName == Kautosendonconnect )
-        param->iAutoSendOnConnect = val;
-    else if( aElemName == Kdeletemailsatdisconnect )
-        param->iDeleteEmailsAtDisconnect = val;
-    else if( aElemName == Kimapidlecommand )
-        param->iImapIdleCommand = val;
-    else if( aElemName == Kmarkseeninsync )
-        param->iMarkSeenInSync = val;
-    else if( aElemName == Kenableexpungemode )
-        param->iEnableExpungeMode = val;
-    else if( aElemName == Kuseapopsecurelogin )
-        param->iUseApop = val;
-    else if( aElemName == Kdisconnectedusermode )
-        param->iDisconnectedUserMode = val;
-    else if( aElemName == Koutgoingsslwrapper )
-        param->iOutgoingSSLWrapper = val;
-    else if( aElemName == Koutgoingsecuresockets )
-        param->iOutgoingSecureSockets = val;
-    else if( aElemName == Kincludesignature )
-        param->iIncludeSignature = val;
-    else if( aElemName == Kaddvcard )
-        param->iAddVCard = val;
-    else if( aElemName == Krequestreceipts )
-        param->iRequestReceipts = val;
-    else if( aElemName == Ksmtpauth )
-        param->iSmtpAuth = val;
-    else
-        return EFalse;
-
-    return ETrue;
-    }
-
-TBool CCreatorMailboxElement::SetTextParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
-    {   
-    _LIT(KIncomingSrvPrefix, "mail.");
-    _LIT(KOutgoingSrvPrefix, "smtp.");
-    _LIT(KSrvPostfix, ".com");
-    _LIT(KDefaultConnMethod, "internet");
-    
-    if( aElemName == Kname )
-        {
-        if( aSetRandom )
-            {
-            TPtrC company(iEngine->RandomString(CCreatorEngine::ECompany));
-            SetContentToTextParamL(param->iMailboxName, company);
-            }
-        else
-            SetContentToTextParamL(param->iMailboxName, aElemContent);
-        }
-    else if( aElemName == Kincomingloginname )
-        {
-        if( aSetRandom )
-            {
-            TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
-            SetContentToTextParamL(param->iIncomingLoginName, random);
-            param->iIncomingLoginName->Des().LowerCase();
-            }
-        else
-            SetContentToTextParamL(param->iIncomingLoginName, aElemContent);
-        }
-    else if( aElemName == Kincomingpassword )
-        {
-        if( aSetRandom )
-            {
-            TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
-            SetContentToTextParamL(param->iIncomingPassword, random);
-            param->iIncomingPassword->Des().LowerCase();
-            }
-        else
-            SetContentToTextParamL(param->iIncomingPassword, aElemContent);
-        }
-    else if( aElemName == Kincomingservername )
-        {
-        if( aSetRandom )
-            {
-            TPtrC random(iEngine->RandomString(CCreatorEngine::ECompany));
-            HBufC* srvName = HBufC::NewLC(KIncomingSrvPrefix().Length()+random.Length()+KSrvPostfix().Length());
-            srvName->Des().Copy(KIncomingSrvPrefix);
-            srvName->Des().Append(random);
-            srvName->Des().Append(KSrvPostfix);
-            SetContentToTextParamL(param->iIncomingServerName, srvName->Des());
-            CleanupStack::PopAndDestroy(); // srvName
-            }
-        else
-            SetContentToTextParamL(param->iIncomingServerName, aElemContent);
-        }
-    else if( aElemName == Kincomingconnectionmethod )
-        {
-        if( aSetRandom )                        
-            SetContentToTextParamL(param->iIncomingConnectionMethod, KDefaultConnMethod);            
-        else
-            SetContentToTextParamL(param->iIncomingConnectionMethod, aElemContent);
-        }
-    else if( aElemName == Kincomingfolderpath )
-        SetContentToTextParamL(param->iIncomingFolderPath, aElemContent);
-    else if( aElemName == Kpathseparator )
-        SetContentToTextParamL(param->iPathSeparator, aElemContent);
-    else if( aElemName == Koutgoingloginname )
-        {
-        if( aSetRandom )
-            {
-            TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
-            SetContentToTextParamL(param->iOutgoingLoginName, random);
-            param->iOutgoingLoginName->Des().LowerCase();
-            }
-        else
-            SetContentToTextParamL(param->iOutgoingLoginName, aElemContent);
-        }
-    else if( aElemName == Koutgoingpassword )
-        {
-        if( aSetRandom )
-            {
-            TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
-            SetContentToTextParamL(param->iOutgoingPassword, random);
-            param->iOutgoingPassword->Des().LowerCase();
-            }
-        else
-            SetContentToTextParamL(param->iOutgoingPassword, aElemContent);
-        }
-    else if( aElemName == Koutgoingservername )
-        {
-        if( aSetRandom )
-            {
-            TPtrC random(iEngine->RandomString(CCreatorEngine::ECompany));
-            HBufC* srvName = HBufC::NewLC(KOutgoingSrvPrefix().Length()+random.Length()+KSrvPostfix().Length());
-            srvName->Des().Copy(KOutgoingSrvPrefix);
-            srvName->Des().Append(random);
-            srvName->Des().Append(KSrvPostfix);
-            SetContentToTextParamL(param->iOutgoingServerName, srvName->Des());
-            CleanupStack::PopAndDestroy(); // srvName
-            }
-        else
-            SetContentToTextParamL(param->iOutgoingServerName, aElemContent);
-        }
-    else if( aElemName == Koutgoingconnectionmethod )
-        {
-        if( aSetRandom )            
-            SetContentToTextParamL(param->iOutgoingConnectionMethod, KDefaultConnMethod);            
-        else
-            SetContentToTextParamL(param->iOutgoingConnectionMethod, aElemContent);
-        }
-    else if( aElemName == Kownemail )
-        {
-        if( aSetRandom )
-            {
-            TDesC* email = iEngine->CreateEmailAddressLC();
-            SetContentToTextParamL(param->iOwnEmailAddress, *email);
-            CleanupStack::PopAndDestroy(); // email
-            }
-        else
-            SetContentToTextParamL(param->iOwnEmailAddress, aElemContent);
-        }
-    else if( aElemName == Kemailalias )
-        {
-        if( aSetRandom )
-            {
-            _LIT(KSpace, " ");
-            TPtrC firstName(iEngine->RandomString(CCreatorEngine::EFirstName));
-            TPtrC lastName(iEngine->RandomString(CCreatorEngine::ESurname));
-            HBufC* alias = HBufC::NewLC(firstName.Length() + lastName.Length() + KSpace().Length());
-            alias->Des().Copy(firstName);
-            alias->Des().Append(KSpace);
-            alias->Des().Append(lastName);
-            SetContentToTextParamL(param->iOwnEmailAlias, alias->Des());
-            CleanupStack::PopAndDestroy(); // alias
-            }
-        else        
-            SetContentToTextParamL(param->iOwnEmailAlias, aElemContent);
-        }
-    else if( aElemName == Kreceiptaddress )
-        {
-        if( aSetRandom )
-            {
-            TDesC* email = iEngine->CreateEmailAddressLC();
-            SetContentToTextParamL(param->iReceiptAddress, *email);
-            CleanupStack::PopAndDestroy(); // email
-            }
-        else
-            SetContentToTextParamL(param->iReceiptAddress, aElemContent);
-        }
-    else if( aElemName == Kreplytoaddress )
-        {
-        if( aSetRandom )
-            {
-            TDesC* email = iEngine->CreateEmailAddressLC();
-            SetContentToTextParamL(param->iReceiptAddress, *email);
-            CleanupStack::PopAndDestroy(); // email
-            }
-        else
-            SetContentToTextParamL(param->iReplyToAddress, aElemContent);
-        }
-    else
-        return EFalse;
-    
-    return ETrue;
-    }
-
-TBool CCreatorMailboxElement::SetEnumParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
-    {
-    // Get email options:
-    if( aElemName == Kgetemailoptions )
-        {
-        if( aSetRandom )
-            param->iGetEmailOptions = (CMailboxesParameters::TGetEmailOption) iEngine->RandomNumber(
-                                                    CMailboxesParameters::EGetHeaders, 
-                                                    CMailboxesParameters::EGetEmailOptionLast-1);
-        else if( CompareIgnoreCase(aElemContent, Kgetheaders ) == 0 )
-            param->iGetEmailOptions = CMailboxesParameters::EGetHeaders;
-        else if( CompareIgnoreCase(aElemContent, Kgetbodytext) == 0 )
-            param->iGetEmailOptions = CMailboxesParameters::EGetBodyText;
-        else if( CompareIgnoreCase(aElemContent, Kgetbodytextandattachments) == 0 )
-            param->iGetEmailOptions = CMailboxesParameters::EGetBodyTextAndAttachments;
-        else if( CompareIgnoreCase(aElemContent, Kgetattachments) == 0 )
-            param->iGetEmailOptions = CMailboxesParameters::EGetAttachments;
-        else if( CompareIgnoreCase(aElemContent, Kgetbodyalternativetext) == 0 )
-            param->iGetEmailOptions = CMailboxesParameters::EGetBodyAlternativeText;
-        else 
-            param->iGetEmailOptions = CMailboxesParameters::EUndef;
-        }
-    
-    // Subscribe type:
-    else if( aElemName == Ksubscribetype )
-        {
-        if( aSetRandom )
-            param->iSubscribeType = (TFolderSubscribeType) iEngine->RandomNumber( EUpdateNeither, EUpdateBoth );
-        else if( CompareIgnoreCase( aElemContent, Kupdatelocal) == 0 )
-            param->iSubscribeType = EUpdateLocal;            
-        else if( CompareIgnoreCase( aElemContent, Kupdateremote) == 0 )
-            param->iSubscribeType = EUpdateRemote;
-        else if( CompareIgnoreCase( aElemContent, Kupdateboth) == 0 )
-            param->iSubscribeType = EUpdateBoth;
-        else
-            param->iSubscribeType = EUpdateNeither;
-        }
-    
-    // Folder synchronization type:
-    else if( aElemName == Kfoldersynctype)
-        {
-        if( aSetRandom )
-            param->iSyncType = (TFolderSyncType) iEngine->RandomNumber(EUseCombination, EUseRemote);
-        else if( CompareIgnoreCase( aElemContent, Kuselocal) == 0 )
-            param->iSyncType = EUseLocal;
-        else if( CompareIgnoreCase( aElemContent, Kuseremote) == 0 )
-            param->iSyncType = EUseRemote;
-        else
-            param->iSyncType = EUseCombination;
-        }
-     
-    // Send copy to self option:
-    else if( aElemName == Kcopytoself )
-        {
-        if( aSetRandom )
-            param->iSendCopyToSelf = (TImSMTPSendCopyToSelf) iEngine->RandomNumber(ESendNoCopy, ESendCopyAsBccRecipient);
-        else if( CompareIgnoreCase( aElemContent, Kto) == 0 )
-            param->iSendCopyToSelf = ESendCopyAsToRecipient;
-        else if( CompareIgnoreCase( aElemContent, Kcc) == 0 )
-            param->iSendCopyToSelf = ESendCopyAsCcRecipient;
-        else if( CompareIgnoreCase( aElemContent, Kbcc) == 0 )
-            param->iSendCopyToSelf = ESendCopyAsBccRecipient;
-        else
-            param->iSendCopyToSelf = ESendNoCopy;
-        }
-    
-    // Send option:
-    else if( aElemName == Ksendoption )
-        {
-        if( aSetRandom )
-            param->iSendOption = (TImSMTPSendMessageOption) iEngine->RandomNumber(ESendMessageImmediately, ESendMessageOnRequest);
-        else if( CompareIgnoreCase( aElemContent, Konnextconnection) == 0 )
-            param->iSendOption = ESendMessageOnNextConnection;
-        else if( CompareIgnoreCase( aElemContent, Konrequest) == 0 )
-            param->iSendOption = ESendMessageOnRequest;
-        else
-            param->iSendOption = ESendMessageImmediately;
-        }
-    else
-        {
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-void CCreatorMailboxElement::ExecuteCommandL()
-    {
-    const CCreatorScriptAttribute* amountAttr = FindAttributeByName(KAmount);
-    const CCreatorScriptAttribute* typeAttr = FindAttributeByName(KMailboxType);
-    TInt amount = 1;    
-    if( amountAttr )
-        {
-        amount = ConvertStrToIntL(amountAttr->Value());
-        }
-    
-    TMailboxType mailboxType = EMailboxPOP3;
-    
-    if( typeAttr && CompareIgnoreCase(typeAttr->Value(), Kimap4) == 0 )
-        {
-        mailboxType = EMailboxIMAP4;
-        }
-    
-    // Get 'fields' element 
-    CCreatorScriptElement* fieldsElement = FindSubElement(KFields);
-    if( fieldsElement && fieldsElement->SubElements().Count() > 0)
-        {
-        // Get sub-elements
-        const RPointerArray<CCreatorScriptElement>& fields = fieldsElement->SubElements();        
-        // Create mailbox entries, the amount of entries is defined by amount:
-        for( TInt cI = 0; cI < amount; ++cI )
-            {            
-            CMailboxesParameters* param = new (ELeave) CMailboxesParameters;
-            CleanupStack::PushL(param);
-            
-            param->iMailboxType = mailboxType;
-            
-            for( TInt i = 0; i < fields.Count(); ++i )
-                {
-                CCreatorScriptElement* field = fields[i];
-                TPtrC elemName = field->Name();
-                TPtrC elemContent = field->Content();
-                const CCreatorScriptAttribute* randomAttr = fields[i]->FindAttributeByName(KRandomLength);
-                TBool useRandom = EFalse;
-                if( randomAttr || elemContent.Length() == 0 )
-                    {
-                    useRandom = ETrue;
-                    }
-                
-                if( SetTextParamL(elemName, elemContent, param, useRandom ) == EFalse &&
-                    SetBooleanParamL(elemName, elemContent, param, useRandom ) == EFalse &&
-                    SetIntegerParamL(elemName, elemContent, param, useRandom ) == EFalse &&
-                    SetEnumParamL(elemName, elemContent, param, useRandom ) )
-                    {
-                    LOGSTRING2("CCreatorMailboxElement::ExecuteCommandL: Unknown mailbox field: %S", &elemName);
-                    }
-                }
-            iEngine->AppendToCommandArrayL(ECmdCreateMessagingEntryMailboxes, param);
-            CleanupStack::Pop(); // param
-            }
-        }
-    else
-    	{
-    	iEngine->AppendToCommandArrayL(ECmdCreateMessagingEntryMailboxes, 0, amount);
-    	}
-    }