locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp
branchRCL_3
changeset 20 2b4ea9893b66
parent 7 19bff11d6c18
child 21 6b6920c56e2f
--- a/locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp	Thu Aug 19 10:20:18 2010 +0300
+++ b/locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp	Tue Aug 31 15:37:04 2010 +0300
@@ -364,16 +364,16 @@
         {
         case EOpStateQuery:
             {
-            iView.FirstL();
+             
             // check if view is empty, return KErrNotFound
-            if( iView.IsEmptyL() || !iView.AtRow() )
+            if( iView.IsEmptyL() || !iView.AtRow() || !iView.FirstL() )
                 {
                 CompleteClientRequest( KErrNotFound );
                 break;
                 }       
             // Start iterating through all the triggers in view            
             iOperationState = EOpStateIterating;
-            iView.FirstL();
+                       
             }
             // Omitting break is intentional
        case EOpStateIterating:
@@ -763,14 +763,14 @@
         case EOpStateQuery:
             {
             // check if view is empty, return KErrNotFound
-            if( iView.IsEmptyL() )
+            if( iView.IsEmptyL() || !iView.FirstL())
                 {
                 CompleteClientRequest( KErrNotFound );
                 break;
                 }       
             // Start iterating through all the triggers in view            
             iOperationState = EOpStateIterating;
-            iView.FirstL();
+           
             }
             // Omitting break is intentional
         case EOpStateIterating:
@@ -835,8 +835,10 @@
                         }
                     CleanupStack::PopAndDestroy(entry);
                     }       
-                iView.NextL();       
-                }
+                 TBool res =iView.NextL();   
+                 if (!res)
+                 	break;
+              }
             
             if( count >= KStepCount )
                 {
@@ -869,7 +871,7 @@
         case EOpStateQuery:
             {
             // check if view is empty, return KErrNotFound
-            if( iView.IsEmptyL() )
+            if( iView.IsEmptyL() || !iView.FirstL())
                 {
                 CompleteClientRequest( KErrNotFound );
                 break;
@@ -877,7 +879,8 @@
             
             // Start iterating through all the triggers in view            
             iOperationState = EOpStateIterating;
-            iView.FirstL();
+            
+            
             }
             // Omitting break is intentional
         case EOpStateIterating:
@@ -924,7 +927,10 @@
                             }
                         CleanupStack::PopAndDestroy( entry );
                         }
-                    iView.NextL();
+                    
+                     TBool res = iView.NextL();
+                      if(!res)
+            	         break;
                     }                
                 }
 
@@ -982,7 +988,8 @@
                 }
             }
 
-        iView.NextL();
+        if(!iView.NextL())
+        	break;
         }
 
     if( count >= KStepCount )
@@ -1262,7 +1269,7 @@
                         }
                     }
                 areaBase->InternalizeL(readStream);
-                areaArray.Append(areaBase);
+                areaArray.AppendL(areaBase);
                 CleanupStack::Pop(1); //areaBase                
                 }
             
@@ -1321,7 +1328,11 @@
     PrepareViewForTriggersL( aTriggerIds, iView );
  
     // rest of list triggers operation is in the method HandleGetTriggersEventL.
-    iView.FirstL();
+   if(!iView.FirstL())
+   {
+   	CompleteClientRequest( KErrNotFound );
+	return;
+	}
     SelfComplete();
 	}
 
@@ -1395,7 +1406,12 @@
     PrepareViewForListingL( iView );
     
     // rest of list triggers operation is in the method HandleListTriggersEventL.
-    iView.FirstL();
+    
+	if(!iView.FirstL())
+   {
+   	CompleteClientRequest( KErrNotFound );
+	return;
+	}
     iFilterBase = LbtContainerUtilities::GetContainerFilterFromListOptionsLC(iFilter);
     CleanupStack::Pop(1); // iFilterBase
     
@@ -1507,9 +1523,13 @@
     sql.AppendNum( aTriggerId );
     
     // Execute the query to delete the entry
