diff -r bbe4544dfd31 -r dd6aaa97e7b1 dbcreator/commsdatcreator/Src/cdcprocessorbase.cpp --- a/dbcreator/commsdatcreator/Src/cdcprocessorbase.cpp Fri Aug 06 19:11:03 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,547 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the class CProcessorBase -* -*/ - - - - -// INCLUDE FILES - -#include "cdcprocessorbase.h" -#include "cdcreaderbase.h" -#include "cdclogger.h" - -#include -#include -#include -#include -#include - - -using namespace CMManager; - - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// CProcessorBase::CProcessorBase -// Constructor. -// --------------------------------------------------------- -// -CProcessorBase::CProcessorBase( CReaderBase* aFileReader, - RCmManagerExt& aCmManager, - RPointerArray< RCmConnectionMethodExt >& aPluginArray, - RPointerArray< HBufC >& aPluginNames ) : - iFileReader( aFileReader ), - iProxyEnabled( EFalse ), - iIsProtected( EFalse ) - { - iCmManager = &aCmManager; - - iPluginArray = &aPluginArray; - iPluginName = &aPluginNames; - } - - -CProcessorBase::CProcessorBase( CReaderBase* aFileReader, - RCmManagerExt& aCmManager, - RPointerArray< RCmConnectionMethodExt >& aPluginArray, - RPointerArray< HBufC >& aPluginNames, - RPointerArray< RCmDestinationExt >& aDestArray, - RPointerArray< HBufC >& aDestNames ) : - iFileReader( aFileReader ), - iProxyEnabled( EFalse ), - iIsProtected( EFalse ) - { - iCmManager = &aCmManager; - - iPluginArray = &aPluginArray; - iPluginName = &aPluginNames; - - iDestArray = &aDestArray; - iDestName = &aDestNames; - } - - -// --------------------------------------------------------- -// CProcessorBase::~CProcessorBase -// Destructor. -// --------------------------------------------------------- -// -CProcessorBase::~CProcessorBase() - { - iPlugin.Close(); - if( iName ) - { - delete iName; - } - } - - -// --------------------------------------------------------- -// CProcessorBase::ParseFileL -// --------------------------------------------------------- -// -//PseudoCode: -// 0010 locates the next access point within the text file -// 0020 parses the location and reads the input data to TagContainer -// 0030 from TagContainer creates Access Point Item Object -// 0040 using the Access Point Item Object creates a new AP record in CommsDat -// 0050 clears TagContainer -// -void CProcessorBase::ParseFileL() - { - //LocateAP : locates the access points within the text file - while ( iFileReader->LocateAPL() ) - { - //ParseAPL : parses the location, reads the input data to TagContainer - iFileReader->ParseAPL(); - - //from TagContainer creates Access Point Item Object - ProcessTagL( iFileReader->FieldIDPresent() ); - - //adds the Access Point Item Object to CommsDB - ProcessAPL(); - - //clear TagContainer - TagContainer().Clear(); - - }//while - - CLOG_WRITE( "---------------------\n" ) - } - -// --------------------------------------------------------- -// CProcessorPacketData::ProcessTagL -// --------------------------------------------------------- -// -void CProcessorBase::ProcessTagL( TBool /*aFieldIDPresent*/ ) - { - iProxyEnabled= EFalse; - iIsProtected = EFalse; - - Reset(); - TInt aCMId = -1; - for ( TInt idx(0); idx < TagContainer().Count(); idx++) - { - if ( TagContainer().FieldId( idx ) == ECmId) - { - HBufC16* ptrTag = TagContainer().Tag(idx); - TLex16 lex(ptrTag->Des()); - TInt err = lex.Val(aCMId); - if (err != KErrNone) - { - User::Leave(err); - } - break; - } - } - if (aCMId == -1) - { - iPlugin = iCmManager->CreateConnectionMethodL( iBearerType ); - CLOG_WRITE( "ConnectionMethod created without ECmId."); - } - else - { - iPlugin = iCmManager->CreateConnectionMethodL( iBearerType, aCMId); - CLOG_WRITE_FORMAT( "ConnectionMethod created. ECmId:%d", aCMId); - } - - for ( TInt idx(0); idx < TagContainer().Count(); idx++) - { - HBufC16* ptrTag = TagContainer().Tag(idx); - TInt field = TagContainer().FieldId( idx ); - - TBool processed = SetGeneralFieldL( field, ptrTag ); - if( !processed ) - { - ProcessSpecialFieldsL( field, ptrTag, idx ); - } - } - - AddToPluginArrayL(); - - } - -// -------------------------------------------------------- -// CProcessorBase::TagContainer() -// -------------------------------------------------------- -CTagContainer& CProcessorBase::TagContainer() - { - return iFileReader->TagContainer(); - } - - -// -------------------------------------------------------- -// CProcessorBase::AddToPluginArrayL() -// -------------------------------------------------------- -void CProcessorBase::AddToPluginArrayL() - { - if( !iName ) - { - CLOG_WRITE( "Error: No plugin name !!!" ) - } - else - { - const RCmConnectionMethodExt* newItem = new (ELeave) - RCmConnectionMethodExt( iPlugin ); - - iPluginArray->Append( newItem ); - iPluginName->Append( iName->AllocL() ); - - delete iName; - iName = NULL; - - iPlugin.Close(); - } - } - -// -------------------------------------------------------- -// CProcessorBase::GetLastPluginL() -// -------------------------------------------------------- -RCmConnectionMethodExt& CProcessorBase::GetLastPluginL() - { - return GetPluginL( PluginCount() - 1 ); - - } - -// -------------------------------------------------------- -// CProcessorBase::GetPluginL() -// -------------------------------------------------------- -RCmConnectionMethodExt& CProcessorBase::GetPluginL( TInt aPos ) - { - - return *(iPluginArray->operator[]( aPos )); - - } - -// -------------------------------------------------------- -// CProcessorBase::PluginCount() -// -------------------------------------------------------- -TInt CProcessorBase::PluginCount() - { - - return iPluginArray->Count(); - - } - -// --------------------------------------------------------- -// CProcessorBase::FindDestinationL -// --------------------------------------------------------- -// -RCmDestinationExt* CProcessorBase::FindDestinationL( HBufC* aName ) - { - for( TInt i(0); i < iDestName->Count(); i++ ) - { - HBufC *name = (*iDestName)[i]; - if( aName->Compare( *name ) == 0 ) - { - return (*iDestArray)[ i ]; - } - } - CLOG_WRITE_FORMAT("Warning: Destination not found: %S", aName ); - return NULL; - } - -// --------------------------------------------------------- -// CProcessorBase::GetDestinationIdL -// --------------------------------------------------------- -// -TInt CProcessorBase::GetDestinationIdL( HBufC16* aName ) - { - RCmDestinationExt* dest = FindDestinationL( aName ); - - TInt ret( KErrNotFound ); - if( dest != NULL ) - { - ret = dest->Id(); - } - - return ret; - } - -// --------------------------------------------------------- -// CProcessorBase::FindPluginL -// --------------------------------------------------------- -// -RCmConnectionMethodExt* CProcessorBase::FindPluginL( HBufC* aName ) - { - TInt pos; - return FindPluginL( aName, pos ); - } - -// --------------------------------------------------------- -// CProcessorBase::FindPluginL -// --------------------------------------------------------- -// -RCmConnectionMethodExt* CProcessorBase::FindPluginL( HBufC* aName, TInt& aPos ) - { - RCmConnectionMethodExt* ret( NULL ); - - aPos = CheckPluginName( aName ); - if ( aPos != KErrNotFound ) - { - ret = (*iPluginArray)[ aPos ]; - } - else - { - CLOG_WRITE_FORMAT("Warning: Connection method not found: %S", aName ); - } - - return ret; - } - -// --------------------------------------------------------- -// CProcessorBase::CheckPluginName -// --------------------------------------------------------- -// -TInt CProcessorBase::CheckPluginName( HBufC* aName ) - { - TInt ret( KErrNotFound ); - - for( TInt i = 0; i < iPluginName->Count() && ret == KErrNotFound; i++ ) - { - HBufC *name = (*iPluginName)[i]; - if( aName->Compare( *name ) == 0 ) - { - ret = i; - } - } - return ret; - } - - - -// --------------------------------------------------------- -// CProcessorBase::GetPluginIdL -// --------------------------------------------------------- -// -TInt CProcessorBase::GetPluginIdL( HBufC16* aName ) - { - RCmConnectionMethodExt* cm = FindPluginL( aName ); - - TInt ret( KErrNotFound ); - if( cm != NULL ) - { - ret = cm->GetIntAttributeL( CMManager::ECmIapId ); - } - - return ret; - } - - -// --------------------------------------------------------- -// CProcessorBase::ProcessAPL -// --------------------------------------------------------- -// -void CProcessorBase::ProcessAPL() - { - RCmConnectionMethodExt& plugin = GetLastPluginL(); - if( iIsProtected ) - { - plugin.SetBoolAttributeL( ECmProtected, ETrue ); - } - - // Writes into the log file. - DoLogL(); - } - -// --------------------------------------------------------- -// CProcessorBase::ProcessAPL -// --------------------------------------------------------- -// -TBool CProcessorBase::SetGeneralFieldL( TInt aField, HBufC* aPtrTag ) - { - TBool processed( ETrue ); - switch( aField ) - { - case ECmName: - { - // If input is not empty - if ( aPtrTag->CompareF( KStrEmpty ) != 0 ) - { - TInt pos = CheckPluginName( aPtrTag ); - if( pos != KErrNotFound ) - { - CLOG_WRITE_FORMAT("Warning: plugin exist. It might be renamed ! : %S", aPtrTag ); - } - iPlugin.SetStringAttributeL( aField, *aPtrTag ); - if( !iName ) - { - iName = aPtrTag->AllocL(); - } - } - break; - } - case ECmStartPage: - { - // If input is not empty - if ( aPtrTag->CompareF( KStrEmpty ) != 0 ) - { - iPlugin.SetStringAttributeL( aField, *aPtrTag ); - } - break; - } - case ECmHidden: //fall through - case ECmMetaHiddenAgent: //fall through - case ECmMetaHighlight: //fall through - { - if( aPtrTag->CompareF( KStrNo ) == 0 ) - { - iPlugin.SetBoolAttributeL( aField, EFalse ); - } - else if( aPtrTag->CompareF( KStrYes ) == 0 ) - { - iPlugin.SetBoolAttributeL( aField, ETrue ); - } - else - { - iPlugin.SetBoolAttributeL( aField, EFalse ); - switch ( aField ) - { - case ECmHidden: - CLOG_WRITE( "! Error : Invalid Hidden. Default:No"); - break; - case ECmMetaHiddenAgent: - CLOG_WRITE( "! Error : Invalid HiddenAgent. Default:No"); - break; - case ECmMetaHighlight: - CLOG_WRITE( "! Error : Invalid Highlight. Default:No"); - break; - } - } - break; - } - case ECmSeamlessnessLevel: - { - if ( aPtrTag->CompareF( KStrNotRoamedTo ) == 0 ) - { - iPlugin.SetIntAttributeL( aField, - CMManager::ESeamlessnessNotRoamedTo ); - } - else if ( aPtrTag->CompareF( KStrConfirmFirst ) == 0 ) - { - iPlugin.SetIntAttributeL( aField, - CMManager::ESeamlessnessConfirmFirst ); - } - else if ( aPtrTag->CompareF( KStrShowProgress ) == 0 ) - { - iPlugin.SetIntAttributeL( aField, - CMManager::ESeamlessnessShowprogress ); - } - else if ( aPtrTag->CompareF( KStrFullySeamless ) == 0 ) - { - iPlugin.SetIntAttributeL( aField, - CMManager::ESeamlessnessFullySeamless ); - } - break; - } - - case ECmProtected: - { - // Protection - if ( aPtrTag->CompareF( KStrYes ) == 0 ) - { - iIsProtected = ETrue; - } - else if ( aPtrTag->CompareF( KStrNo ) != 0 ) - { - CLOG_WRITE( "! Error : Invalid Protected value. Default:No" ) - } - break; - } - - default: - { - processed = EFalse; - } - } - - return processed; - } - -// --------------------------------------------------------- -// CProcessorBase::DoLogL -// --------------------------------------------------------- -// - -void CProcessorBase::DoLogL() - { - - TInt lastPos = iPluginArray->Count() - 1; - - CLOG_WRITE( "Internet Access Point created:" ) - CLOG_WRITE_FORMAT( "\t Connection name: %S ", (*iPluginName)[ lastPos ] ); - - if ( iIsProtected ) - { - CLOG_WRITE( "\t Protected" ) - } - else - { - CLOG_WRITE( "\t Not protected" ) - } - } -// --------------------------------------------------------- -// CProcessorBase::SetAddressFromServerL -// --------------------------------------------------------- -// - -void CProcessorBase::SetAddressFromServerL( TInt aIPField1, - TInt aIPField2, - TInt aAddrFromSField, - TInt aIPField1IP6, - TInt aIPField2IP6, - TInt aAddrFromSFieldIP6 ) - { - //calculate and set Ip6AddrFromServer - HBufC *pIp1 = NULL; - HBufC *pIp2 = NULL; - pIp1 = iPlugin.GetStringAttributeL( aIPField1IP6 ); - CleanupStack::PushL( pIp1 ); - pIp2 = iPlugin.GetStringAttributeL( aIPField2IP6 ); - CleanupStack::PushL( pIp2 ); - _LIT( KDynIpv6Address, "0:0:0:0:0:0:0:0" ); - if ( ( pIp1->Compare( KDynIpv6Address ) == 0 ) && - ( pIp2->Compare( KDynIpv6Address ) == 0 ) ) - { - iPlugin.SetBoolAttributeL( aAddrFromSFieldIP6, ETrue ); - } - else - { - iPlugin.SetBoolAttributeL( aAddrFromSFieldIP6, EFalse ); - } - CleanupStack::PopAndDestroy( 2,pIp1 ); - - //calculate and set AddrFromServer - pIp1 = iPlugin.GetStringAttributeL( aIPField1 ); - CleanupStack::PushL( pIp1 ); - pIp2 = iPlugin.GetStringAttributeL( aIPField2 ); - CleanupStack::PushL( pIp2 ); - _LIT( KDynIpAddress, "0.0.0.0" ); - if ( ( pIp1->Compare( KDynIpAddress ) == 0 ) && - ( pIp2->Compare( KDynIpAddress ) == 0 ) ) - { - iPlugin.SetBoolAttributeL( aAddrFromSField, ETrue ); - } - else - { - iPlugin.SetBoolAttributeL( aAddrFromSField, EFalse ); - } - CleanupStack::PopAndDestroy( 2,pIp1 ); - } - -// End of File.