harvester/harvesterserver/src/cblacklistdb.cpp
changeset 9 d575fd691cf9
parent 7 a5fbfefd615f
equal deleted inserted replaced
7:a5fbfefd615f 9:d575fd691cf9
    39 //SQL query to delete the records with given uid
    39 //SQL query to delete the records with given uid
    40 _LIT(KBlistSqlDelete, "DELETE FROM table WHERE uid=%d");
    40 _LIT(KBlistSqlDelete, "DELETE FROM table WHERE uid=%d");
    41 //SQL query to fetch all the records in database
    41 //SQL query to fetch all the records in database
    42 _LIT(KBlistSqlFormatAll , "SELECT * FROM table");
    42 _LIT(KBlistSqlFormatAll , "SELECT * FROM table");
    43 _LIT(KDriveC, "c:");
    43 _LIT(KDriveC, "c:");
    44 //Unload plugins Table name in blacklist database
    44 //dontload plugins Table name in blacklist database
    45 _LIT( KBLUnloadTableName , "unloadtable" );
    45 _LIT( KBLdontloadTableName , "dontloadtable" );
    46 //SQL query to fetch all the records in unload table
    46 //SQL query to fetch all the records in dontload table
    47 _LIT(KUnloadlistSqlFormatAll , "SELECT * FROM unloadtable");
    47 _LIT(KdontloadlistSqlFormatAll , "SELECT * FROM dontloadtable");
    48 //SQL query to delete the records with given uid in unload table
    48 //SQL query to delete the records with given uid in dontload table
    49 _LIT(KunloadlistSqlDelete, "DELETE FROM unloadtable WHERE uid=%d");
    49 _LIT(KdontloadlistSqlDelete, "DELETE FROM dontloadtable WHERE uid=%d");
    50 //SQL query to fetch the records with given uid from unload table
    50 //SQL query to fetch the records with given uid from dontload table
    51 _LIT(KUnloadlistSqlFormatSeek , "SELECT * FROM unloadtable WHERE uid=%d");
    51 _LIT(KdontloadlistSqlFormatSeek , "SELECT * FROM dontloadtable WHERE uid=%d");
    52 // -----------------------------------------------------------------------------
    52 // -----------------------------------------------------------------------------
    53 // CBlacklistDb::NewL()
    53 // CBlacklistDb::NewL()
    54 // -----------------------------------------------------------------------------
    54 // -----------------------------------------------------------------------------
    55 //
    55 //
    56 CBlacklistDb* CBlacklistDb::NewL()
    56 CBlacklistDb* CBlacklistDb::NewL()
   376     datafile.Append(privatePath);    
   376     datafile.Append(privatePath);    
   377     datafile.Append( KBlacklistFileName );
   377     datafile.Append( KBlacklistFileName );
   378     
   378     
   379     //create the database
   379     //create the database
   380     User::LeaveIfError( iDatabase.Create( iFs , datafile ) );
   380     User::LeaveIfError( iDatabase.Create( iFs , datafile ) );
   381     CDbColSet* columns = CreateColumnSetLC();//creates the columns and push to cleanupstack
   381     CDbColSet* columns = CreateBlacklistColumnSetLC();//creates the columns and push to cleanupstack
   382     User::LeaveIfError( iDatabase.CreateTable( KBlacklistTableName , *columns ) );
   382     User::LeaveIfError( iDatabase.CreateTable( KBlacklistTableName , *columns ) );
   383     //Add table to store the unload plugins
   383     //Add table to store the dontload plugins
   384     CDbColSet* unloadcolumns = CreateUnloadColumnSetLC(); //creates the columns and push to cleanupstack
   384     CDbColSet* dontloadcolumns = CreateDontloadColumnSetLC(); //creates the columns and push to cleanupstack
   385     User::LeaveIfError( iDatabase.CreateTable( KBLUnloadTableName , *unloadcolumns ) );
   385     User::LeaveIfError( iDatabase.CreateTable( KBLdontloadTableName , *dontloadcolumns ) );
   386     //clean up of variables (columns and dataFile)
   386     //clean up of variables (columns and dataFile)
   387     CleanupStack::PopAndDestroy( 2 );
   387     CleanupStack::PopAndDestroy( 2 );
   388     
   388     
   389     CPIXLOGSTRING("CBlacklistDb::CreateDBL(): Exit");
   389     CPIXLOGSTRING("CBlacklistDb::CreateDBL(): Exit");
   390     OstTraceFunctionExit0( CBLACKLISTDB_CREATEDBL_EXIT );
   390     OstTraceFunctionExit0( CBLACKLISTDB_CREATEDBL_EXIT );
   391     }
   391     }
   392 
   392 
   393 // -----------------------------------------------------------------------------
   393 // -----------------------------------------------------------------------------
   394 // CBlacklistDb::CreateColumnSetLC
   394 // CBlacklistDb::CreateBlacklistColumnSetLC
   395 // -----------------------------------------------------------------------------
   395 // -----------------------------------------------------------------------------
   396 //
   396 //
   397 CDbColSet* CBlacklistDb::CreateColumnSetLC()
   397 CDbColSet* CBlacklistDb::CreateBlacklistColumnSetLC()
   398     {
   398     {
   399     OstTraceFunctionEntry0( CBLACKLISTDB_CREATECOLUMNSETLC_ENTRY );
   399     OstTraceFunctionEntry0( CBLACKLISTDB_CREATEBLACKLISTCOLUMNSETLC_ENTRY );
   400     CPIXLOGSTRING("CBlacklistDb::CreateColumnSetLC(): Enter");
   400     CPIXLOGSTRING("CBlacklistDb::CreateColumnSetLC(): Enter");
   401     
   401     
   402     CDbColSet* columns = CDbColSet::NewLC();
   402     CDbColSet* columns = CDbColSet::NewLC();
   403     
   403     
   404     //Add uid column
   404     //Add uid column
   412     col.iAttributes = TDbCol::ENotNull;
   412     col.iAttributes = TDbCol::ENotNull;
   413     columns->AddL( col );
   413     columns->AddL( col );
   414     
   414     
   415     CPIXLOGSTRING("CBlacklistDb::CreateColumnSetLC(): Exit");
   415     CPIXLOGSTRING("CBlacklistDb::CreateColumnSetLC(): Exit");
   416     
   416     
   417     OstTraceFunctionExit0( CBLACKLISTDB_CREATECOLUMNSETLC_EXIT );
   417     OstTraceFunctionExit0( CBLACKLISTDB_CREATEBLACKLISTCOLUMNSETLC_EXIT );
   418     return columns; // columns stays on CleanupStack
   418     return columns; // columns stays on CleanupStack
   419     }
   419     }
   420 
   420 
   421 // -----------------------------------------------------------------------------
   421 // -----------------------------------------------------------------------------
   422 // CBlacklistDb::CreateUnloadColumnSetLC
   422 // CBlacklistDb::CreateDontloadColumnSetLC
   423 // -----------------------------------------------------------------------------
   423 // -----------------------------------------------------------------------------
   424 //
   424 //
   425 CDbColSet* CBlacklistDb::CreateUnloadColumnSetLC()
   425 CDbColSet* CBlacklistDb::CreateDontloadColumnSetLC()
   426     {
   426     {
   427     OstTraceFunctionEntry0( CBLACKLISTDB_CREATEUNLOADCOLUMNSETLC_ENTRY );
   427     OstTraceFunctionEntry0( CBLACKLISTDB_CREATEDONTLOADCOLUMNSETLC_ENTRY );
   428     CDbColSet* columns = CDbColSet::NewLC();
   428     CDbColSet* columns = CDbColSet::NewLC();
   429         
   429         
   430     //Add uid column
   430     //Add uid column
   431     TDbCol col( Kuid , EDbColInt32 );
   431     TDbCol col( Kuid , EDbColInt32 );
   432     col.iAttributes = TDbCol::ENotNull ;
   432     col.iAttributes = TDbCol::ENotNull ;
   433     columns->AddL( col );        
   433     columns->AddL( col );        
   434     
   434     
   435     OstTraceFunctionExit0( CBLACKLISTDB_CREATEUNLOADCOLUMNSETLC_EXIT );
   435     OstTraceFunctionExit0( CBLACKLISTDB_CREATEDONTLOADCOLUMNSETLC_EXIT );
   436     return columns; // columns stays on CleanupStack
   436     return columns; // columns stays on CleanupStack
   437     }
   437     }
   438 
   438 
   439 // -----------------------------------------------------------------------------
   439 // -----------------------------------------------------------------------------
   440 // CBlacklistDb::AddtoUnloadListL
   440 // CBlacklistDb::AddtoDontloadListL
   441 // -----------------------------------------------------------------------------
   441 // -----------------------------------------------------------------------------
   442 //
   442 //
   443 TInt CBlacklistDb::AddtoUnloadListL( TInt32 aPluginUid )
   443 TInt CBlacklistDb::AddtoDontloadListL( TInt32 aPluginUid )
   444     {
   444     {
   445     OstTraceFunctionEntry0( CBLACKLISTDB_ADDTOUNLOADLISTL_ENTRY );
   445     OstTraceFunctionEntry0( CBLACKLISTDB_ADDTODONTLOADLISTL_ENTRY );
   446     if ( !iOpened )
   446     if ( !iOpened )
   447             return KErrNotReady;
   447             return KErrNotReady;
   448         
   448         
   449     TInt err; 
   449     TInt err; 
   450     //Prepare the view
   450     //Prepare the view with all the rows in the donload table
   451     RDbView dbView;
   451     RDbView dbView;
   452     CleanupClosePushL( dbView );
   452     CleanupClosePushL( dbView );
   453 
   453 
   454     err = dbView.Prepare( iDatabase , TDbQuery( KUnloadlistSqlFormatAll ) ) ;
   454     err = dbView.Prepare( iDatabase , TDbQuery( KdontloadlistSqlFormatAll ) ) ;
   455         
   455         
   456     if ( err == KErrNone )
   456     if ( err == KErrNone )
   457        {
   457        {
   458         TRAP( err , dbView.InsertL() );
   458         TRAP( err , dbView.InsertL() );
   459         CDbColSet* colSet = dbView.ColSetL();
   459         if ( err == KErrNone )
   460         TDbColNo uidcolno = colSet->ColNo( Kuid );        
   460             {
   461         dbView.SetColL( uidcolno , aPluginUid );
   461             CDbColSet* colSet = dbView.ColSetL();
   462         dbView.PutL();
   462             TDbColNo uidcolno = colSet->ColNo( Kuid );        
       
   463             dbView.SetColL( uidcolno , aPluginUid );
       
   464             dbView.PutL();
       
   465             }
   463         //If addition failed, rollback
   466         //If addition failed, rollback
   464         if(err != KErrNone)
   467         else
   465             {
   468             {
   466             iDatabase.Rollback();
   469             iDatabase.Rollback();
   467             }            
   470             }            
   468        }
   471        }
   469     CleanupStack::PopAndDestroy( &dbView ); // dbView/    
   472     CleanupStack::PopAndDestroy( &dbView ); // dbView/    
   470     User::LeaveIfError( iDatabase.Compact() );    
   473     User::LeaveIfError( iDatabase.Compact() );    
   471     
   474     
   472     OstTraceFunctionExit0( CBLACKLISTDB_ADDTOUNLOADLISTL_EXIT );
   475     OstTraceFunctionExit0( CBLACKLISTDB_ADDTODONTLOADLISTL_EXIT );
   473     return err;
   476     return err;
   474     }
   477     }
   475 // -----------------------------------------------------------------------------
   478 // -----------------------------------------------------------------------------
   476 // CBlacklistDb::RemoveFromUnloadListL
   479 // CBlacklistDb::RemoveFromDontloadListL
   477 // -----------------------------------------------------------------------------
   480 // -----------------------------------------------------------------------------
   478 //
   481 //
   479 void CBlacklistDb::RemoveFromUnloadListL( TInt32 aPluginUid )
   482 void CBlacklistDb::RemoveFromDontloadListL( TInt32 aPluginUid )
   480     {
   483     {
   481     OstTraceFunctionEntry0( CBLACKLISTDB_REMOVEFROMUNLOADLISTL_ENTRY );
   484     OstTraceFunctionEntry0( CBLACKLISTDB_REMOVEFROMDONTLOADLISTL_ENTRY );
   482     if ( !iOpened )
   485     if ( !iOpened )
   483            return ;
   486            return ;
   484         
   487         
   485     //Remove the item record to database
   488     //Remove the item record to database
   486     // Create the sql statement.  KBlistSqlDelete
   489     // Create the sql statement.  KBlistSqlDelete
   487     TBuf<KBlistSqlStringMaxLength> sql;
   490     TBuf<KBlistSqlStringMaxLength> sql;
   488     sql.Format( KunloadlistSqlDelete , aPluginUid );
   491     sql.Format( KdontloadlistSqlDelete , aPluginUid );
   489     
   492     
   490     //delete the row.
   493     //delete the row.
   491     TInt rowCount( iDatabase.Execute(sql) );
   494     TInt rowCount( iDatabase.Execute(sql) );
   492     if(rowCount > 0)
   495     OstTrace1( TRACE_NORMAL, DUP3_CBLACKLISTDB_REMOVEFROMDONTLOADLISTL, "No. of rows removed succesfully is ;RowCount=%d", rowCount );
   493         {       
   496     
   494         OstTrace0( TRACE_NORMAL, CBLACKLISTDB_REMOVEFROMUNLOADLISTL, "CBlacklistDb::RemoveFromUnloadListL :: removed UID succesfully" );
   497     CPIXLOGSTRING("CBlacklistDb::RemoveFromDontloadListL(): Exit");
   495         CPIXLOGSTRING("CBlacklistDb::RemoveFromUnloadListL(): Removed UID succesfully");
   498     
   496         }
   499     OstTraceFunctionExit0( CBLACKLISTDB_REMOVEFROMDONTLOADLISTL_EXIT );
   497     else
       
   498         {        
       
   499         OstTrace0( TRACE_NORMAL, DUP1_CBLACKLISTDB_REMOVEFROMUNLOADLISTL, "CBlacklistDb::RemoveFromUnloadListL:: UID not found" );
       
   500         CPIXLOGSTRING("CBlacklistDb::RemoveFromUnloadListL(): UID not found");
       
   501         }
       
   502     CPIXLOGSTRING("CBlacklistDb::RemoveFromUnloadListL(): Exit");
       
   503     
       
   504     OstTraceFunctionExit0( CBLACKLISTDB_REMOVEFROMUNLOADLISTL_EXIT );
       
   505     return ;
   500     return ;
   506     }
   501     }
   507 
   502 
   508 // -----------------------------------------------------------------------------
   503 // -----------------------------------------------------------------------------
   509 // CBlacklistDb::FindFromUnloadListL
   504 // CBlacklistDb::FindInDontloadListL
   510 // -----------------------------------------------------------------------------
   505 // -----------------------------------------------------------------------------
   511 //
   506 //
   512 TBool CBlacklistDb::FindFromUnloadListL( TInt32 aPluginUid )
   507 TBool CBlacklistDb::FindInDontloadListL( TInt32 aPluginUid )
   513     {
   508     {
   514     OstTraceFunctionEntry0( CBLACKLISTDB_FINDFROMUNLOADLISTL_ENTRY );
   509     OstTraceFunctionEntry0( CBLACKLISTDB_FINDINDONTLOADLISTL_ENTRY );
   515     CPIXLOGSTRING2("CBlacklistDb::FindFromUnloadListL(): Uid = %x " , aPluginUid );
   510     CPIXLOGSTRING2("CBlacklistDb::FindInDontloadListL(): Uid = %x " , aPluginUid );
   516         
   511         
   517     if ( !iOpened )
   512     if ( !iOpened )
   518             return EFalse;
   513             return EFalse;
   519     
   514     
   520     //Check if the item is available in database
   515     //Check if the item is available in database
   521     //Prepare the sql
   516     //Prepare the sql
   522     TBuf<KBlistSqlStringMaxLength> sql;
   517     TBuf<KBlistSqlStringMaxLength> sql;
   523     sql.Format( KUnloadlistSqlFormatSeek , aPluginUid );
   518     sql.Format( KdontloadlistSqlFormatSeek , aPluginUid );
   524     TBool found = EFalse;
   519     TBool found = EFalse;
   525     //Prepare the view
   520     //Prepare the view to get the list of rows which has the given Uid
   526     RDbView dbView;
   521     RDbView dbView;
   527     CleanupClosePushL( dbView );
   522     CleanupClosePushL( dbView );
   528 
   523 
   529     User::LeaveIfError( dbView.Prepare( iDatabase , TDbQuery(sql) , RDbView::EReadOnly ) );
   524     User::LeaveIfError( dbView.Prepare( iDatabase , TDbQuery(sql) , RDbView::EReadOnly ) );
   530     User::LeaveIfError( dbView.EvaluateAll() );
   525     User::LeaveIfError( dbView.EvaluateAll() );
   531 
   526 
   532     TInt isAtRow( dbView.FirstL() );
   527     TInt isAtRow( dbView.FirstL() );
   533     
   528     
   534     if ( isAtRow )
   529     if ( isAtRow )
   535        {
   530        {
   536         OstTrace0( TRACE_NORMAL, CBLACKLISTDB_FINDFROMUNLOADLISTL, "CBlacklistDb::FindFromUnloadListL::UID found" );
   531         OstTrace0( TRACE_NORMAL, CBLACKLISTDB_FINDFROMDONTLOADLISTL, "CBlacklistDb::FindFromDontloadListL::UID found" );
   537         CPIXLOGSTRING("CBlacklistDb::FindFromUnloadListL(): UID found");
   532         CPIXLOGSTRING("CBlacklistDb::FindFromDontloadListL(): UID found");
   538         found = ETrue;                 
   533         found = ETrue;                 
   539        }    
   534        }    
   540     CleanupStack::PopAndDestroy( &dbView ); // dbView/
   535     CleanupStack::PopAndDestroy( &dbView ); // dbView/
   541     OstTraceFunctionExit0( CBLACKLISTDB_FINDFROMUNLOADLISTL_EXIT );
   536     OstTraceFunctionExit0( CBLACKLISTDB_FINDINDONTLOADLISTL_EXIT );
   542     return found;
   537     return found;
   543     }
   538     }