dbcreator/commsdatcreator/Src/cdccommsdatcreator.cpp
changeset 56 dd6aaa97e7b1
parent 52 bbe4544dfd31
child 59 2709c04a4af5
--- a/dbcreator/commsdatcreator/Src/cdccommsdatcreator.cpp	Fri Aug 06 19:11:03 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,638 +0,0 @@
-/*
-* Copyright (c) 2002 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:   Module for creating CommsDat from an input file
-*
-*/
-
-
-
-
-// INCLUDE FILES
-
-#include "cdccommsdatcreator.h"
-#include "cdclogger.h"
-#include "cdcreaderxml.h"
-#include "cdcprocessorpacketdata.h"
-#include "cdcprocessorwlan.h"
-#include "cdcprocessorlan.h"
-#include "cdcprocessorvpn.h"
-#include "cdcprocessordn.h"
-#include "cdcprocessorglobal.h"
-#include "cdcwlantables.h"
-#include "cdcwlandevicesettings.h"
-#include "cdcdatamobilitytables.h"
-#include "cdcdumptables.h"
-#include "centralrepository.h"
-
-#include <cmconnectionmethoddef.h>
-#include <cmmanagerext.h>
-
-#include <e32def.h>
-#include <e32base.h>
-#include <s32strm.h>
-#include <s32file.h>
-#include <etelpckt.h>
-#include <featmgr.h>
-#include <commsdattypesv1_1.h>
-#include <commsdattypeinfov1_1.h>
-
-
-// CONSTANTS
-//maximum length of access point name
-const TInt KLengthOfExtention = 4;
-
-//extension
-_LIT16( KExtensionXML,     ".xml" );    //XML file
-
-
-//-----------------------------------------------------------------------------
-//  CCdcCommsDatCreator::NewL()
-//-----------------------------------------------------------------------------
-//
-EXPORT_C CCdcCommsDatCreator* CCdcCommsDatCreator::NewL()
-    {
-    CCdcCommsDatCreator* self = NewLC();
-    CleanupStack::Pop( self );   // self
-    
-    return self;
-    }
-
-
-//-----------------------------------------------------------------------------
-//  CCdcCommsDatCreator::NewLC()
-//-----------------------------------------------------------------------------
-//
-EXPORT_C CCdcCommsDatCreator* CCdcCommsDatCreator::NewLC()
-    {
-    CCdcCommsDatCreator* self = new (ELeave) CCdcCommsDatCreator();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    
-    return self;
-    }
-
-
-//------------------------------------------------
-// CDbCreator::CreateTablesL
-//------------------------------------------------
-//
-EXPORT_C void CCdcCommsDatCreator::CreateTablesL()
-    {
-    CLOG_WRITE( "=====================\n" )
-    CLOG_WRITE( "Creating tables ...\n" )
-    CLOG_WRITE( "=====================\n" )   
-
-    
-    //extends architecture of CommsDat
-    //creates WLAN tables
-    //-------------------------------
-    if ( iIsWlanS )
-        {
-        CLOG_WRITE( "Creates WLAN service tables\n" )
-        CLOG_WRITE( "---------------------------\n" )
-        
-        CWlanTables* wlanTables = CWlanTables::NewL();
-        CleanupStack::PushL( wlanTables );
-        wlanTables->CheckAndCreateTablesL();
-        
-        CleanupStack::PopAndDestroy( wlanTables ); 
-        
-        // WLAN Device Settings Table.
-        CLOG_WRITE( "Writes Default settings to WLAN Device Settings Table.\n" )
-        
-        // Creating a settings object does it all.
-        CWlanDeviceSettings* wlanDeviceSettings = CWlanDeviceSettings::NewL();
-        delete wlanDeviceSettings;
-        }
-
-    CLOG_WRITE( "CDataMobilityTables\n" )   
-        
-    //extends architecture of CommsDat
-    //creates Data Mobility tables
-    //----------------------------
-    CDataMobilityTables* dmTables = CDataMobilityTables::NewL();
-    CleanupStack::PushL( dmTables );
-    
-    CLOG_WRITE( "Creates Data Mobility ALR tables\n" )
-    CLOG_WRITE( "--------------------------------\n" )
-    dmTables->CheckAndCreateAlrTablesL();
-    
-    CLOG_WRITE( "Creates Data Mobility MIP tables\n" )
-    CLOG_WRITE( "--------------------------------\n" )
-    dmTables->CheckAndCreateMipTablesL();
-    
-    CleanupStack::PopAndDestroy( dmTables );
-        
-    //if there is only an "e" parameter then DbCreator extends CommsDat, but
-    //does not create access points. This functionality earlier was done
-    //by WlanToCDb modul.
-    }
-
-
-//------------------------------------------------
-// CDbCreator::CreateCommsDatL
-//------------------------------------------------
-//
-EXPORT_C void CCdcCommsDatCreator::CreateCommsDatL( const TFileName& aInFileName )
-    {
-    CLOG_WRITE( "=====================\n" )
-    CLOG_WRITE( "Processing started...\n" )
-    CLOG_WRITE( "=====================\n" )               
-
-    TDbCreatorInputCharSet charSet( ECharSetUnknown );//input character set
-
-    //Creates access points
-    //----------------------
-            
-    if ( InputFileType( aInFileName ) == EFileXML )
-        {
-        CLOG_WRITE( "Tries to open file");
-        // Logs file name            
-        HBufC *fileName = aInFileName.AllocLC();
-        CLOG_WRITE_FORMAT( "Input file : %S\n", fileName )
-        CleanupStack::PopAndDestroy( fileName );                          
-        
-        delete iReader;
-        iReader = NULL;
-        iReader = CReaderXML::NewLC( aInFileName, charSet );
-    	CleanupStack::Pop(iReader);
-    
-        //locates feature in xml file
-        iReader->LocateFeatureL();
-        }
-    else    
-        {
-        User::Leave( KErrInvalidExtension );
-        }  
-    	
-
-    TBool found( EFalse );
-    
-    // First, add all destinations to the database. Connection methods and
-    // embedded destinations are not added at this time.
-    while ( iReader->CurrentFeature() != EFeatureNone && !found )
-        {
-        if( iReader->CurrentFeature() == EFeatureDN )
-            {
-            ProcessDNL( iCmInDest, ETrue );
-            }
-        iReader->LocateFeatureL();
-        }
-    
-    // Reset input file
-    iReader->Reset();
-    iReader->LocateFeatureL();
-    
-    // Then add connection methods, and assign them to destinations if
-    // needed
-    while ( iReader->CurrentFeature() != EFeatureNone )
-        {
-        switch ( iReader->CurrentFeature() )
-            {
-            case EFeaturePacketData:
-                {
-                //creates GPRS access point
-                CLOG_WRITE( "Feature found : Packet Data Access point(s)\n" )
-                
-                iFileProcessor = CProcessorPacketData::NewL( iReader,
-                                                       iCmManager,
-                                                       iPluginArray,
-                                                       iPluginNames,
-                                                       iLingerSettings );
-                iFileProcessor->ParseFileL();
-                
-                delete iFileProcessor;
-                iFileProcessor = NULL;
-
-                break;
-                }
-                
-            case EFeatureWLAN:
-                {
-                if( iIsWlanS )
-                    {
-                    //creates WLAN access point   
-                    CLOG_WRITE( "Feature found : WLAN Access point(s)\n" )
-                    
-                    // Reset the EAP settings just to be safe although it should be empty always here.
-                    iEapSettings.ResetAndDestroy();
-                    
-                    iFileProcessor = CProcessorWlan::NewL( iReader,
-                                                           iCmManager,
-                                                           iPluginArray,
-                                                           iPluginNames,
-                                                           iWlanSecurity,
-                                                           iEapSettings );
-                    iFileProcessor->ParseFileL();
-                    
-                    delete iFileProcessor;
-                    iFileProcessor = NULL;
-
-                    }
-                break;
-                }
-                
-            case EFeatureLAN:
-                {
-                //creates LAN access point   
-                CLOG_WRITE( "Feature found : LAN Access point(s)\n" )
-
-                iFileProcessor = CProcessorLan::NewL( iReader,
-                                                      iCmManager,
-                                                      iPluginArray,
-                                                      iPluginNames );
-                iFileProcessor->ParseFileL();
-               
-                delete iFileProcessor;
-                iFileProcessor = NULL;
-                break;
-                }
-                
-            case EFeatureVPN:
-                {
-                //creates VPN access point   
-                CLOG_WRITE( "Feature found : VPN Access point(s)\n" )
-                CLOG_WRITE( "-----------------------------------\n" )
-                
-                iFileProcessor = CProcessorVpn::NewL( iReader,
-                                                       iCmManager,
-                                                       iPluginArray,
-                                                       iPluginNames,
-                                                       iUnderLying );
-                iFileProcessor->ParseFileL();
-                
-                delete iFileProcessor;
-                iFileProcessor = NULL;
-                
-                break;
-                }
-            
-            case EFeatureDN:
-                {
-               
-                ProcessDNL( iCmInDest, EFalse );
-                
-                break;
-                }
-                
-            case EFeatureGlobal:
-                {
-                // Valid tag but does nothing now. 
-                // Global can be processed at the last end.
-
-                
-                //sets global settings 
-                CLOG_WRITE( "Feature found : Global settings\n" )
-                CLOG_WRITE( "-------------------------------\n" )
-                    
-                iFileProcessor = CProcessorGlobal::NewL( iReader,
-                                                          iCmManager,
-                                                          iPluginArray,
-                                                          iPluginNames,
-                                                          iDestArray,
-                                                          iDestNames ); 
-                iFileProcessor->ParseFileL();
-
-                delete iFileProcessor;
-                iFileProcessor = NULL;
-
-                break;
-                }
-                
-            default:
-                User::Panic( KPanicInvalidCase, KErrInvalidCase );
-             
-            }//switch
-            
-            //gets next feature
-            iReader->LocateFeatureL();
-            
-        }//while
-                  
-
-    // Updates the IAPs that are not in destinations.
-    UpdateUncatCmsL( iCmInDest );
-
-    // Sets the underlying IAP/SNAPS for vpn IAPs    
-    SetUnderlyingIapL( iUnderLying );
-
-    for( TInt i(0); i < iWlanSecurity.Count(); i++ )
-        {
-        CLOG_WRITE_FORMAT( "Sec Pos: %d", i );
-        if( iWlanSecurity[i] != NULL )
-            {
-            CLOG_WRITE_FORMAT( "Sec data: %S", iWlanSecurity[i] );
-            }
-        else    
-            {
-            CLOG_WRITE( "Sec data NULL" );
-            }
-        }
-
-	// Sets the WLAN security paramters including EAP settings
-    SetWlanSecurityL( iWlanSecurity );
-    
-    // Sets linger settings
-    SetLingerSettingsL( iLingerSettings );
-
-    // Logs IAPs in UDEB mode
-    #ifdef _DEBUG
-    LogIapIdsL();
-    #endif
-}
-
-//------------------------------------------------
-// CCdcCommsDatCreator::DumpCommsDatL
-//------------------------------------------------
-//
-EXPORT_C void CCdcCommsDatCreator::DumpCommsDatL( const TFileName& aOutFileName )
-    {
-    CLOG_WRITE( "==========================\n" )
-    CLOG_WRITE( "Dump processing started...\n" )
-    CLOG_WRITE( "==========================\n" )   
-    
-
-    CDumpTables* dump = CDumpTables::NewLC();
-    dump->DoDumpTablesL( aOutFileName );
-    CleanupStack::PopAndDestroy( dump ); //dump   
-
-    CLOG_WRITE( "======== end dump =========\n" )   
-
-    }
-
-//------------------------------------------------
-// CCdcCommsDatCreator::CCdcCommsDatCreator
-//------------------------------------------------
-//
-CCdcCommsDatCreator::CCdcCommsDatCreator()
-    {
-    }
-
-//------------------------------------------------
-// CCdcCommsDatCreator::~CCdcCommsDatCreator
-//------------------------------------------------
-//
-CCdcCommsDatCreator::~CCdcCommsDatCreator()
-    {
-    delete iReader;
-    
-    iEapSettings.ResetAndDestroy();
-
-	for ( TInt i = 0; i < iPluginArray.Count(); i++ )
-	{
-		iPluginArray[i]->Close();
-	}
-    iPluginArray.ResetAndDestroy();
-    iPluginNames.ResetAndDestroy();
-
-	for ( TInt i = 0; i < iDestArray.Count(); i++ )
-	{
-		iDestArray[i]->Close();
-	}
-    iDestArray.ResetAndDestroy();
-    
-    iDestNames.ResetAndDestroy();    
-    
-    iUnderLying.ResetAndDestroy();    
-    
-    iWlanSecurity.ResetAndDestroy();
-    
-    iLingerSettings.ResetAndDestroy();
-
-    iCmInDest.Close(); 
-    
-    iCmManager.Close();
-    }
-
-
-//------------------------------------------------
-// CCdcCommsDatCreator::ConstructL
-//------------------------------------------------
-//
-void CCdcCommsDatCreator::ConstructL()
-    {
-    CLOG_WRITE( "Initialising FeatureManager\n" )   
-    //checks if Wlan feature is supported
-    FeatureManager::InitializeLibL();
-    iIsWlanS = FeatureManager::FeatureSupported( KFeatureIdProtocolWlan );
-    FeatureManager::UnInitializeLib();
-    CLOG_WRITE( "FeatureManager closed\n" )
-
-    iCmManager.OpenL();
-    }
-    
-//------------------------------------------------
-// CCdcCommsDatCreator::InputFileType
-//------------------------------------------------
-//
-TUint CCdcCommsDatCreator::InputFileType( const TFileName& aFileName )
-    {
-    TBuf<KLengthOfExtention> extension;
-    
-    //get extension
-    extension.Copy( aFileName.Right( KLengthOfExtention ) );
-    
-    TDbCreatorInputFile type ( EFileUnknown );
-    
-    if ( extension.CompareF( KExtensionXML ) == 0 )
-        {
-        type = EFileXML;            
-        }
-    else
-        {
-        //type keeps default value
-        }
-            
-    return type;
-    
-    }
-    
-  
-//------------------------------------------------
-// CCdcCommsDatCreator::UpdateUncatCmsL
-//------------------------------------------------
-//
-void CCdcCommsDatCreator::UpdateUncatCmsL( RArray< TBool >& aCmInDest )
-    {
-    CLOG_WRITE( "-------------------------------\n" )
-    CLOG_WRITE( "Uncategorised Cms:\n" )
-
-    // No destination defined
-    if( aCmInDest.Count() == 0 )
-        {
-        for( TInt i(0); i < iPluginArray.Count(); i++ )
-            {
-            iPluginArray[i]->UpdateL();
-            CLOG_WRITE_FORMAT( "Uncat CM Name: %S", iPluginNames[i] );
-            }
-        }
-    else
-        {
-        
-        for( TInt i(0); i < iPluginArray.Count(); i++ )
-            {
-            if( aCmInDest[ i ] == EFalse )
-                {
-                iPluginArray[i]->UpdateL();
-                CLOG_WRITE_FORMAT( "Uncat CM Name: %S", iPluginNames[i] );
-                }
-            }
-        }
-        
-    CLOG_WRITE( "-------------------------------\n" )
-    }    
-
-
-//------------------------------------------------
-// CCdcCommsDatCreator::LogIapIdsL
-//------------------------------------------------
-//
-void CCdcCommsDatCreator::LogIapIdsL()
-    {
-    for( TInt i(0); i < iPluginArray.Count(); i++ )
-        {
-        TUint32 uid1 = iPluginArray[i]->GetIntAttributeL( CMManager::ECmId );
-        CLOG_WRITE_FORMAT( "IAP Name: %S", iPluginNames[i] );
-        CLOG_WRITE_FORMAT( "ID: %d\n", uid1 );
-        }
-
-    for( TInt i(0); i < iDestArray.Count(); i++ )
-        {
-        TUint32 uid1 = iDestArray[i]->Id();
-        CLOG_WRITE_FORMAT( "SNAP Name: %S", iDestNames[i] );
-        CLOG_WRITE_FORMAT( "ID: %d\n", uid1);
-        }
-    }
-
-// ---------------------------------------------------------
-// CCdcCommsDatCreator::ProcessDNL
-// ---------------------------------------------------------
-//
-void CCdcCommsDatCreator::ProcessDNL( RArray< TBool >& aCmInDest,
-                                     TBool aFirstRound )
-    {
-    CLOG_WRITE( "Feature found : Destination Network(s)\n" )
-    CLOG_WRITE( "--------------------------------------\n" )
-    
-    
-    if( !aFirstRound )
-        {
-        for( TInt i(0); i < iPluginArray.Count(); i++ )
-            {
-            aCmInDest.Append( EFalse );
-            }
-        }
-    
-    iFileProcessor = CProcessorDN::NewL( iReader,
-                                         iCmManager,
-                                         iPluginArray,
-                                         iPluginNames,
-                                         iDestArray,
-                                         iDestNames,
-                                         aCmInDest,
-                                         aFirstRound ); 
-    iFileProcessor->ParseFileL();
-    
-    delete iFileProcessor;
-    iFileProcessor = NULL;
-    CLOG_WRITE( "--------------------------------------\n" )
-    }    
-
-// ---------------------------------------------------------
-// CCdcCommsDatCreator::SetUnderlyingIapL
-// ---------------------------------------------------------
-//
-void CCdcCommsDatCreator::SetUnderlyingIapL( RPointerArray< HBufC >& aUnderLying )
-    {
-    // Sets the underlying IAP/SNAPS for vpn IAPs    
-    if( aUnderLying.Count() > 0 )
-        {
-        CLOG_WRITE_FORMAT( "SetUnderlyingIapL: %d\n", aUnderLying.Count() )
-        CLOG_WRITE( "--------------------------------------\n" )
-
-        CProcessorVpn* vpn = CProcessorVpn::NewL( iReader,
-                                               iCmManager,
-                                               iPluginArray,
-                                               iPluginNames,
-                                               aUnderLying );
-        
-        CleanupStack::PushL( vpn );
-        vpn->ProcessUnderLyingL(  iDestArray, iDestNames );
-        
-                
-        CleanupStack::PopAndDestroy( vpn );
-
-        CLOG_WRITE( "--------------------------------------\n" )
-        }
-    }
-
-
-// ---------------------------------------------------------
-// CCdcCommsDatCreator::SetUnderlyingIapL
-// ---------------------------------------------------------
-//
-void CCdcCommsDatCreator::SetWlanSecurityL( RPointerArray< HBufC >& aWlanSecurity )
-    {
-    if( aWlanSecurity.Count() > 0 
-		|| iEapSettings.Count() > 0 )
-        {
-        CLOG_WRITE_FORMAT( "SetWlanSecurityL: %d\n", aWlanSecurity.Count() );
-        CLOG_WRITE_FORMAT( "SetWlanSecurityL: EAPs: %d\n", iEapSettings.Count() );
-        CLOG_WRITE( "--------------------------------------\n" )
-
-        CProcessorWlan* wlan = CProcessorWlan::NewL( iReader,
-                                                     iCmManager,
-                                                     iPluginArray,
-                                                     iPluginNames,
-                                                     aWlanSecurity,
-													 iEapSettings);
-        
-        CleanupStack::PushL( wlan );
-        wlan->SaveSecurityInfoL();
-                
-        CleanupStack::PopAndDestroy( wlan );
-        
-        // EAP settings were saved. Delete them.
-        iEapSettings.ResetAndDestroy();
-
-        CLOG_WRITE( "--------------------------------------\n" )
-        }
-    }
-
-// ---------------------------------------------------------
-// CCdcCommsDatCreator:::SetLingerSettingsL
-// ---------------------------------------------------------
-//
-void CCdcCommsDatCreator::SetLingerSettingsL( 
-        RPointerArray< CLingerElement >& aLingerSettings )
-    {
-    CLOG_WRITE_FORMAT( "SetLingerSettingsL: %d\n", aLingerSettings.Count() );
-    if ( aLingerSettings.Count() > 0 )
-        {
-        CProcessorPacketData* pdp = CProcessorPacketData::NewL( iReader, 
-                                                                iCmManager,
-                                                                iPluginArray,
-                                                                iPluginNames,
-                                                                iLingerSettings );
-        
-        CleanupStack::PushL( pdp );
-        pdp->SaveLingerSettingsL();
-                
-        CleanupStack::PopAndDestroy( pdp );
-        }  
-    CLOG_WRITE( "--------------------------------------\n" )
-    }
-
-
-// End of File.