diff -r 9f4e37332ce5 -r 473321461bba vpnui/vpnmanagementui/src/vpnapiwrapper.cpp --- a/vpnui/vpnmanagementui/src/vpnapiwrapper.cpp Thu Aug 19 10:54:34 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -/* -* Copyright (c) 2003-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: Wrapper for vpnapi -* -*/ - -#include -#include -#include -#include "vpnapiwrapper.h" - -#include "log_vpnmanagementui.h" - -using namespace CMManager; - -CVpnApiWrapper* CVpnApiWrapper::NewL() - { - CVpnApiWrapper* self = new (ELeave) CVpnApiWrapper(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -CVpnApiWrapper::CVpnApiWrapper() : - CActive(EPriorityNormal), iOngoingTask(ETaskNone) - { - } - -CVpnApiWrapper::~CVpnApiWrapper() - { - LOG_("CVpnApiWrapper::~CVpnApiWrapper() called\n"); - delete iPolicyList; - Cancel(); - - iVpnExtApi.Close(); - } - -void CVpnApiWrapper::DoCancel() - { - LOG_("CVpnApiWrapper::DoCancel() called\n"); - - TInt i=iVpnExtApi.CancelPolicyProvision(); - - iOngoingTask = ETaskNone; - } - -void CVpnApiWrapper::RunL() - { - LOG_1("CVpnApiWrapper::RunL():%d", iStatus.Int()); - - if (iOngoingTask == ETaskSynchroniseServer) - { - iCaller->NotifySynchroniseServerCompleteL(iStatus.Int()); - } - - iOngoingTask = ETaskNone; - } - -void CVpnApiWrapper::ConstructL() - { - LOG_("CVpnApiWrapper::ConstructL() - begin"); - - CActiveScheduler::Add(this); - - User::LeaveIfError(iVpnExtApi.Connect()); - LOG_("CVpnApiWrapper::ConstructL() - end"); - } - -CArrayFixFlat* CVpnApiWrapper::PolicyListL() - { - BuildPolicyListL(); - return iPolicyList; - } - -void CVpnApiWrapper::BuildPolicyListL() - { - LOG_("CVpnApiWrapper::BuildPolicyListL() - begin"); - - delete iPolicyList; - iPolicyList = NULL; - - iPolicyList = new (ELeave) CArrayFixFlat(2); - - User::LeaveIfError(iVpnExtApi.GetPolicyInfoList(iPolicyList)); - - TKeyArrayFix Key( _FOFF(TVpnPolicyInfo,iName), ECmpCollated ); - Key.SetPtr( iPolicyList ); - iPolicyList->Sort( Key ); - - LOG_("CVpnApiWrapper::BuildPolicyListL() - end"); - } - -void CVpnApiWrapper::DeletePolicyL(TInt aPolicyIndex) - { - LOG_("CVpnApiWrapper::DeletePolicyL() - begin"); - - TVpnPolicyId& policyToDelete = iPolicyList->At(aPolicyIndex).iId; - User::LeaveIfError(iVpnExtApi.DeletePolicy(policyToDelete)); - - //Delete all VPN APs pointing deleted policy - DeleteReferringVpnAps(policyToDelete); - - LOG_("CVpnApiWrapper::DeletePolicyL() - end"); - } - -void CVpnApiWrapper::GetPolicyDetailsL(TInt aPolicyIndex, TVpnPolicyDetails& aPolicyDetails) - { - LOG_("CVpnApiWrapper::GetPolicyDetailsL() - begin"); - - TVpnPolicyId& policyOfInterest = iPolicyList->At(aPolicyIndex).iId; - User::LeaveIfError(iVpnExtApi.GetPolicyDetails(policyOfInterest, aPolicyDetails)); - - LOG_("CVpnApiWrapper::GetPolicyDetailsL() - end"); - } - - - -TInt CVpnApiWrapper::CreateServer( const TAgileProvisionApiServerSettings& aServerDetails) - { - - iPolicyServer.iServerNameLocal = aServerDetails.iServerNameLocal; - iPolicyServer.iServerUrl = aServerDetails.iServerUrl; - iPolicyServer.iSelection = aServerDetails.iSelection; - - return iVpnExtApi.CreateServer(iPolicyServer); - } - -TAgileProvisionApiServerListElem& CVpnApiWrapper::ServerListL() - { - TInt err(iVpnExtApi.ServerListL( iVpnPolicyServerList )); - User::LeaveIfError( err ); - - return iVpnPolicyServerList; - - } - -void CVpnApiWrapper::GetServerDetailsL( TAgileProvisionApiServerSettings& aServerDetails ) - { - User::LeaveIfError( iVpnExtApi.ServerDetails(aServerDetails)); - } - -TInt CVpnApiWrapper::DeleteServer() - { - - return iVpnExtApi.DeleteServer(); - - } - -void CVpnApiWrapper::SynchroniseServerL( MVpnApiWrapperCaller* aCaller ) - { - iCaller=aCaller; - iVpnExtApi.SynchronizePolicyServer(iStatus); - SetActive(); - iOngoingTask = ETaskSynchroniseServer; - } - -void CVpnApiWrapper::CancelSynchronise() - { - - Cancel(); - - } - -void CVpnApiWrapper::DeleteReferringVpnAps(const TVpnPolicyId& aPolicyId) const - { - TRAP_IGNORE(DeleteReferringVpnApsL(aPolicyId)); - } - -void CVpnApiWrapper::DeleteReferringVpnApsL(const TVpnPolicyId& aPolicyId) const - { - RCmManager cmManager; - cmManager.OpenLC(); - - //First collect all VPN connection methods from destinations - RArray destinationArray; - cmManager.AllDestinationsL( destinationArray ); - CleanupClosePushL(destinationArray); - - for (TInt i = 0; i < destinationArray.Count(); ++i) - { - RCmDestination destination = cmManager.DestinationL( destinationArray[i] ); - CleanupClosePushL(destination); - - TInt connectionMethodCount = destination.ConnectionMethodCount(); - for (TInt j = connectionMethodCount - 1; j >= 0; --j) - { - RCmConnectionMethod connectionMethod = destination.ConnectionMethodL( j ); - CleanupClosePushL(connectionMethod); - - if ( connectionMethod.GetBoolAttributeL(ECmVirtual) && - connectionMethod.GetIntAttributeL( ECmBearerType ) == KPluginVPNBearerTypeUid) - { - HBufC* policyId = connectionMethod.GetStringAttributeL( EVpnServicePolicy ); - CleanupStack::PushL(policyId); - if (policyId->Compare(aPolicyId) == 0) - { - destination.DeleteConnectionMethodL( connectionMethod ); - destination.UpdateL(); - } - CleanupStack::PopAndDestroy(policyId); - } - CleanupStack::PopAndDestroy(); //connectionMethod - } - - CleanupStack::PopAndDestroy(); //destination - } - CleanupStack::PopAndDestroy(); //destinationArray - - //Second collect VPN connection methods, which are not inside a destination. - RArray connectionMethodArray; - cmManager.ConnectionMethodL( connectionMethodArray ); - CleanupClosePushL(connectionMethodArray); - - for ( TInt i = 0; i < connectionMethodArray.Count(); ++i) - { - RCmConnectionMethod connectionMethod = - cmManager.ConnectionMethodL( connectionMethodArray[i] ); - CleanupClosePushL(connectionMethod); - if ( connectionMethod.GetBoolAttributeL(ECmVirtual) && - connectionMethod.GetIntAttributeL( ECmBearerType ) == KPluginVPNBearerTypeUid) - { - HBufC* policyId = connectionMethod.GetStringAttributeL( EVpnServicePolicy ); - CleanupStack::PushL(policyId); - if (policyId->Compare(aPolicyId) == 0) - { - connectionMethod.DeleteL(); - connectionMethod.UpdateL(); - } - CleanupStack::PopAndDestroy(policyId); - } - - CleanupStack::PopAndDestroy(); //connectionMethod - } - CleanupStack::PopAndDestroy(); //connectionMethodArray - - CleanupStack::PopAndDestroy(); //cmManager - } -/***/