-    iDbOperation->ExecuteSyncQuery( view, sql );
-   	view.Close();
-    }
+    TInt err =iDbOperation->ExecuteSyncQuery( view, sql );
+    if( err != KErrNone )
+    	{
+    		LOG("err");
+    	}
+ 	   	view.Close();
+       }
 
 //---------------------------------------------------------------------------
 // CLbtDbTriggersManager::AddGeoCellIntoDbL
@@ -1759,10 +1779,15 @@
 
     iIdArray.Reset();
     RDbView view;
+     CleanupClosePushL( view );
     PrepareViewForTriggersL( aTriggerIds, view );
+    if(!view.FirstL())
+	   {
+	     CompleteClientRequest( KErrNotFound );
+       return;
+	   }
+   
     
-    CleanupClosePushL( view );
-    view.FirstL();
     while(view.AtRow())
         {
         view.GetL();
@@ -1800,7 +1825,7 @@
                     TLbtTriggerModifiedInfo info;
                     info.iTriggerId = triggerId;
                     info.iAreaType = static_cast<CLbtGeoAreaBase::TGeoAreaType>(view.ColInt8(ELbtDbTriggerAreaType));;
-                    iIdArray.Append(info);
+                    iIdArray.AppendL(info);
                     
                     if( currentValidity == TLbtTriggerDynamicInfo::EInvalid &&
                         aValidity == TLbtTriggerDynamicInfo::EValid)
@@ -1815,7 +1840,8 @@
                     }
                 }
             }
-        view.NextL();
+        if(!view.NextL())
+        	break;
         }
     CleanupStack::PopAndDestroy(); // view
     User::RequestComplete( status, KErrNone );
@@ -1853,7 +1879,12 @@
 
   	TBool found = EFalse;
   	CleanupClosePushL( view );
-  	view.FirstL();
+  	
+	if(!view.FirstL())
+	{
+	CompleteClientRequest( KErrNotFound );
+    return;
+	}
   	while(view.AtRow())
     	{
     	view.GetL();
@@ -1870,8 +1901,10 @@
 	 	    	view.PutL();
 	 	    	}
     		}
-    	view.NextL();
-    	}
+    	if(!view.NextL())
+    		break;
+    			
+    }
     CleanupStack::PopAndDestroy(); //view
 
     TInt error = KErrNone;
@@ -2036,10 +2069,12 @@
                 User::Leave(error);
                 }
             CleanupClosePushL(hybridView);
-            hybridView.FirstL();
+            if(hybridView.FirstL())
+            	{
             hybridView.GetL();
             hybridView.DeleteL();
             hybridView.Close();
+              }
             CleanupStack::PopAndDestroy(1); // hybridView            
             break;
             }
@@ -2050,7 +2085,7 @@
     	MLbtTriggerStore::TLbtTriggerModifiedInfo info;
     	info.iTriggerId = aTriggerId;
     	info.iAreaType = areaType;
-    	iIdArray.Append(info);
+    	iIdArray.AppendL(info);
     	}
     
     iView.DeleteL();
@@ -2409,7 +2444,11 @@
 		info.iStartupProcess = KNullUid;
 		}
         
-    iIdArray.Append(info);
+    TInt error = iIdArray.Append(info);
+    if( error != KErrNone )
+        {
+        LOG1("Failed to appenf info to the array:%d",error);
+        }
 	}
 	
 
@@ -2421,7 +2460,12 @@
 	 {
 	 for( TInt i = 0;i<iIdArray.Count();i++ )
 		 {
-		 aArray.Append(iIdArray[i]);	
+		 TInt error = aArray.Append(iIdArray[i]);
+	      if( error != KErrNone )
+             {
+             LOG1("Failed to append modified triggers:%d",error);
+             return;
+             }
 	     }
 	 iIdArray.Reset();
 	 } 
@@ -2580,7 +2624,8 @@
 	    		}
     		}
 
-    	iView.NextL();
+    	if(!iView.NextL())
+    		break;
     	}
     
     if( count >= KStepCount )