equal
deleted
inserted
replaced
362 |
362 |
363 switch(iOperationState) |
363 switch(iOperationState) |
364 { |
364 { |
365 case EOpStateQuery: |
365 case EOpStateQuery: |
366 { |
366 { |
367 iView.FirstL(); |
367 |
368 // check if view is empty, return KErrNotFound |
368 // check if view is empty, return KErrNotFound |
369 if( iView.IsEmptyL() || !iView.AtRow() ) |
369 if( iView.IsEmptyL() || !iView.AtRow() || !iView.FirstL() ) |
370 { |
370 { |
371 CompleteClientRequest( KErrNotFound ); |
371 CompleteClientRequest( KErrNotFound ); |
372 break; |
372 break; |
373 } |
373 } |
374 // Start iterating through all the triggers in view |
374 // Start iterating through all the triggers in view |
375 iOperationState = EOpStateIterating; |
375 iOperationState = EOpStateIterating; |
376 iView.FirstL(); |
376 |
377 } |
377 } |
378 // Omitting break is intentional |
378 // Omitting break is intentional |
379 case EOpStateIterating: |
379 case EOpStateIterating: |
380 { |
380 { |
381 TPtr sql = iSqlQuery->Des(); |
381 TPtr sql = iSqlQuery->Des(); |
761 switch(iOperationState) |
761 switch(iOperationState) |
762 { |
762 { |
763 case EOpStateQuery: |
763 case EOpStateQuery: |
764 { |
764 { |
765 // check if view is empty, return KErrNotFound |
765 // check if view is empty, return KErrNotFound |
766 if( iView.IsEmptyL() ) |
766 if( iView.IsEmptyL() || !iView.FirstL()) |
767 { |
767 { |
768 CompleteClientRequest( KErrNotFound ); |
768 CompleteClientRequest( KErrNotFound ); |
769 break; |
769 break; |
770 } |
770 } |
771 // Start iterating through all the triggers in view |
771 // Start iterating through all the triggers in view |
772 iOperationState = EOpStateIterating; |
772 iOperationState = EOpStateIterating; |
773 iView.FirstL(); |
773 |
774 } |
774 } |
775 // Omitting break is intentional |
775 // Omitting break is intentional |
776 case EOpStateIterating: |
776 case EOpStateIterating: |
777 { |
777 { |
778 TUid ownerSid; |
778 TUid ownerSid; |
833 iCountOfEnabledAndValidTrigger--; |
833 iCountOfEnabledAndValidTrigger--; |
834 } |
834 } |
835 } |
835 } |
836 CleanupStack::PopAndDestroy(entry); |
836 CleanupStack::PopAndDestroy(entry); |
837 } |
837 } |
838 iView.NextL(); |
838 TBool res =iView.NextL(); |
839 } |
839 if (!res) |
|
840 break; |
|
841 } |
840 |
842 |
841 if( count >= KStepCount ) |
843 if( count >= KStepCount ) |
842 { |
844 { |
843 // Self complete to process next request |
845 // Self complete to process next request |
844 SelfComplete(); |
846 SelfComplete(); |
867 switch( iOperationState ) |
869 switch( iOperationState ) |
868 { |
870 { |
869 case EOpStateQuery: |
871 case EOpStateQuery: |
870 { |
872 { |
871 // check if view is empty, return KErrNotFound |
873 // check if view is empty, return KErrNotFound |
872 if( iView.IsEmptyL() ) |
874 if( iView.IsEmptyL() || !iView.FirstL()) |
873 { |
875 { |
874 CompleteClientRequest( KErrNotFound ); |
876 CompleteClientRequest( KErrNotFound ); |
875 break; |
877 break; |
876 } |
878 } |
877 |
879 |
878 // Start iterating through all the triggers in view |
880 // Start iterating through all the triggers in view |
879 iOperationState = EOpStateIterating; |
881 iOperationState = EOpStateIterating; |
880 iView.FirstL(); |
882 |
|
883 |
881 } |
884 } |
882 // Omitting break is intentional |
885 // Omitting break is intentional |
883 case EOpStateIterating: |
886 case EOpStateIterating: |
884 { |
887 { |
885 TInt count = 0; |
888 TInt count = 0; |
922 // TODO: Check if this will crash |
925 // TODO: Check if this will crash |
923 DeleteTriggerL( entry->TriggerEntry()->Id() ); |
926 DeleteTriggerL( entry->TriggerEntry()->Id() ); |
924 } |
927 } |
925 CleanupStack::PopAndDestroy( entry ); |
928 CleanupStack::PopAndDestroy( entry ); |
926 } |
929 } |
927 iView.NextL(); |
930 |
|
931 TBool res = iView.NextL(); |
|
932 if(!res) |
|
933 break; |
928 } |
934 } |
929 } |
935 } |
930 |
936 |
931 if( !iView.AtRow() ) |
937 if( !iView.AtRow() ) |
932 { |
938 { |
980 { |
986 { |
981 delete entry; |
987 delete entry; |
982 } |
988 } |
983 } |
989 } |
984 |
990 |
985 iView.NextL(); |
991 if(!iView.NextL()) |
|
992 break; |
986 } |
993 } |
987 |
994 |
988 if( count >= KStepCount ) |
995 if( count >= KStepCount ) |
989 { |
996 { |
990 // Self complete to process next request |
997 // Self complete to process next request |
1260 User::Leave( KErrArgument ); |
1267 User::Leave( KErrArgument ); |
1261 break; |
1268 break; |
1262 } |
1269 } |
1263 } |
1270 } |
1264 areaBase->InternalizeL(readStream); |
1271 areaBase->InternalizeL(readStream); |
1265 areaArray.Append(areaBase); |
1272 areaArray.AppendL(areaBase); |
1266 CleanupStack::Pop(1); //areaBase |
1273 CleanupStack::Pop(1); //areaBase |
1267 } |
1274 } |
1268 |
1275 |
1269 CLbtGeoHybrid* hybrid = CLbtGeoHybrid::NewLC(areaArray); |
1276 CLbtGeoHybrid* hybrid = CLbtGeoHybrid::NewLC(areaArray); |
1270 // Set the wlan area to the trigger |
1277 // Set the wlan area to the trigger |
1319 iCurrentOperation = EDbOpGetTriggers; |
1326 iCurrentOperation = EDbOpGetTriggers; |
1320 // Prepare view for triggers |
1327 // Prepare view for triggers |
1321 PrepareViewForTriggersL( aTriggerIds, iView ); |
1328 PrepareViewForTriggersL( aTriggerIds, iView ); |
1322 |
1329 |
1323 // rest of list triggers operation is in the method HandleGetTriggersEventL. |
1330 // rest of list triggers operation is in the method HandleGetTriggersEventL. |
1324 iView.FirstL(); |
1331 if(!iView.FirstL()) |
|
1332 { |
|
1333 CompleteClientRequest( KErrNotFound ); |
|
1334 return; |
|
1335 } |
1325 SelfComplete(); |
1336 SelfComplete(); |
1326 } |
1337 } |
1327 |
1338 |
1328 // --------------------------------------------------------------------------- |
1339 // --------------------------------------------------------------------------- |
1329 // List the triggers in database based on filter |
1340 // List the triggers in database based on filter |
1393 |
1404 |
1394 // Prepare view for listing |
1405 // Prepare view for listing |
1395 PrepareViewForListingL( iView ); |
1406 PrepareViewForListingL( iView ); |
1396 |
1407 |
1397 // rest of list triggers operation is in the method HandleListTriggersEventL. |
1408 // rest of list triggers operation is in the method HandleListTriggersEventL. |
1398 iView.FirstL(); |
1409 |
|
1410 if(!iView.FirstL()) |
|
1411 { |
|
1412 CompleteClientRequest( KErrNotFound ); |
|
1413 return; |
|
1414 } |
1399 iFilterBase = LbtContainerUtilities::GetContainerFilterFromListOptionsLC(iFilter); |
1415 iFilterBase = LbtContainerUtilities::GetContainerFilterFromListOptionsLC(iFilter); |
1400 CleanupStack::Pop(1); // iFilterBase |
1416 CleanupStack::Pop(1); // iFilterBase |
1401 |
1417 |
1402 SelfComplete(); |
1418 SelfComplete(); |
1403 } |
1419 } |
1505 |
1521 |
1506 sql.Append( KLike ); |
1522 sql.Append( KLike ); |
1507 sql.AppendNum( aTriggerId ); |
1523 sql.AppendNum( aTriggerId ); |
1508 |
1524 |
1509 // Execute the query to delete the entry |
1525 // Execute the query to delete the entry |
1510 iDbOperation->ExecuteSyncQuery( view, sql ); |
1526 TInt err =iDbOperation->ExecuteSyncQuery( view, sql ); |
1511 view.Close(); |
1527 if( err != KErrNone ) |
1512 } |
1528 { |
|
1529 LOG("err"); |
|
1530 } |
|
1531 view.Close(); |
|
1532 } |
1513 |
1533 |
1514 //--------------------------------------------------------------------------- |
1534 //--------------------------------------------------------------------------- |
1515 // CLbtDbTriggersManager::AddGeoCellIntoDbL |
1535 // CLbtDbTriggersManager::AddGeoCellIntoDbL |
1516 //--------------------------------------------------------------------------- |
1536 //--------------------------------------------------------------------------- |
1517 // |
1537 // |
1757 return; |
1777 return; |
1758 } |
1778 } |
1759 |
1779 |
1760 iIdArray.Reset(); |
1780 iIdArray.Reset(); |
1761 RDbView view; |
1781 RDbView view; |
|
1782 CleanupClosePushL( view ); |
1762 PrepareViewForTriggersL( aTriggerIds, view ); |
1783 PrepareViewForTriggersL( aTriggerIds, view ); |
1763 |
1784 if(!view.FirstL()) |
1764 CleanupClosePushL( view ); |
1785 { |
1765 view.FirstL(); |
1786 CompleteClientRequest( KErrNotFound ); |
|
1787 return; |
|
1788 } |
|
1789 |
|
1790 |
1766 while(view.AtRow()) |
1791 while(view.AtRow()) |
1767 { |
1792 { |
1768 view.GetL(); |
1793 view.GetL(); |
1769 TLbtTriggerId triggerId = view.ColInt64(ELbtDbFieldId); |
1794 TLbtTriggerId triggerId = view.ColInt64(ELbtDbFieldId); |
1770 TInt index = aTriggerIds.Find(triggerId); |
1795 TInt index = aTriggerIds.Find(triggerId); |
1798 view.PutL(); |
1823 view.PutL(); |
1799 |
1824 |
1800 TLbtTriggerModifiedInfo info; |
1825 TLbtTriggerModifiedInfo info; |
1801 info.iTriggerId = triggerId; |
1826 info.iTriggerId = triggerId; |
1802 info.iAreaType = static_cast<CLbtGeoAreaBase::TGeoAreaType>(view.ColInt8(ELbtDbTriggerAreaType));; |
1827 info.iAreaType = static_cast<CLbtGeoAreaBase::TGeoAreaType>(view.ColInt8(ELbtDbTriggerAreaType));; |
1803 iIdArray.Append(info); |
1828 iIdArray.AppendL(info); |
1804 |
1829 |
1805 if( currentValidity == TLbtTriggerDynamicInfo::EInvalid && |
1830 if( currentValidity == TLbtTriggerDynamicInfo::EInvalid && |
1806 aValidity == TLbtTriggerDynamicInfo::EValid) |
1831 aValidity == TLbtTriggerDynamicInfo::EValid) |
1807 { |
1832 { |
1808 iCountOfEnabledAndValidTrigger++; |
1833 iCountOfEnabledAndValidTrigger++; |
1813 iCountOfEnabledAndValidTrigger--; |
1838 iCountOfEnabledAndValidTrigger--; |
1814 } |
1839 } |
1815 } |
1840 } |
1816 } |
1841 } |
1817 } |
1842 } |
1818 view.NextL(); |
1843 if(!view.NextL()) |
|
1844 break; |
1819 } |
1845 } |
1820 CleanupStack::PopAndDestroy(); // view |
1846 CleanupStack::PopAndDestroy(); // view |
1821 User::RequestComplete( status, KErrNone ); |
1847 User::RequestComplete( status, KErrNone ); |
1822 } |
1848 } |
1823 |
1849 |
1851 RDbView view; |
1877 RDbView view; |
1852 PrepareViewForTriggersL( aTriggerIds, view ); |
1878 PrepareViewForTriggersL( aTriggerIds, view ); |
1853 |
1879 |
1854 TBool found = EFalse; |
1880 TBool found = EFalse; |
1855 CleanupClosePushL( view ); |
1881 CleanupClosePushL( view ); |
1856 view.FirstL(); |
1882 |
|
1883 if(!view.FirstL()) |
|
1884 { |
|
1885 CompleteClientRequest( KErrNotFound ); |
|
1886 return; |
|
1887 } |
1857 while(view.AtRow()) |
1888 while(view.AtRow()) |
1858 { |
1889 { |
1859 view.GetL(); |
1890 view.GetL(); |
1860 TLbtTriggerId triggerId = view.ColInt64(ELbtDbFieldId); |
1891 TLbtTriggerId triggerId = view.ColInt64(ELbtDbFieldId); |
1861 |
1892 |
1868 view.UpdateL(); |
1899 view.UpdateL(); |
1869 view.SetColL( ELbtDbFieldIsTriggerFired, aFireBool ); |
1900 view.SetColL( ELbtDbFieldIsTriggerFired, aFireBool ); |
1870 view.PutL(); |
1901 view.PutL(); |
1871 } |
1902 } |
1872 } |
1903 } |
1873 view.NextL(); |
1904 if(!view.NextL()) |
1874 } |
1905 break; |
|
1906 |
|
1907 } |
1875 CleanupStack::PopAndDestroy(); //view |
1908 CleanupStack::PopAndDestroy(); //view |
1876 |
1909 |
1877 TInt error = KErrNone; |
1910 TInt error = KErrNone; |
1878 if(!found) |
1911 if(!found) |
1879 { |
1912 { |
2034 { |
2067 { |
2035 hybridView.Close(); |
2068 hybridView.Close(); |
2036 User::Leave(error); |
2069 User::Leave(error); |
2037 } |
2070 } |
2038 CleanupClosePushL(hybridView); |
2071 CleanupClosePushL(hybridView); |
2039 hybridView.FirstL(); |
2072 if(hybridView.FirstL()) |
|
2073 { |
2040 hybridView.GetL(); |
2074 hybridView.GetL(); |
2041 hybridView.DeleteL(); |
2075 hybridView.DeleteL(); |
2042 hybridView.Close(); |
2076 hybridView.Close(); |
|
2077 } |
2043 CleanupStack::PopAndDestroy(1); // hybridView |
2078 CleanupStack::PopAndDestroy(1); // hybridView |
2044 break; |
2079 break; |
2045 } |
2080 } |
2046 } |
2081 } |
2047 |
2082 |
2048 if(iIdArray.Count() == 0) |
2083 if(iIdArray.Count() == 0) |
2049 { |
2084 { |
2050 MLbtTriggerStore::TLbtTriggerModifiedInfo info; |
2085 MLbtTriggerStore::TLbtTriggerModifiedInfo info; |
2051 info.iTriggerId = aTriggerId; |
2086 info.iTriggerId = aTriggerId; |
2052 info.iAreaType = areaType; |
2087 info.iAreaType = areaType; |
2053 iIdArray.Append(info); |
2088 iIdArray.AppendL(info); |
2054 } |
2089 } |
2055 |
2090 |
2056 iView.DeleteL(); |
2091 iView.DeleteL(); |
2057 } |
2092 } |
2058 |
2093 |
2407 else |
2442 else |
2408 { |
2443 { |
2409 info.iStartupProcess = KNullUid; |
2444 info.iStartupProcess = KNullUid; |
2410 } |
2445 } |
2411 |
2446 |
2412 iIdArray.Append(info); |
2447 TInt error = iIdArray.Append(info); |
|
2448 if( error != KErrNone ) |
|
2449 { |
|
2450 LOG1("Failed to appenf info to the array:%d",error); |
|
2451 } |
2413 } |
2452 } |
2414 |
2453 |
2415 |
2454 |
2416 // ----------------------------------------------------------------------------- |
2455 // ----------------------------------------------------------------------------- |
2417 // CLbtDbTriggersManager::TriggersModified |
2456 // CLbtDbTriggersManager::TriggersModified |
2419 // |
2458 // |
2420 void CLbtDbTriggersManager::TriggersModified(RArray<TLbtTriggerModifiedInfo>& aArray) |
2459 void CLbtDbTriggersManager::TriggersModified(RArray<TLbtTriggerModifiedInfo>& aArray) |
2421 { |
2460 { |
2422 for( TInt i = 0;i<iIdArray.Count();i++ ) |
2461 for( TInt i = 0;i<iIdArray.Count();i++ ) |
2423 { |
2462 { |
2424 aArray.Append(iIdArray[i]); |
2463 TInt error = aArray.Append(iIdArray[i]); |
|
2464 if( error != KErrNone ) |
|
2465 { |
|
2466 LOG1("Failed to append modified triggers:%d",error); |
|
2467 return; |
|
2468 } |
2425 } |
2469 } |
2426 iIdArray.Reset(); |
2470 iIdArray.Reset(); |
2427 } |
2471 } |
2428 |
2472 |
2429 // ----------------------------------------------------------------------------- |
2473 // ----------------------------------------------------------------------------- |
2578 { |
2622 { |
2579 delete entry; |
2623 delete entry; |
2580 } |
2624 } |
2581 } |
2625 } |
2582 |
2626 |
2583 iView.NextL(); |
2627 if(!iView.NextL()) |
|
2628 break; |
2584 } |
2629 } |
2585 |
2630 |
2586 if( count >= KStepCount ) |
2631 if( count >= KStepCount ) |
2587 { |
2632 { |
2588 // Self complete to process next request |
2633 // Self complete to process next request |