omaprovisioning/provisioning/WAPAdapter/Src/CWPWAPItemBAse.cpp
changeset 24 bf47f3b79154
parent 0 b497e44ab2fc
equal deleted inserted replaced
22:19fb38abab1d 24:bf47f3b79154
    20 // INCLUDE FILES
    20 // INCLUDE FILES
    21 #include <e32base.h>
    21 #include <e32base.h>
    22 #include <msvapi.h>
    22 #include <msvapi.h>
    23 #include <mmsclient.h> 
    23 #include <mmsclient.h> 
    24 #include <mtclreg.h>
    24 #include <mtclreg.h>
    25 #include <ApDataHandler.h>
       
    26 #include <ApAccessPointItem.h>
       
    27 #include <ApUtils.h>
       
    28 #include <f32file.h>
    25 #include <f32file.h>
    29 #include <barsc.h>
    26 #include <barsc.h>
    30 #include <bautils.h>
    27 #include <bautils.h>
    31 #include <CWPCharacteristic.h>
    28 #include <CWPCharacteristic.h>
    32 #include <CWPParameter.h>
    29 #include <CWPParameter.h>
    33 #include <WPAdapterUtil.h>
    30 #include <WPAdapterUtil.h>
       
    31 #include <commdb.h>
    34 #include <CWPAdapter.h>
    32 #include <CWPAdapter.h>
    35 #include "CWPWAPItemBAse.h"
    33 #include "CWPWAPItemBAse.h"
    36 #include "ProvisioningDebug.h"
    34 #include "ProvisioningDebug.h"
       
    35 #include <cmconnectionmethoddef.h>
    37 
    36 
    38 // CONSTANTS
    37 // CONSTANTS
    39 const TInt KNamesGranularity = 1;
    38 const TInt KNamesGranularity = 1;
    40 const TInt KNameMaxLength = 50;
    39 const TInt KNameMaxLength = 50;
    41 
    40 
    49 //
    48 //
    50 CWPWAPItemBase::CWPWAPItemBase(  const TDesC& aTitle,
    49 CWPWAPItemBase::CWPWAPItemBase(  const TDesC& aTitle,
    51                                  const TDesC& aDefaultName, 
    50                                  const TDesC& aDefaultName, 
    52                                  CWPCharacteristic& aCharacteristic, 
    51                                  CWPCharacteristic& aCharacteristic, 
    53                                  CCommsDatabase*& aCommsDb, 
    52                                  CCommsDatabase*& aCommsDb, 
    54                                  CApDataHandler*& aAPHandler )
    53                                  RCmManagerExt*& aCmManager)
    55                                 : iCharacteristic( aCharacteristic ), 
    54                                 : iCharacteristic( aCharacteristic ), 
    56                                   iTitle( aTitle ), 
    55                                   iTitle( aTitle ), 
    57                                   iDefaultName( aDefaultName ), 
    56                                   iDefaultName( aDefaultName ), 
    58                                   iCommsDb( aCommsDb ), 
    57                                   iCommsDb( aCommsDb ), 
    59                                   iAPHandler( aAPHandler )
    58                                   iCmManager( aCmManager )
    60     {
    59     {
       
    60     
    61     }
    61     }
    62 
    62 
    63 // -----------------------------------------------------------------------------
    63 // -----------------------------------------------------------------------------
    64 // CWPWAPItemBase::BaseConstructL
    64 // CWPWAPItemBase::BaseConstructL
    65 // Symbian 2nd phase constructor can leave.
    65 // Symbian 2nd phase constructor can leave.
   209     if( !iCommsDb )
   209     if( !iCommsDb )
   210         {
   210         {
   211         iCommsDb = CCommsDatabase::NewL();
   211         iCommsDb = CCommsDatabase::NewL();
   212         }
   212         }
   213 
   213 
   214     if( !iAPHandler )
   214     if( !iCmManager )
   215         {
   215         {
   216         iAPHandler = CApDataHandler::NewLC( *iCommsDb );
   216         iCmManager = new RCmManagerExt;
   217         CleanupStack::Pop(); // iAPEngine
   217         iCmManager->OpenL();
   218         }
   218         }
   219     }
   219     }
   220 
   220 
   221 // -----------------------------------------------------------------------------
   221 // -----------------------------------------------------------------------------
   222 // CWPWAPItemBase::WriteHomePageL
   222 // CWPWAPItemBase::WriteHomePageL
   223 // -----------------------------------------------------------------------------
   223 // -----------------------------------------------------------------------------
   224 //
   224 //
   225 void CWPWAPItemBase::WriteHomePageL( CApAccessPointItem& aItem )
   225 void CWPWAPItemBase::WriteHomePageL( RCmConnectionMethodExt& aCmItem )
   226     {
   226     {
   227     FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL:" ) );
   227     FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL:" ) );
   228 
   228 
   229     if( iAddr )
   229     if( iAddr )
   230         {
   230         {
   231         if( aItem.ReadTextLengthL( EApWapStartPage ) > 0 )
   231         if( aCmItem.GetStringAttributeL(CMManager::ECmStartPage) > 0 )
   232             {
   232             {
   233             FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage " ) );
   233             FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage " ) );
   234             // Make a copy of the AP
   234             // Make a copy of the AP
   235             CApAccessPointItem* newItem = CApAccessPointItem::NewLC();
   235             RCmConnectionMethodExt cm = aCmItem.CreateCopyL();
   236             newItem->CopyFromL( aItem );
   236             CleanupClosePushL( cm );
   237             
   237             
   238             // Create a proper name for the copy
   238             // Create a proper name for the copy
   239             TBuf<KNameMaxLength> name( iName.Left( KNameMaxLength ) );
   239             TBuf<KNameMaxLength> name( iName.Left( KNameMaxLength ) );
   240             MakeValidNameL( name, *iCommsDb );  
   240            // MakeValidNameL( name, *iCommsDb );
       
   241             
   241             
   242             
   242             // Write name 
   243             // Write name 
   243             User::LeaveIfError( newItem->WriteTextL( EApWapAccessPointName, name ) );
   244             cm.SetStringAttributeL(CMManager::ECmName,name);
   244             
   245             cm.SetStringAttributeL(CMManager::ENamingUnique,name);
   245             //Write IAP name
   246             
   246             User::LeaveIfError( newItem->WriteTextL( EApIapName, name ) );
       
   247             // Write MMSC address
   247             // Write MMSC address
   248             User::LeaveIfError( newItem->WriteLongTextL( EApWapStartPage, *iAddr ) );
   248             cm.SetStringAttributeL(CMManager::ECmStartPage,*iAddr);
   249             
   249             
   250             // Create the new access point
   250             // Create the new access point
   251             TRAPD( err, iUID = iAPHandler->CreateFromDataL( *newItem ) );
   251             TRAPD( err, cm.UpdateL() );
   252             
   252             
   253             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err));
   253             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err));
   254             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID));
   254             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID));
   255             
   255             
   256             if( err == KErrLocked )
   256             if( err == KErrLocked )
   265             CleanupStack::PopAndDestroy(); // newItem
   265             CleanupStack::PopAndDestroy(); // newItem
   266             }
   266             }
   267         else
   267         else
   268             {
   268             {
   269             FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage 0 " ) );
   269             FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage 0 " ) );
   270             User::LeaveIfError( aItem.WriteLongTextL( EApWapStartPage, *iAddr ) );
   270             aCmItem.SetStringAttributeL(CMManager::ECmStartPage,*iAddr);
   271             
   271             
   272             // Update the access point
   272             // Update the access point
   273             TBool nameChanged( EFalse );
   273             TBool nameChanged( EFalse );
   274             TRAPD( err, iAPHandler->UpdateAccessPointDataL( aItem, nameChanged ) );
   274             TRAPD( err, aCmItem.UpdateL() );
   275             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err));
   275             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err));
   276             if( err == KErrLocked )
   276             if( err == KErrLocked )
   277                 {
   277                 {
   278                 err = EWPCommsDBLocked;
   278                 err = EWPCommsDBLocked;
   279                 }
   279                 }
   280             User::LeaveIfError( err );
   280             User::LeaveIfError( err );
   281             iUID = aItem.WapUid();
   281             iUID = aCmItem.GetIntAttributeL(CMManager::ECmIapId);
   282             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID));
   282             FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID));
   283             }
   283             }
   284         }
   284         }
   285     }
   285     }
   286 
   286 
   288 // CWPWAPItemBase::MakeValidNameL
   288 // CWPWAPItemBase::MakeValidNameL
   289 // -----------------------------------------------------------------------------
   289 // -----------------------------------------------------------------------------
   290 //
   290 //
   291 void CWPWAPItemBase::MakeValidNameL( TDes& aName, CCommsDatabase& aDb ) const
   291 void CWPWAPItemBase::MakeValidNameL( TDes& aName, CCommsDatabase& aDb ) const
   292     {
   292     {
   293     CApUtils* utils = CApUtils::NewLC( aDb );
   293    /* CApUtils* utils = CApUtils::NewLC( aDb );
   294     utils->MakeValidNameL( aName );
   294     utils->MakeValidNameL( aName );
   295     CleanupStack::PopAndDestroy(); // utils
   295     CleanupStack::PopAndDestroy(); // utils*/
   296     }
   296     }
   297 
   297 
   298 //  End of File  
   298 //  End of File