dbcreator/commsdatcreator/Src/cdcprocessorbase.cpp
changeset 56 dd6aaa97e7b1
parent 52 bbe4544dfd31
child 59 2709c04a4af5
--- 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 <cmmanagerext.h>
-#include <cmconnectionmethoddef.h>
-#include <cmconnectionmethodext.h>
-#include <cmdestinationext.h>
-#include <datamobilitycommsdattypes.h>
-
-
-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.