--- a/commsconfig/cscsipvoipcleanupplugin/src/cscsvcpluginhandler.cpp Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/*
-* Copyright (c) 2007-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 <spproperty.h>
-#include <spsettings.h>
-#include <cmmanagerext.h>
-#include <XdmSettingsApi.h>
-#include <pressettingsapi.h>
-#include <cmpluginwlandef.h>
-#include <cmdestinationext.h>
-#include <XdmSettingsCollection.h>
-
-#include "cscsvcpluginlogger.h"
-#include "cscsvcpluginhandler.h"
-#include "cscsvcpluginsiphandler.h"
-#include "cscsvcpluginrcsehandler.h"
-#include "cscsvcplugincenrephandler.h"
-
-// At-character in SIP profile public username.
-_LIT8( KSvcPluginAtCharacter, "@" );
-
-// Maximum lengths of the setting values.
-const TInt KSvcPluginSettingLength = 256;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSvcPluginHandler::CCSCSvcPluginHandler()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-void CCSCSvcPluginHandler::ConstructL()
- {
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::ConstructL - begin");
-
- iRcseHandler = CCSCSvcPluginRcseHandler::NewL();
- iSipHandler = CCSCSvcPluginSipHandler::NewL();
- iCenRepHandler = CCSCSvcPluginCenrepHandler::NewL();
-
- // Create descriptor array for domain names.
- iDomainNames = new ( ELeave ) CDesC8ArrayFlat( 1 );
-
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::ConstructL - end");
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSvcPluginHandler* CCSCSvcPluginHandler::NewL()
- {
- CCSCSvcPluginHandler* self = new (ELeave) CCSCSvcPluginHandler;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSvcPluginHandler::~CCSCSvcPluginHandler()
- {
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::~CCSCSvcPluginHandler - begin");
-
- iIapIds.Close();
- iSipProfileIds.Close();
-
- if ( iDomainNames )
- {
- iDomainNames->Reset();
- }
- delete iDomainNames;
- delete iRcseHandler;
- delete iSipHandler;
- delete iCenRepHandler;
-
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::~CCSCSvcPluginHandler - end");
- }
-
-
-// ---------------------------------------------------------------------------
-// For settings removation.
-// ---------------------------------------------------------------------------
-//
-void CCSCSvcPluginHandler::RemoveSettingsL( TUint32 aServiceId )
- {
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::RemoveSettingsL - begin");
-
- // Search data based on service id
- SearchSettingsDataL( aServiceId );
-
- // Unregister. (SIP profiles are set to when needed mode.)
- for ( TInt i = 0; i < iSipProfileIds.Count(); i++ )
- {
- iSipHandler->SetRegistrationModeL( iSipProfileIds[ i ], EFalse );
- }
-
- // Remove all profiles/settings.
- RemoveProfilesL( aServiceId );
-
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::RemoveSettingsL - end");
- }
-
-// ---------------------------------------------------------------------------
-// Searches all settings data from databases.
-// ---------------------------------------------------------------------------
-//
-void CCSCSvcPluginHandler::SearchSettingsDataL( TUint32 aServiceId )
- {
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::SearchSettingsDataL - begin");
-
- // Reset member variables to default values.
- iVoIPProfileId = KErrNone;
- iSNAPId = KErrNone;
- iPresenceId = KErrNone;
- iSipProfileIds.Reset();
- iIapIds.Reset();
- iDomainNames->Reset();
-
- // Get SNAP ID from service table
- CSPSettings* spSettings = CSPSettings::NewLC();
- CSPProperty* property = CSPProperty::NewLC();
-
- TInt err = spSettings->FindPropertyL(
- aServiceId, ESubPropertyVoIPPreferredSNAPId, *property );
-
- if ( !err )
- {
- property->GetValue( iSNAPId );
- }
-
- TInt err2( KErrNone );
- err2 = spSettings->FindPropertyL(
- aServiceId, ESubPropertyPresenceSettingsId, *property );
-
- if ( !err2 )
- {
- property->GetValue( iPresenceId );
- }
-
- CleanupStack::PopAndDestroy( property );
- CleanupStack::PopAndDestroy( spSettings );
-
- // Get VoIP profile id and SIP reference ids from RCSE handler.
- iRcseHandler->GetProfileIdsL(
- aServiceId,
- iVoIPProfileId,
- iSipProfileIds );
-
- for ( TInt i = 0; i < iSipProfileIds.Count(); i++ )
- {
- // Get Access Point Id from SIP profile and append it to id array.
- TUint32 accessPointId = 0;
- iSipHandler->GetApIdL( iSipProfileIds[ i ], accessPointId );
-
- if ( accessPointId )
- {
- iIapIds.Append( ( TUint32 ) accessPointId );
- }
-
- // Get Domain name from SIP profile and append it to desc array.
- TBuf8<KSvcPluginSettingLength> publicUsername( KNullDesC8 );
- iSipHandler->GetUserAorL( iSipProfileIds[ i ], publicUsername );
-
- TInt location = publicUsername.Find( KSvcPluginAtCharacter );
-
- if ( KErrNotFound != location )
- {
- iDomainNames->AppendL( publicUsername.Mid( location + 1 ) );
- }
- }
-
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::SearchSettingsDataL - end");
- }
-
-// ---------------------------------------------------------------------------
-// Removes settings.
-// ---------------------------------------------------------------------------
-//
-void CCSCSvcPluginHandler::RemoveProfilesL( TUint32 aServiceId )
- {
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::RemoveProfilesL - begin");
-
- // Destroy VoIP profile from RCSE.
- iRcseHandler->RemoveProfileL( iVoIPProfileId );
-
- // Remove entry from service table
- CSPSettings* spSettings = CSPSettings::NewLC();
- spSettings->DeleteEntryL( aServiceId );
- CleanupStack::PopAndDestroy( spSettings );
-
- // Destroy SIP profiles from SIP Stack.
- for ( TInt i = 0; i < iSipProfileIds.Count(); i++ )
- {
- iSipHandler->RemoveProfileL( iSipProfileIds[ i ] );
- }
-
- // Destroy IAP specific NAT/FW settings.
- for ( TInt i = 0; i < iIapIds.Count(); i++ )
- {
- // Trapped, because function leaves
- // if iap spesific keys wasn't found from repostiory.
- TRAP_IGNORE( iCenRepHandler->RemoveIapSpecificNatfwSettingsL(
- iIapIds[ i ] ) );
- }
-
- // Destroy Domain specific NAT/FW settings.
- for ( TInt i = 0; i < iDomainNames->Count(); i++ )
- {
- // Trapped, because function leaves
- // if domain spesific keys wasn't found from repostiory.
- TRAP_IGNORE( iCenRepHandler->RemoveDomainSpecificNatfwSettingsL(
- iDomainNames->MdcaPoint( i ) ) );
- }
-
- // Delete SNAP
- if ( iSNAPId )
- {
- RCmManagerExt manager;
- CleanupClosePushL( manager );
- manager.OpenL();
- RCmDestinationExt dest;
- CleanupClosePushL( dest );
- dest = manager.DestinationL ( iSNAPId );
-
- // Delete SNAP only if itīs not Internet SNAP.
- TUint32 internetSnapId( KErrNone );
- internetSnapId = dest.MetadataL( CMManager::ESnapMetadataInternet );
- if( internetSnapId == KErrNone )
- {
- // May leave if some connection method inside SNAP is in use
- TRAP_IGNORE( dest.DeleteLD() );
- }
-
- CleanupStack::PopAndDestroy( &dest );
- CleanupStack::PopAndDestroy( &manager );
-
- CSCSVCPLUGINDEBUG(
- "CEgpSettingsController::RemoveProfilesL SNAP deleted" );
- }
-
- // Delete presence and xdm settings
- if ( iPresenceId )
- {
- TPresSettingsSet presSettingSet;
-
- // Delete xmd settings
- PresSettingsApi::SettingsSetL( iPresenceId, presSettingSet );
- TXdmSettingsApi::RemoveCollectionL( presSettingSet.iXDMSetting );
-
- // Delete presence settings
- TInt err = PresSettingsApi::RemoveSetL( iPresenceId );
-
- CSCSVCPLUGINDEBUG2(
- "CCSCSvcPluginHandler::RemoveProfilesL presence and xdm deleted, ERR=%d", err );
- }
-
- CSCSVCPLUGINDEBUG("CCSCSvcPluginHandler::RemoveProfilesL - begin");
- }