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 } |