--- a/XDMEngine/XdmProvisioning/src/xdmprovitem.cpp Thu May 27 13:17:17 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,500 +0,0 @@
-/*
-* Copyright (c) 2006 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: Provisioning item.
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <CWPParameter.h>
-#include <CWPCharacteristic.h>
-#include <commdb.h>
-#include <XdmSettingsCollection.h>
-#include <XdmSettingsApi.h>
-
-#include "xdmprovitem.h"
-
-#ifdef _DEBUG
- #include "xdmprovadapter.h"
-#endif
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::CXdmProvItem
-//
-// -----------------------------------------------------------------------------
-//
-CXdmProvItem::CXdmProvItem():
- iXdmSettingsId( KErrNotFound ),
- iAppId( KNullDesC ),
- iAppName( KNullDesC ),
- iProviderId( KNullDesC ),
- iSipReference( NULL ),
- iToNapId( KNullDesC ),
- iNapId( NULL ),
- iNapName( KNullDesC ),
- iAppRef( KNullDesC ),
- iXcapRootUri( KNullDesC ),
- iUserName( KNullDesC ),
- iPassword( KNullDesC ),
- iAuthType( KNullDesC ),
- iSettingsSaved( EFalse )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CXdmProvItem* CXdmProvItem::NewL()
- {
- CXdmProvItem* self = new (ELeave) CXdmProvItem();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::~CXdmProvItem
-// -----------------------------------------------------------------------------
-//
-CXdmProvItem::~CXdmProvItem()
- {
- iToAppReferences.Close();
- delete iSipReference;
- delete iNapId;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::Validate
-// -----------------------------------------------------------------------------
-//
-TBool CXdmProvItem::Validate() const
- {
- if ( !iAppId.Length() )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::Validate iAppId missing" ) );
-#endif
- return EFalse;
- }
- else if ( iAppId.Compare( KXdmProvAppId ) )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::Validate wrong iAppId" ) );
-#endif
- return EFalse;
- }
- else if ( !iAppName.Length() )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::Validate iAppName missing" ) );
-#endif
- return EFalse;
- }
- else if ( !iToNapId.Length() )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::Validate iNapId missing" ) );
-#endif
- return EFalse;
- }
- else if ( !iXcapRootUri.Length() )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::Validate iXcapRootUri missing" ) );
-#endif
- return EFalse;
- }
- else
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::Validate returns true" ) );
-#endif
- return ETrue;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::Name
-// -----------------------------------------------------------------------------
-//
-const TDesC& CXdmProvItem::Name() const
- {
- return iAppName;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::ApplicationId
-// -----------------------------------------------------------------------------
-//
-const TDesC& CXdmProvItem::ApplicationId() const
- {
- return iAppId;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::XdmSettingsId
-// -----------------------------------------------------------------------------
-//
-TInt CXdmProvItem::XdmSettingsId() const
- {
- return iXdmSettingsId;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::AppReference
-// -----------------------------------------------------------------------------
-//
-const TDesC& CXdmProvItem::AppReference() const
- {
- return iAppRef;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::SaveL
-// -----------------------------------------------------------------------------
-//
-TInt CXdmProvItem::SaveL()
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::SaveL" ) );
-#endif
-
- if( !iSettingsSaved )
- {
- CXdmSettingsCollection* settings = new (ELeave) CXdmSettingsCollection();
- CleanupStack::PushL( settings ); // << settings
- settings->AppendL( iAppId, EXdmPropAppId );
- CheckExistingNamesL();
- settings->AppendL( iAppName, EXdmPropName );
- settings->AppendL( iProviderId, EXdmPropProvId );
- FindAccessPointIdL();
- settings->AppendL( *iNapId, EXdmPropToNapId );
- if( iSipReference )
- {
- settings->AppendL( *iSipReference, EXdmPropToAppRef );
- }
- settings->AppendL( iXcapRootUri, EXdmPropUri );
- settings->AppendL( iUserName, EXdmPropAuthName );
- settings->AppendL( iPassword, EXdmPropAuthSecret );
- settings->AppendL( iAuthType, EXdmPropAuthType );
- iXdmSettingsId = TXdmSettingsApi::CreateCollectionL( *settings );
- CleanupStack::PopAndDestroy( settings ); // >>> settings
- iSettingsSaved = ETrue;
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::SaveL settings saved" ) );
-#endif
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::ToAppReferences
-// -----------------------------------------------------------------------------
-//
-const RArray<TPtrC>& CXdmProvItem::ToAppReferences() const
- {
- return iToAppReferences;
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::VisitL
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::VisitL( CWPCharacteristic& aCharacteristic )
- {
- if ( KWPResource == aCharacteristic.Type( ) )
- {
- aCharacteristic.AcceptL( *this );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::VisitL CWPCharacteristic" ) );
-#endif
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::VisitL
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::VisitL( CWPParameter& aParameter )
- {
-#ifdef _DEBUG
- HBufC8* value = HBufC8::NewLC( aParameter.Value().Length() ); // << value
- TPtr8 bufferPtr = value->Des();
- bufferPtr.Copy( aParameter.Value() );
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::VisitL CWPParameter aParameter.Value() =%S" ), &bufferPtr );
- CleanupStack::PopAndDestroy( value ); // >>> value
-#endif
- switch( aParameter.ID() )
- {
- case EWPParameterAppID:
- {
- iAppId.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterAppID" ) );
-#endif
- }
- break;
-
- case EWPParameterProviderID:
- {
- iProviderId.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterProviderID" ) );
-#endif
- }
- break;
-
- case EWPParameterName:
- {
- iAppName.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterName" ) );
-#endif
- }
- break;
-
- case EWPParameterToAppRef:
- {
- iToAppReferences.Append( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterToAppRef" ) );
-#endif
- }
- break;
-
- case EWPParameterToNapID:
- {
- iToNapId.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterToNapID" ) );
-#endif
- }
- break;
-
- case EWPParameterURI:
- {
- iXcapRootUri.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterURI" ) );
-#endif
- }
- break;
-
- case EWPParameterAAuthName:
- {
- iUserName.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterAAuthName" ) );
-#endif
- }
- break;
-
- case EWPParameterAAuthSecret:
- {
- iPassword.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterAAuthSecret" ) );
-#endif
- }
- break;
-
- case EWPParameterAAuthType:
- {
- iAuthType.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterAAuthType" ) );
-#endif
- }
- break;
-
- case EWPParameterAppRef:
- {
- iAppRef.Set( aParameter.Value() );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::EWPParameterAppRef" ) );
-#endif
- }
- break;
- default:
- {
- DetermineNamedParameter( aParameter.Name(), aParameter.Value() );
- }
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::DetermineNamedParameter
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::DetermineNamedParameter( const TDesC& aName, const TDesC& aValue )
- {
- if ( !aName.Compare( KXdmProvAppRef ) )
- {
- iAppRef.Set( aValue );
- }
- else if ( !aName.Compare( KXdmProvToAppRef ) )
- {
- iToAppReferences.Append( aValue );
- }
- }
-// -----------------------------------------------------------------------------
-// CXdmProvItem::VisitLinkL
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::VisitLinkL( CWPCharacteristic& aLink )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::VisitLinkL" ) );
-#endif
- if( KWPNapDef == aLink.Type() )
- {
- // check that this is the correct one
- CArrayFix<TPtrC>* napId = new (ELeave) CArrayFixFlat<TPtrC>(1);
- CleanupStack::PushL( napId ); // << napId
- aLink.ParameterL( EWPParameterNapID, napId );
- if ( 0 < napId->Count() )
- {
- if ( !napId->At(0).Compare( iToNapId ) )
- {
- SetNapDefL( aLink );
- }
- }
- CleanupStack::PopAndDestroy( napId ); // >>> napId
- }
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::SetNapDefL
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::SetNapDefL ( CWPCharacteristic& aLink )
- {
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::SetNapDefL" ) );
-#endif
- // find the name of the access point
- CArrayFix<TPtrC>* name = new (ELeave) CArrayFixFlat<TPtrC>(1);
- CleanupStack::PushL( name ); // << name
- aLink.ParameterL( EWPParameterName, name );
- if ( name->Count() > 0 )
- {
- iNapName.Set( name->At(0) );
- }
- CleanupStack::PopAndDestroy( name ); // >>> name
-
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::SetNapDefL done" ) );
-#endif
- }
-// -----------------------------------------------------------------------------
-// CXdmProvItem::SetSipSettingsIdL
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::SetSipSettingsIdL( const TDesC8& aStorageIdValue )
- {
- delete iSipReference;
- iSipReference = NULL;
- iSipReference = HBufC::NewL( aStorageIdValue.Length() );
- iSipReference->Des().Copy( aStorageIdValue );
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::FindAccessPointIdL
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::FindAccessPointIdL ()
- {
-
- TInt result( KErrNone );
- TUint32 idNum;
- TBuf<KXdmProvNameLength> name;
- // Get IAP names and ids from the database
- CCommsDatabase* commsDb = CCommsDatabase::NewL( EDatabaseTypeIAP );
- CleanupStack::PushL( commsDb ); // << commsDb
- commsDb->ShowHiddenRecords();
- CCommsDbTableView* view = commsDb->OpenTableLC( TPtrC( IAP ) ); // << view
- result = view->GotoFirstRecord();
-
- while( KErrNone == result )
- {
- view->ReadTextL( TPtrC( COMMDB_NAME ), name );
- if ( KErrNotFound != name.Find( iNapName ) )
- {
- view->ReadUintL( TPtrC( COMMDB_ID ), idNum );
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::FindAccessPointIdL IAP found id=%d" ), idNum );
-#endif
- }
- result = view->GotoNextRecord();
- }
-#ifdef _DEBUG
- CXdmProvAdapter::WriteToLog( _L8( "CXdmProvItem::FindAccessPointIdL IAP using id=%d" ), idNum );
-#endif
- CleanupStack::PopAndDestroy( 2, commsDb ); // >>> view, commsDb
- TBuf<KXdmProvIdLength> id;
- id.AppendNum( idNum, EDecimal );
- delete iNapId;
- iNapId = NULL;
- iNapId = id.AllocL();
- }
-
-// -----------------------------------------------------------------------------
-// CXdmProvItem::CheckExistingNamesL()
-// -----------------------------------------------------------------------------
-//
-void CXdmProvItem::CheckExistingNamesL( )
- {
- TBool ready( EFalse );
- RArray<TInt> settingIds;
- CleanupClosePushL( settingIds ); // << settingIds
- CDesCArray* settingNames = TXdmSettingsApi::CollectionNamesLC( settingIds ); // << settingNames
- TInt index( 0 );
- while ( !ready )
- {
- TBool found ( EFalse );
- TInt count = settingNames->MdcaCount();
- TBuf<KXdmProvBufLength> tempName;
- tempName.Copy( iAppName );
- if ( index > 0 )
- {
- tempName.Append( KXdmProvStartBracket );
- tempName.AppendNumFixedWidth( index, EDecimal, 2 );
- tempName.Append( KXdmProvCloseBracket );
- }
- for ( TInt i(0); i < count && !found; i++ )
- {
- if ( !settingNames->MdcaPoint(i).CompareF( tempName ) )
- {
- found = ETrue;
- index++;
- }
- }
- if ( !found )
- {
- ready = ETrue;
- iAppName.Set( tempName );
- }
- }
- // only number used in next function, type of RArray
- CleanupStack::PopAndDestroy( 2 ); // >>> settingNames, settingIds
- }
-
-
-// End of File
-