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