diff -r e16d72588c28 -r 8a03a285ab14 omadrm/drmengine/server/src/DRMReplayCache.cpp --- a/omadrm/drmengine/server/src/DRMReplayCache.cpp Fri Mar 12 15:43:46 2010 +0200 +++ b/omadrm/drmengine/server/src/DRMReplayCache.cpp Mon Mar 15 12:41:43 2010 +0200 @@ -19,14 +19,14 @@ // INCLUDE FILES #include -#include -#include -#include "drmreplaycache.h" +#include +#include +#include "DRMReplayCache.h" // EXTERNAL DATA STRUCTURES -// EXTERNAL FUNCTION PROTOTYPES +// EXTERNAL FUNCTION PROTOTYPES // CONSTANTS @@ -46,12 +46,12 @@ LOCAL_C const TUint16 KDbMaxNumOfItems = 100; // MODULE DATA STRUCTURES -NONSHARABLE_STRUCT( TDoDeleteFile ) +NONSHARABLE_STRUCT( TDoDeleteFile ) { RFs* iFs; const TDesC* iFile; }; - + // LOCAL FUNCTION PROTOTYPES LOCAL_C void DoRollBack( TAny* aAny ); LOCAL_C void DoDeleteFile( TAny* aAny ); @@ -63,7 +63,7 @@ // ----------------------------------------------------------------------------- // DoRollBack // -// Do a rollback operation to the RDbDatabase* +// Do a rollback operation to the RDbDatabase* // ----------------------------------------------------------------------------- // LOCAL_C void DoRollBack( TAny* aAny ) @@ -80,8 +80,8 @@ LOCAL_C void DoDeleteFile( TAny* aAny ) { TDoDeleteFile* s = reinterpret_cast< TDoDeleteFile* >( aAny ); - - s->iFs->Delete( *( s->iFile ) ); + + s->iFs->Delete( *( s->iFile ) ); } // ============================ MEMBER FUNCTIONS =============================== @@ -89,7 +89,7 @@ // ----------------------------------------------------------------------------- // RDRMReplayCache::RDRMReplayCache // -// Default constructor +// Default constructor // ----------------------------------------------------------------------------- // RDRMReplayCache::RDRMReplayCache(): @@ -97,13 +97,13 @@ iTimeDb(), iPlainDb() { - // Nothing. + // Nothing. } // ----------------------------------------------------------------------------- // RDRMReplayCache::RDRMReplayCache // -// Constructor +// Constructor // ----------------------------------------------------------------------------- // RDRMReplayCache::RDRMReplayCache( RFs& aFs ) : @@ -113,14 +113,14 @@ { // Nothing. } - + // ----------------------------------------------------------------------------- // RDRMReplayCache::Set // // Set iFs to given aFs. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::Set( RFs& aFs ) { iFs = &aFs; @@ -131,7 +131,7 @@ // // Closes the databases. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::Close() { // iView.Close(); @@ -144,7 +144,7 @@ // // Initialize the databases. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::InitL( const TDesC& aTimedDb, const TDesC& aPlainDb ) { @@ -159,16 +159,16 @@ // Check whether the given entry is in cache. Overloaded. // ----------------------------------------------------------------------------- // -TBool RDRMReplayCache::InCacheL( const TDesC8& aID, +TBool RDRMReplayCache::InCacheL( const TDesC8& aID, const TTime& aTime ) { TBool res = EFalse; - + RDbView view; InitViewLC( view, ETimeDb, EFalse ); - + view.FirstL(); - + while ( view.AtRow() && !res ) { view.GetL(); @@ -180,9 +180,9 @@ } view.NextL(); } - + CleanupStack::PopAndDestroy(); // view - + return res; } @@ -191,27 +191,27 @@ // // Check whether the given entry is in cache. Overloaded. // ----------------------------------------------------------------------------- -// +// TBool RDRMReplayCache::InCacheL( const TDesC8& aID ) { TBool res = EFalse; - + RDbView view; InitViewLC( view, EPlainDb, EFalse ); - + view.FirstL(); - + while ( view.AtRow() && !res ) { view.GetL(); - + res = CompareCIDL( view, aID ); - + view.NextL(); } - + CleanupStack::PopAndDestroy(); // view - + return res; } @@ -220,73 +220,73 @@ // // Add an entry to the database. Overloaded. // ----------------------------------------------------------------------------- -// -void RDRMReplayCache::AddL( const TDesC8& aID, +// +void RDRMReplayCache::AddL( const TDesC8& aID, const TTime& aTime, const TTime& aInsertionTime ) { RDbColWriteStream stream; RDbView view; - + PushL( iTimeDb ); - + InitViewLC( view, ETimeDb, ETrue ); CompactViewL( view ); - // Oldest ones are in the list earlier, and as long as clock works + // Oldest ones are in the list earlier, and as long as clock works // correctly, insertiontime(n-1)Count() != 1 || ( *tables )[ 0 ].Compare( KReplayCacheTable ) ) { User::Leave( KErrCorrupt ); } - + CleanupStack::PopAndDestroy(); // tables CleanupStack::Pop(); // aDb } @@ -360,9 +360,9 @@ // // Replace the database. // ----------------------------------------------------------------------------- -// -void RDRMReplayCache::ReplaceDbL( RDbNamedDatabase& aDb, - const TDesC& aFileName, +// +void RDRMReplayCache::ReplaceDbL( RDbNamedDatabase& aDb, + const TDesC& aFileName, TDatabaseId aId ) { CDbColSet* colSet = NULL; @@ -370,92 +370,92 @@ TDbCol cidCol( KCIDColName, EDbColLongText8 ); TDbCol insertionTimeCol( KInsertionTimeColName, EDbColInt64 ); TDbCol timeCol( KTimeColName, EDbColInt64 ); - + TDoDeleteFile deletefile = { iFs, &aFileName }; - + TCleanupItem item( DoDeleteFile, &deletefile ); CleanupStack::PushL( item ); - + User::LeaveIfError( aDb.Replace( *iFs, aFileName ) ); CleanupClosePushL( aDb ); - + // Add columns colSet = CDbColSet::NewLC(); colSet->AddL( cidCol ); colSet->AddL( insertionTimeCol ); - + if ( aId == ETimeDb ) { colSet->AddL( timeCol ); } - + User::LeaveIfError( aDb.Begin() ); User::LeaveIfError( aDb.CreateTable( KReplayCacheTable, *colSet ) ); User::LeaveIfError( aDb.Commit() ); - + CleanupStack::PopAndDestroy(); // colSet - CleanupStack::Pop(); // aDb + CleanupStack::Pop(); // aDb CleanupStack::Pop(); // item } - + // ----------------------------------------------------------------------------- // RDRMReplayCache::InitViewLC // // Initialize the view. // ----------------------------------------------------------------------------- -// -void RDRMReplayCache::InitViewLC( RDbView& aView, - TDatabaseId aId, +// +void RDRMReplayCache::InitViewLC( RDbView& aView, + TDatabaseId aId, TBool aUpdate ) { RDbDatabase* db = ( aId == ETimeDb ? &iTimeDb : &iPlainDb ); - - User::LeaveIfError( - aView.Prepare( *db, - TDbQuery( KViewInitQuery, EDbCompareCollated ), + + User::LeaveIfError( + aView.Prepare( *db, + TDbQuery( KViewInitQuery, EDbCompareCollated ), aUpdate ? RDbRowSet::EUpdatable : RDbRowSet::EReadOnly ) ); - + CleanupClosePushL( aView ); - + User::LeaveIfError( aView.EvaluateAll() ); } - + // ----------------------------------------------------------------------------- // RDRMReplayCache::CompareCIDL // // Compare whether the rowset's CID matches the given CID. // ----------------------------------------------------------------------------- -// -TBool RDRMReplayCache::CompareCIDL( RDbRowSet& aView, +// +TBool RDRMReplayCache::CompareCIDL( RDbRowSet& aView, const TDesC8& aCID ) { TBool res = EFalse; - + TInt size = aView.ColLength( KDbViewIDOrdinal ); - + RDbColReadStream colData; colData.OpenLC( aView, KDbViewIDOrdinal ); - - // The data contains also the cardinality of the CID data, but anyway... + + // The data contains also the cardinality of the CID data, but anyway... HBufC8* des = HBufC8::NewLC( colData, size ); if ( aCID.CompareC( *des ) == 0 ) { res = ETrue; } - + CleanupStack::PopAndDestroy(); // des CleanupStack::PopAndDestroy(); // colData - + return res; } - + // ----------------------------------------------------------------------------- // RDRMReplayCache::PushL // // Push a cleanup item to cleanup stack. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::PushL( RDbDatabase& aDb ) { TCleanupItem item( DoRollBack, &aDb ); @@ -467,7 +467,7 @@ // // Pop a cleanup item pushed in by PushL. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::Pop() { CleanupStack::Pop(); @@ -478,11 +478,11 @@ // // Delete aHowMany entries from the view. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::DeleteOldestsL( RDbRowSet& aView, TInt16 aHowMany ) { aView.FirstL(); - + while ( aHowMany > 0 ) { aView.DeleteL(); @@ -496,11 +496,11 @@ // // Compact the view, deleting items if necessary. // ----------------------------------------------------------------------------- -// +// void RDRMReplayCache::CompactViewL( RDbRowSet& aView ) { TInt count = aView.CountL(); - + if ( count >= KDbMaxNumOfItems ) { // usually only one item is deleted, no need to use Begin/Commit. @@ -513,17 +513,17 @@ // // Insert content-ID to the view. // ----------------------------------------------------------------------------- -// -void RDRMReplayCache::InsertIdL( RDbRowSet& aView, +// +void RDRMReplayCache::InsertIdL( RDbRowSet& aView, const TDesC8& aId ) { - + RDbColWriteStream stream; stream.OpenLC( aView, KDbViewIDOrdinal ); stream << aId; - + stream.CommitL(); CleanupStack::PopAndDestroy(); // stream } - + // End of File