contentpublishingsrv/contentpublishingserver/cpsqlitestorage/src/cpstorageengine.cpp
branchRCL_3
changeset 74 edd621764147
parent 9 d0529222e3f0
child 82 ace62b58f4b2
--- a/contentpublishingsrv/contentpublishingserver/cpsqlitestorage/src/cpstorageengine.cpp	Tue Apr 27 16:57:49 2010 +0300
+++ b/contentpublishingsrv/contentpublishingserver/cpsqlitestorage/src/cpstorageengine.cpp	Tue May 11 16:30:05 2010 +0300
@@ -29,7 +29,8 @@
 //
 // ---------------------------------------------------------------------------
 //
-CCpStorageEngine::CCpStorageEngine()
+CCpStorageEngine::CCpStorageEngine(TLiwVariant& aDataMapCache) :
+    iDataMapCache(aDataMapCache)
     {
     }
 
@@ -72,9 +73,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-CCpStorageEngine* CCpStorageEngine::NewL()
+CCpStorageEngine* CCpStorageEngine::NewL(TLiwVariant& aDataMapCache)
     {
-    CCpStorageEngine* self = CCpStorageEngine::NewLC( );
+    CCpStorageEngine* self = CCpStorageEngine::NewLC(aDataMapCache);
     CleanupStack::Pop( self );
     return self;
     }
@@ -84,9 +85,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-CCpStorageEngine* CCpStorageEngine::NewLC()
+CCpStorageEngine* CCpStorageEngine::NewLC(TLiwVariant& aDataMapCache)
     {
-    CCpStorageEngine* self = new (ELeave) CCpStorageEngine();
+    CCpStorageEngine* self = new (ELeave) CCpStorageEngine(aDataMapCache);
     CleanupStack::PushL( self );
     self->ConstructL( );
     return self;
@@ -136,7 +137,10 @@
     {
     CP_DEBUG( _L8("CCpStorageEngine::GetListL()") );
     const CCPLiwMap* map = static_cast<const CCPLiwMap*>(aMap);
+    
     RArray<TInt32> itemsToDelete;
+    CleanupClosePushL( itemsToDelete );
+    
     TUint numberOfItems = map->GetListL( iSqlDb, &aList, itemsToDelete );
     //delete outdated items
     CContentMap* removeItemMap = CContentMap::NewLC( );
@@ -148,7 +152,7 @@
         removeItemMap->Remove( KId );
         }
     CleanupStack::PopAndDestroy( removeItemMap );
-    itemsToDelete.Reset( );
+    CleanupStack::PopAndDestroy( &itemsToDelete );
 
     if ( numberOfItems == 0 )
         {
@@ -170,6 +174,8 @@
         {
         CLiwDefaultList* listOfMaps = CLiwDefaultList::NewLC( );
         id = map->AddL( iSqlDb, listOfMaps );
+        iDataMapCache.Reset();
+        map->FindL(KDataMap, iDataMapCache);
         iCallback->HandleChangeL( listOfMaps );
         CleanupStack::PopAndDestroy( listOfMaps ) ;
         }