diff -r 000000000000 -r d6fe6244b863 creator/src/creator_connectionmethodelement.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/creator/src/creator_connectionmethodelement.cpp Tue Feb 02 00:17:27 2010 +0200 @@ -0,0 +1,754 @@ +/* +* Copyright (c) 2008 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_connectionmethodelement.h" +#include "creator_traces.h" + +#if(!defined __SERIES60_30__ && !defined __SERIES60_31__) +#include "creator_connectionmethod.h" +#include +#include +#include +#include +#include +#include +#include +#else +#include "creator_accesspoint.h" +#endif + + +using namespace creatorconnectionmethod; + +// connection name needs extra space for possible renaming +const TInt KExtraSpace = 10; + +/* + * + */ +CCreatorConnectionMethodElement* CCreatorConnectionMethodElement::NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext ) + { + CCreatorConnectionMethodElement* self = new (ELeave) CCreatorConnectionMethodElement(aEngine); + CleanupStack::PushL(self); + self->ConstructL(aName, aContext); + CleanupStack::Pop(self); + return self; + } +/* + * + */ +CCreatorConnectionMethodElement::CCreatorConnectionMethodElement(CCreatorEngine* aEngine) +: +CCreatorScriptElement(aEngine) + { + iIsCommandElement = ETrue; + } + +#if(!defined __SERIES60_30__ && !defined __SERIES60_31__) +void CCreatorConnectionMethodElement::ExecuteCommandL() + { + const CCreatorScriptAttribute* amountAttr = FindAttributeByName(KAmount); + TInt cmAmount = 1; + if( amountAttr ) + { + cmAmount = ConvertStrToIntL(amountAttr->Value()); + } + // Get 'fields' element + CCreatorScriptElement* fieldsElement = FindSubElement(KFields); + if( fieldsElement && fieldsElement->SubElements().Count() > 0 ) + { + // Get sub-elements + const RPointerArray& fields = fieldsElement->SubElements(); + // Create connection method entries, the amount of entries is defined by cmAmount: + for( TInt cI = 0; cI < cmAmount; ++cI ) + { + CConnectionSettingsParameters* param = new (ELeave) CConnectionSettingsParameters; + CleanupStack::PushL(param); + + 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( elemName == Kconnectionname ) + { + if( useRandom ) + { + param->SetRandomCMNameL(*iEngine); + } + else + { + SetContentToTextParamL(param->iConnectionName, elemContent); + // reserve extra space for possible renaming + TInt newLen = param->iConnectionName->Length() + KExtraSpace; + param->iConnectionName = param->iConnectionName->ReAllocL(newLen); + } + } + else if( elemName == Kstartpage ) + { + if( useRandom ) + { + param->SetRandomStartPageL(*iEngine); + } + else + { + SetContentToTextParamL(param->iStartPage, elemContent); + } + } + else if( elemName == Kwapwspoption ) + { + if( useRandom ) + { + param->SetRandomWapWspOptionL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kconnectionless) == 0 ) + { + param->iWapWspOption = ECmWapWspOptionConnectionless; + } + else if( CompareIgnoreCase(elemContent, Kconnectionoriented) == 0 ) + { + param->iWapWspOption = ECmWapWspOptionConnectionOriented; + } + } + } + else if( elemName == Kprotocoltype ) + { + if( useRandom ) + { + param->SetRandomProtocolTypeL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kipv4) == 0 ) + { + param->iProtocolType = RPacketContext::EPdpTypeIPv4; + } + else if( CompareIgnoreCase(elemContent, Kipv6) == 0 ) + { + param->iProtocolType = RPacketContext::EPdpTypeIPv6; + } + } + } + else if( elemName == Kloginname ) + { + if( useRandom ) + { + param->SetRandomLoginNameL(*iEngine); + } + else + { + SetContentToTextParamL(param->iLoginName, elemContent); + } + } + else if( elemName == Ksecureauthentication ) + { + if( useRandom ) + { + param->SetRandomSecureAuthenticationL(*iEngine); + } + else + { + param->iSecureAuthentication = ConvertStrToBooleanL(elemContent); + } + } + else if( elemName == Kloginpass ) + { + if( useRandom ) + { + param->SetRandomLoginPassL(*iEngine); + } + else + { + SetContentToTextParamL(param->iLoginPass, elemContent); + } + } + else if( elemName == Kpromptpassword ) + { + if( useRandom ) + { + param->SetRandomPromptPasswordL(*iEngine); + } + else + { + param->iPromptPassword = ConvertStrToBooleanL(elemContent); + } + } + else if( elemName == Kgatewayaddress ) + { + if( useRandom ) + { + param->SetRandomGatewayAddressL(*iEngine); + } + else + { + SetContentToTextParamL(param->iGatewayAddress, elemContent); + } + } + else if( elemName == Ksubnetmask ) + { + if( useRandom ) + { + param->SetRandomSubnetMaskL(*iEngine); + } + else + { + SetContentToTextParamL(param->iSubnetMask, elemContent); + } + } + else if( elemName == Kdeviceipaddr ) + { + if( useRandom ) + { + param->SetRandomIPAddressL(*iEngine); + } + else + { + SetContentToTextParamL(param->iIPAddr, elemContent); + } + } + else if( elemName == Kip4nameserver1 ) + { + if( useRandom ) + { + param->SetRandomIP4NameServer1L(*iEngine); + } + else + { + SetContentToTextParamL(param->iIP4NameServer1, elemContent); + } + } + else if( elemName == Kip4nameserver2 ) + { + if( useRandom ) + { + param->SetRandomIP4NameServer2L(*iEngine); + } + else + { + SetContentToTextParamL(param->iIP4NameServer2, elemContent); + } + } + else if( elemName == Kdatacalltelnumber ) + { + if( useRandom ) + { + param->SetRandomTelephoneNumberL(*iEngine); + } + else + { + SetContentToTextParamL(param->iDefaultTelNumber, elemContent); + } + } + else if( elemName == Kdatacalltypeisdn ) + { + if( useRandom ) + { + param->SetRandomBearerTypeIsdnL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kanalogue) == 0 ) + param->iBearerCallTypeIsdn = CMManager::ECmCallTypeAnalogue; + else if( CompareIgnoreCase( elemContent, Kisdnv110) == 0 ) + param->iBearerCallTypeIsdn = CMManager::ECmCallTypeISDNv110; + else if( CompareIgnoreCase( elemContent, Kisdnv120) == 0 ) + param->iBearerCallTypeIsdn = CMManager::ECmCallTypeISDNv120; + } + } + else if( elemName == Kbearertype ) + { + if( useRandom ) + { + param->iBearerType = KRandomBearerType; + } + else + { + if( CompareIgnoreCase(elemContent, Kwlan) == 0 ) + { + param->iBearerType = KUidWlanBearerType; + } + else if( CompareIgnoreCase(elemContent, Kgprs) == 0 ) + { + param->iBearerType = KUidPacketDataBearerType; + } + else if( CompareIgnoreCase(elemContent, Kdatacall) == 0 ) + { + param->iBearerType = KUidCSDBearerType; + } + else if( CompareIgnoreCase(elemContent, Khsgsm) == 0 ) + { + param->iBearerType = KUidHSCSDBearerType; + } + else if( CompareIgnoreCase(elemContent, Kembedded) == 0 ) + { + param->iBearerType = KUidEmbeddedDestination; + } + else if( CompareIgnoreCase(elemContent, Kvpn) == 0 ) + { + param->iBearerType = KPluginVPNBearerTypeUid; + } + else if( CompareIgnoreCase(elemContent, Klan) == 0 ) + { + param->iBearerType = KUidLanBearerType; + } + } + } + else if( elemName == Kdatacalllinespeed ) + { + if( useRandom ) + { + param->SetRandomBearerSpeedL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kautomatic) == 0 ) + { + param->iBearerSpeed = CMManager::ECmSpeedAutobaud; + } + else + { + TUint lineSpeed = ConvertStrToUintL(elemContent); + if( lineSpeed == 9600 ) + param->iBearerSpeed = CMManager::ECmSpeed9600; + else if( lineSpeed == 14400 ) + param->iBearerSpeed = CMManager::ECmSpeed14400; + else if( lineSpeed == 19200 ) + param->iBearerSpeed = CMManager::ECmSpeed19200; + else if( lineSpeed == 28800 ) + param->iBearerSpeed = CMManager::ECmSpeed28800; + else if( lineSpeed == 38400 ) + param->iBearerSpeed = CMManager::ECmSpeed38400; + else if( lineSpeed == 43200 ) + param->iBearerSpeed = CMManager::ECmSpeed43200; + else if( lineSpeed == 56000 ) + param->iBearerSpeed = CMManager::ECmSpeed56000; + } + } + } + else if( elemName == Kuseproxy ) + { + if( useRandom ) + { + param->SetRandomUseProxyL(*iEngine); + } + else + { + param->iUseProxy = ConvertStrToBooleanL(elemContent); + } + } + else if( elemName == Kproxyserveraddress ) + { + if( useRandom ) + { + param->SetRandomProxyAddressL(*iEngine); + } + else + { + SetContentToTextParamL(param->iProxyServerAddress, elemContent); + } + } + else if( elemName == Kproxyportnumber ) + { + if( useRandom ) + { + param->SetRandomProxyPortL(*iEngine); + } + else + { + param->iProxyPortNumber = ConvertStrToUintL(elemContent); + } + } + else if( elemName == Kip6nameserver1 ) + { + if( useRandom ) + { + param->SetRandomIPv6NameServer1L(*iEngine); + } + else + { + SetContentToTextParamL(param->iIP6NameServer1, elemContent); + } + } + else if( elemName == Kip6nameserver2 ) + { + if( useRandom ) + { + param->SetRandomIPv6NameServer2L(*iEngine); + } + else + { + SetContentToTextParamL(param->iIP6NameServer2, elemContent); + } + } + else if( elemName == Kdisabletextauth ) + { + if( useRandom ) + { + param->SetRandomDisableTextAuthL(*iEngine); + } + else + { + param->iDisableTextAuth = ConvertStrToBooleanL(elemContent); + } + } + else if( elemName == Kwlanname ) + { + if( useRandom ) + { + param->SetRandomWLANNameL(*iEngine); + } + else + { + SetContentToTextParamL(param->iWLANName, elemContent); + } + } + else if( elemName == Kwlanipaddr ) + { + if( useRandom ) + { + param->SetRandomWlanIpAddrL(*iEngine); + } + else + { + SetContentToTextParamL(param->iWlanIpAddr, elemContent); + } + } + else if( elemName == Kwlansecmode ) + { + if( useRandom ) + { + param->SetRandomWLANSecurityModeL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kopen) == 0) + param->iWLanSecMode = CMManager::EWlanSecModeOpen; + else if( CompareIgnoreCase(elemContent, Kwep) == 0 ) + param->iWLanSecMode = CMManager::EWlanSecModeWep; + else if( CompareIgnoreCase(elemContent, Ke802_1x) == 0 ) + param->iWLanSecMode = CMManager::EWlanSecMode802_1x; + else if( CompareIgnoreCase(elemContent, Kwpa) == 0 ) + param->iWLanSecMode = CMManager::EWlanSecModeWpa; + else if( CompareIgnoreCase(elemContent, Kwpa2) == 0 ) + param->iWLanSecMode = CMManager::EWlanSecModeWpa2; + } + } + } + iEngine->AppendToCommandArrayL(ECmdCreateMiscEntryAccessPoints, param); + CleanupStack::Pop(); // param + } + } + else + { + // No fields defined so add random entries: + iEngine->AppendToCommandArrayL(ECmdCreateMiscEntryAccessPoints, 0, cmAmount); + } + } +#else +void CCreatorConnectionMethodElement::ExecuteCommandL() + { + const CCreatorScriptAttribute* amountAttr = FindAttributeByName(KAmount); + TInt cmAmount = 1; + if( amountAttr ) + { + cmAmount = ConvertStrToIntL(amountAttr->Value()); + } + // Get 'fields' element + CCreatorScriptElement* fieldsElement = FindSubElement(KFields); + if( fieldsElement ) + { + // Get sub-elements + const RPointerArray& fields = fieldsElement->SubElements(); + // Create connection method entries, the amount of entries is defined by cmAmount: + for( TInt cI = 0; cI < cmAmount; ++cI ) + { + CAccessPointsParameters* param = new (ELeave) CAccessPointsParameters; + CleanupStack::PushL(param); + + 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( elemName == Kconnectionname ) + { + if( useRandom ) + { + param->SetRandomCMNameL(*iEngine); + } + else + { + SetContentToTextParamL(param->iConnectionName, elemContent); + // reserve extra space for possible renaming + TInt newLen = param->iConnectionName->Length() + KExtraSpace; + param->iConnectionName = param->iConnectionName->ReAllocL(newLen); + + SetContentToTextParamL(param->iGprsAcessPointName, elemContent); + } + } + else if( elemName == Kstartpage ) + { + if( useRandom ) + { + param->SetRandomStartPageL(*iEngine); + } + else + { + SetContentToTextParamL(param->iWapStartPage, elemContent); + } + } + else if( elemName == Kwapwspoption ) + { + if( useRandom ) + { + param->SetRandomWapWspOptionL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kconnectionless) == 0 ) + { + param->iWapWspOption = EWapWspOptionConnectionless; + } + else if( CompareIgnoreCase(elemContent, Kconnectionoriented) == 0 ) + { + param->iWapWspOption = EWapWspOptionConnectionOriented; + } + } + } + else if( elemName == Kloginname ) + { + if( useRandom ) + { + param->SetRandomLoginNameL(*iEngine); + } + else + { + SetContentToTextParamL(param->iIspLoginName, elemContent); + } + } + else if( elemName == Ksecureauthentication ) + { + if( useRandom ) + { + param->SetRandomSecureAuthenticationL(*iEngine); + } + else + { + param->iSecureAuthentication = ConvertStrToBooleanL(elemContent); + } + } + else if( elemName == Kloginpass ) + { + if( useRandom ) + { + param->SetRandomLoginPassL(*iEngine); + } + else + { + SetContentToTextParamL(param->iIspLoginPass, elemContent); + } + } + else if( elemName == Kpromptpassword ) + { + if( useRandom ) + { + param->SetRandomPromptPasswordL(*iEngine); + } + else + { + param->iPromptPassword = ConvertStrToBooleanL(elemContent); + } + } + else if( elemName == Kgatewayaddress ) + { + if( useRandom ) + { + param->SetRandomGatewayAddressL(*iEngine); + } + else + { + SetContentToTextParamL(param->iWapGatewayAddress, elemContent); + } + } + else if( elemName == Kdeviceipaddr ) + { + if( useRandom ) + { + param->SetRandomIPAddressL(*iEngine); + } + else + { + SetContentToTextParamL(param->iIspIPAddr, elemContent); + } + } + else if( elemName == Kip4nameserver1 ) + { + if( useRandom ) + { + param->SetRandomIP4NameServer1L(*iEngine); + } + else + { + SetContentToTextParamL(param->iIspIPNameServer1, elemContent); + } + } + else if( elemName == Kip4nameserver2 ) + { + if( useRandom ) + { + param->SetRandomIP4NameServer2L(*iEngine); + } + else + { + SetContentToTextParamL(param->iIspIPNameServer2, elemContent); + } + } + else if( elemName == Kdatacalltelnumber ) + { + if( useRandom ) + { + param->SetRandomTelephoneNumberL(*iEngine); + } + else + { + SetContentToTextParamL(param->iIspDefaultTelNumber, elemContent); + } + } + else if( elemName == Kdatacalltypeisdn ) + { + if( useRandom ) + { + param->SetRandomBearerTypeIsdnL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kanalogue) == 0 ) + param->iIspBearerCallTypeIsdn = ECallTypeAnalogue; + else if( CompareIgnoreCase( elemContent, Kisdnv110) == 0 ) + param->iIspBearerCallTypeIsdn = ECallTypeISDNv110; + else if( CompareIgnoreCase( elemContent, Kisdnv120) == 0 ) + param->iIspBearerCallTypeIsdn = ECallTypeISDNv120; + } + } + else if( elemName == Kbearertype ) + { + if( useRandom ) + { + param->iBearerType = EApBearerTypeGPRS; + } + else + { + if( CompareIgnoreCase(elemContent, Kwlan) == 0 ) + { + param->iBearerType = EApBearerTypeWLAN; + } + else if( CompareIgnoreCase(elemContent, Kgprs) == 0 ) + { + param->iBearerType = EApBearerTypeGPRS; + } + else if( CompareIgnoreCase(elemContent, Kdatacall) == 0 ) + { + param->iBearerType = EApBearerTypeCSD; + } + else if( CompareIgnoreCase(elemContent, Khsgsm) == 0 ) + { + param->iBearerType = EApBearerTypeHSCSD; + } + else if( CompareIgnoreCase(elemContent, Klan) == 0 ) + { + param->iBearerType = EApBearerTypeLAN; + } + } + } + else if( elemName == Kdatacalllinespeed ) + { + if( useRandom ) + { + param->SetRandomBearerSpeedL(*iEngine); + } + else + { + if( CompareIgnoreCase(elemContent, Kautomatic) == 0 ) + { + param->iIspBearerSpeed = KSpeedAutobaud; + } + else + { + TUint lineSpeed = ConvertStrToUintL(elemContent); + if( lineSpeed == 9600 ) + param->iIspBearerSpeed = KSpeed9600; + else if( lineSpeed == 14400 ) + param->iIspBearerSpeed = KSpeed14400; + else if( lineSpeed == 19200 ) + param->iIspBearerSpeed = KSpeed19200; + else if( lineSpeed == 28800 ) + param->iIspBearerSpeed = KSpeed28800; + else if( lineSpeed == 38400 ) + param->iIspBearerSpeed = KSpeed38400; + else if( lineSpeed == 43200 ) + param->iIspBearerSpeed = KSpeed43200; + else if( lineSpeed == 56000 ) + param->iIspBearerSpeed = KSpeed56000; + } + } + } + else if( elemName == Kproxyserveraddress ) + { + if( useRandom ) + { + param->SetRandomProxyAddressL(*iEngine); + } + else + { + SetContentToTextParamL(param->iProxyServerAddress, elemContent); + } + } + else if( elemName == Kproxyportnumber ) + { + if( useRandom ) + { + param->SetRandomProxyPortL(*iEngine); + } + else + { + param->iProxyPortNumber = ConvertStrToUintL(elemContent); + } + } + } + iEngine->AppendToCommandArrayL(ECmdCreateMiscEntryAccessPoints, param); + CleanupStack::Pop(); // param + } + } + } +#endif