dbcreator/commsdatcreator/Src/cdcprocessorpacketdata.cpp
changeset 56 dd6aaa97e7b1
parent 52 bbe4544dfd31
child 59 2709c04a4af5
--- a/dbcreator/commsdatcreator/Src/cdcprocessorpacketdata.cpp	Fri Aug 06 19:11:03 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,473 +0,0 @@
-/*
-* Copyright (c) 2005 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 CProcessorPacketData
-*
-*/
-
-
-
-
-// INCLUDE FILES
-
-#include "cdcprocessorpacketdata.h"
-#include "cdclogger.h"
-#include "cdctagcontainer.h"
-
-#include <etelpckt.h>
-#include <cmpluginpacketdatadef.h>
-#include <cmpluginbaseeng.h>
-#include <cmconnectionmethoddef.h>
-#include <cmmanagerext.h>
-#include <datamobilitycommsdattypes.h>
-
-#include <centralrepository.h>
-#include <pdpcontextmanagerinternalcrkeys.h>
-
-using namespace CMManager;
-
-// CONSTANTS
-
-const TUint32 KDefaultPortNum = 80;
-const TInt32 KDefaultLinger = 0;
-const TUint KIapColumn        = 0x00000100;
-const TUint KLingerColumn     = 0x00000200;
-const TUint KColumnMask       = 0xFFFFFF00;
-const TUint KRowMask          = 0x000000FF;
-
-// These constants are used to identify tags of iInFile.
-
-//ISP types
-_LIT16( KStrISPInternet,      "0" );
-_LIT16( KStrISPWAP,      "1" );
-
-//Connection type
-_LIT16( KStrContinuous,      "Continuous" );
-_LIT16( KStrTemporary,       "Temporary" );
-
-//Password authentication
-_LIT16( KStrPwdAuthNormal,   "Normal" );
-_LIT16( KStrPwdAuthSecure,   "Secure" );
-
-//Network types
-_LIT16( KStrNetworkIPv4,     "IPv4" );
-_LIT16( KStrNetworkIPv6,     "IPv6" );
-
-
-// ================= MEMBER FUNCTIONS =======================
-CLingerElement::~CLingerElement()
-    {
-    delete iName;
-    delete iLinger;
-    }
-// ---------------------------------------------------------
-// CProcessorPacketData::NewL
-// ---------------------------------------------------------
-//
-CProcessorPacketData* CProcessorPacketData::NewL( 
-                                CReaderBase* aFileReader,
-                                RCmManagerExt& aCmManager,
-                                RPointerArray< RCmConnectionMethodExt >& aPluginArray,
-                                RPointerArray< HBufC >& aPluginNames,
-                                RPointerArray< CLingerElement >& aLingerSettings)
-    {
-    CProcessorPacketData* self = new ( ELeave ) CProcessorPacketData
-                                                            ( aFileReader,
-                                                              aCmManager,
-                                                              aPluginArray,
-                                                              aPluginNames,
-                                                              aLingerSettings);
-    CleanupStack::PushL( self );
-
-    // From base class
-    self->ConstructL();
-    CleanupStack::Pop( self ); // self
-    return self;
-    }
-    
-    
-// ---------------------------------------------------------
-// CProcessorPacketData::~CProcessorPacketData
-// ---------------------------------------------------------
-//
-CProcessorPacketData::~CProcessorPacketData()
-    {
-    }
-     
-     
-// ---------------------------------------------------------
-// CProcessorPacketData::ConstructL
-// ---------------------------------------------------------
-//
-void CProcessorPacketData::ConstructL()
-    {
-    }
-
-
-// ---------------------------------------------------------
-// CProcessorPacketData::CProcessorPacketData
-// ---------------------------------------------------------
-//
-CProcessorPacketData::CProcessorPacketData( CReaderBase* aFileReader,
-                      RCmManagerExt& aCmManager,
-                      RPointerArray< RCmConnectionMethodExt >& aPluginArray,
-                      RPointerArray< HBufC >& aPluginNames,
-                      RPointerArray< CLingerElement >& aLingerSettings ) :
-                                      CProcessorBase( aFileReader,
-                                                      aCmManager,
-                                                      aPluginArray,
-                                                      aPluginNames )
-                                      
-    {
-    iLingerSettings = &aLingerSettings;
-    iBearerType = KUidPacketDataBearerType;
-    }
-
-// ---------------------------------------------------------
-// CProcessorPacketData::ProcessTagL
-// ---------------------------------------------------------
-//
-void CProcessorPacketData::ProcessSpecialFieldsL( TInt aField, HBufC* aPtrTag, TInt /*aDx*/ )
-    {
-
-    switch ( aField )
-        {
-        case EPacketDataAPName:               //fall through
-        case EPacketDataIFAuthName:           //fall through
-        case EPacketDataIFAuthPass:           //fall through
-        case EPacketDataIPAddr:               //fall through
-            {
-             // Unicode 16-bit text
-            iPlugin.SetStringAttributeL( aField, *aPtrTag );
-
-            break;
-            }
-        case EPacketDataIPNameServer1:        //fall through
-        case EPacketDataIPNameServer2:        //fall through
-        case EPacketDataIPIP6NameServer1:     //fall through
-        case EPacketDataIPIP6NameServer2:     //fall through
-            {
-            iPlugin.SetStringAttributeL( aField, *aPtrTag );
-            SetAddressFromServerL( EPacketDataIPNameServer1,
-                                  EPacketDataIPNameServer2,
-                                  EPacketDataIPDNSAddrFromServer,
-                                  EPacketDataIPIP6NameServer1,
-                                  EPacketDataIPIP6NameServer2,
-                                  EPacketDataIPIP6DNSAddrFromServer );    
-            break;
-            }
-        case ECmWapIPGatewayAddress:
-            {
-             // Unicode 16-bit text
-            if ( aPtrTag->Length() )
-                {
-                iPlugin.SetStringAttributeL( aField, *aPtrTag );
-                }
-
-            break;
-            }
-        case EPacketDataIFPromptForAuth:
-            {
-            // Boolean
-            if ( !aPtrTag->CompareF( KStrYes ) )
-                {
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                }
-            else if ( !aPtrTag->CompareF( KStrNo ) )
-                {
-                iPlugin.SetBoolAttributeL( aField, EFalse );
-                }
-            else
-                {
-                //no valid data is given - use default value
-                iPlugin.SetBoolAttributeL( aField, EFalse );
-                CLOG_WRITE( "! Error : Invalid Prompt password. Default:No");
-                }
-
-            break;
-            }
-        case EPacketDataUseEdge:
-            {
-            // Boolean
-            if ( !aPtrTag->CompareF( KStrYes ) )
-                {
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                }
-            else if ( !aPtrTag->CompareF( KStrNo ) )
-                {
-                iPlugin.SetBoolAttributeL( aField, EFalse );
-                }
-            else
-                {
-                //no valid data is given - use default value
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                CLOG_WRITE( "! Error : Invalid Use EDGE. Default:Yes");
-                }
-
-            break;
-            }
-        case EPacketDataLinger:
-            {
-            // Pair linger with name for later saving
-            CLingerElement* linger = new (ELeave) CLingerElement;
-
-            CleanupStack::PushL( linger );
-                    
-            linger->iName = iName->AllocL();
-            linger->iLinger = aPtrTag->AllocL(); 
-                                            
-            iLingerSettings->AppendL(linger);
-                    
-            CleanupStack::Pop( linger );
-            break;
-            }
-        case ECmWapIPSecurity:
-            {
-             // TBool                
-            if ( !aPtrTag->CompareF( KStrOn ) )
-                {
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                }
-            else if ( !aPtrTag->CompareF( KStrOff ) )
-                {
-                iPlugin.SetBoolAttributeL( aField, EFalse );
-                }
-            else
-                {
-                //no valid data is given - default data is used
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                CLOG_WRITE( "! Error : Invalid WTLS security setting. Default:On");
-                }
-
-            break;
-            }
-        case ECmWapIPWSPOption:
-            {
-            // UInt                
-            if ( !aPtrTag->CompareF( KStrContinuous ) )
-                {
-                iPlugin.SetIntAttributeL( aField, 
-                                  EWapWspOptionConnectionOriented );
-                }
-            else if ( !aPtrTag->CompareF( KStrTemporary ) )
-                {
-                iPlugin.SetIntAttributeL( aField, 
-                                  EWapWspOptionConnectionless );
-                }
-            else
-                {
-                //no valid data is given - default data is used
-                iPlugin.SetIntAttributeL( aField, 
-                                  EWapWspOptionConnectionOriented );
-                CLOG_WRITE( "! Error : Invalid connection type. Default:Continuous");
-                }
-
-            break;
-            }
-            
-        case ECmProxyProtocolName:
-        	{
-        	// Do not enable proxy in this case yet
-        	iPlugin.SetStringAttributeL( aField, *aPtrTag );
-        	break;
-        	}
-                         
-        case ECmProxyServerName:    
-            {
-            // First set proxy usage to enabled
-            if( !iProxyEnabled )
-                {
-                iPlugin.SetBoolAttributeL( ECmProxyUsageEnabled, ETrue );
-                iProxyEnabled = ETrue;
-                }
-            // Long text
-            iPlugin.SetStringAttributeL( aField, *aPtrTag );
-            break;
-            }
-        case ECmProxyPortNumber:
-            {
-            // First set proxy usage to enabled
-            if( !iProxyEnabled )
-                {
-                iPlugin.SetBoolAttributeL( ECmProxyUsageEnabled, ETrue );
-                iProxyEnabled = ETrue;
-                }
-             // TUint32 and should be read as text.
-            TPtrC16 portptr = aPtrTag->Right( aPtrTag->Length() );
-            TLex16 lex( portptr );
-            TUint32 portnum( 0 );
-            if ( lex.Val( portnum, EDecimal ) == KErrNone )
-                {
-                iPlugin.SetIntAttributeL( aField, portnum );
-                }
-            else 
-                {
-                //no valid data is given - default value is used
-                iPlugin.SetIntAttributeL( aField, KDefaultPortNum );
-                CLOG_WRITE( "! Error : Invalid port number. Default:80");  
-                }
-            break;
-            }
-        case EPacketDataDisablePlainTextAuth:
-            {
-             // TBool                
-            if ( !aPtrTag->CompareF( KStrPwdAuthNormal ) )
-                {
-                // Normal, => auth. not secure, plain text NOT disabled
-                iPlugin.SetBoolAttributeL( aField, EFalse );
-                }
-            else if ( !aPtrTag->CompareF( KStrPwdAuthSecure ) )
-                {
-                // Secure, => auth. secure, plain text disabled
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                }
-            else
-                {
-                //no valid data is given - default value is used
-                CLOG_WRITE( "! Error : Invalid password authentication. Default:Secure ");  
-                iPlugin.SetBoolAttributeL( aField, ETrue );
-                }
-            break;
-            }
-        case EPacketDataPDPType:
-            {
-            if ( !aPtrTag->CompareF( KStrNetworkIPv4 ) )
-                {
-                iPlugin.SetIntAttributeL( aField, RPacketContext::EPdpTypeIPv4 );
-                }
-            else if ( !aPtrTag->CompareF( KStrNetworkIPv6 ) )
-                {
-                iPlugin.SetIntAttributeL( aField, RPacketContext::EPdpTypeIPv6 );
-                }
-            else
-                {
-                iPlugin.SetIntAttributeL( aField, RPacketContext::EPdpTypeIPv4 );
-                CLOG_WRITE( "! Error : Invalid Network type. Default:IPv4" )
-                }
-            break;
-            }
-        case EPacketDataApType:
-        		{
-        		if ( !aPtrTag->CompareF( KStrISPInternet ) )
-            		{
-            		iPlugin.SetIntAttributeL( aField, 0 );              
-                }
-            else if ( !aPtrTag->CompareF( KStrISPWAP ) )
-                {
-                iPlugin.SetIntAttributeL( aField, 1 );                              
-            		}
-            else
-               	{
-               	iPlugin.SetIntAttributeL( aField, 2 );
-                }  
-        		break;
-        	}
-        default:
-            {
-            break;
-            }
-        }//switch
-    }
-
-// ---------------------------------------------------------
-// CProcessorPacketData::AddLingerL
-// ---------------------------------------------------------
-//
-void CProcessorPacketData::AddLingerL( const TInt aIapId, const TInt aLingerInterval)
-    {
-    TInt    err( KErrNone );
-    
-    // Open repository
-    CRepository* repository = CRepository::NewLC( KCRUidPDPContextManager );
-    
-    // Find if an entry for "iapId" already exists in CentRep 
-    RArray< TUint32 > foundKeys;
-    foundKeys.Reset();
-    
-    err = repository->FindEqL( KIapColumn,       // partial key
-                               KColumnMask,      // key mask
-                               aIapId,           // value
-                               foundKeys );      // found keys
-    
-    if ( err == KErrNone || err == KErrNotFound )
-        {
-        if ( foundKeys.Count() == 0 )
-            {
-            // Add a new entry
-            TInt arrayCount( 0 );
-            
-            // Get number of iapId&linger entries in Centrep
-            err = repository->Get( KPdpContextManagerLingerArrayCount, 
-                                   arrayCount );
-        
-            if ( err == KErrNone )
-                {
-                arrayCount++;
-                
-                err = repository->Create( ( KIapColumn | arrayCount ), aIapId ); 
-                
-                if ( err == KErrNone )
-                    {
-                    err = repository->Create( ( KLingerColumn | arrayCount ), 
-                                               aLingerInterval );     
-                    }
-                
-                if ( err == KErrNone )
-                    {
-                    // Update number of iapId&linger entries in Centrep
-                    err = repository->Set( KPdpContextManagerLingerArrayCount, 
-                                           arrayCount );
-                    }
-                }
-            }
-        else
-            {
-            // Update existing entry on current row
-            TInt32 row = foundKeys[ 0 ] & KRowMask;
-            
-            err = repository->Set( ( KLingerColumn | row ), aLingerInterval ); 
-            }         
-        }
-        
-    foundKeys.Close();
-    CleanupStack::PopAndDestroy( repository );
-    
-    User::LeaveIfError( err );
-    }
-
-// ---------------------------------------------------------
-// CProcessorPacketData::SaveLingerSettingsL
-// ---------------------------------------------------------
-//
-void CProcessorPacketData::SaveLingerSettingsL()
-    {
-    for ( TInt i(0); i < iLingerSettings->Count(); i++ )
-        {
-        TInt id = GetPluginIdL(((*iLingerSettings)[i])->iName);
-        
-        TLex16 lex(*((*iLingerSettings)[i])->iLinger);
-        TInt linger( 0 );
-        if ( lex.Val( linger ) == KErrNone )         
-            {
-            AddLingerL( id, linger);
-            }
-            else 
-            {
-            // no valid data is given - default value is used
-            AddLingerL( id, KDefaultLinger); 
-            }
-        }
-        iLingerSettings->ResetAndDestroy();
-    }
-     
-// End of File.