531 { |
531 { |
532 case KPositionPartialUpdate: // fall through |
532 case KPositionPartialUpdate: // fall through |
533 case KPositionQualityLoss: |
533 case KPositionQualityLoss: |
534 { |
534 { |
535 // Location is stored, even if it may not be valid. |
535 // Location is stored, even if it may not be valid. |
536 LOG("Partial update"); |
536 LOG("CLocationRecord::Position(), Partial update"); |
537 if ( iState != RLocationTrail::EWaitingGPSData && |
537 if ( iState != RLocationTrail::EWaitingGPSData && |
538 iState != RLocationTrail::ETrailStopping ) |
538 iState != RLocationTrail::ETrailStopping ) |
539 { |
539 { |
540 SetCurrentState( RLocationTrail::EWaitingGPSData ); |
540 SetCurrentState( RLocationTrail::EWaitingGPSData ); |
541 LOG("Trail waiting for gps"); |
541 LOG("CLocationRecord::Position(), Trail waiting for gps"); |
542 } |
542 } |
543 break; |
543 break; |
544 } |
544 } |
545 case KErrNone: |
545 case KErrNone: |
546 { |
546 { |
547 LOG("Good GPS coordinates"); |
547 LOG("CLocationRecord::Position(), Good GPS coordinates"); |
548 iGpsDataAvailableFlag = ETrue; |
548 iGpsDataAvailableFlag = ETrue; |
549 if ( iState != RLocationTrail::ETrailStarted ) |
549 if ( iState != RLocationTrail::ETrailStarted ) |
550 { |
550 { |
551 if ( iRemapper ) |
551 if ( iRemapper ) |
552 { |
552 { |
553 LOG("Start remapping"); |
553 LOG("CLocationRecord::Position(), Start remapping"); |
554 iRemapper->StartRemappingObjects( iNewItem.iLocationData ); |
554 iRemapper->StartRemappingObjects( iNewItem.iLocationData ); |
555 |
555 |
556 if( iObserver->WaitForPositioningStopTimeout() && !RemappingNeeded() ) |
556 if( iObserver->WaitForPositioningStopTimeout() && !RemappingNeeded() ) |
557 { |
557 { |
558 iObserver->RemapedCompleted(); |
558 iObserver->RemapedCompleted(); |
569 } |
569 } |
570 break; |
570 break; |
571 } |
571 } |
572 default: |
572 default: |
573 { |
573 { |
574 LOG1("Searching GPS, aError %d", aError ); |
574 LOG1("CLocationRecord::Position(), Searching GPS, aError %d", aError ); |
575 if ( iState != RLocationTrail::ESearchingGPS && |
575 if ( iState != RLocationTrail::ESearchingGPS && |
576 iState != RLocationTrail::ETrailStopping ) |
576 iState != RLocationTrail::ETrailStopping ) |
577 { |
577 { |
578 SetCurrentState( RLocationTrail::ESearchingGPS ); |
578 SetCurrentState( RLocationTrail::ESearchingGPS ); |
579 LOG("Trail searching gps"); |
579 LOG("Trail searching gps"); |
580 } |
580 } |
581 break; |
581 break; |
582 } |
582 } |
583 } |
583 } |
584 TBool fixState = CheckGPSFix( positionSatelliteInfo ); |
584 TBool fixState = CheckGPSFix( positionSatelliteInfo ); |
585 LOG1( "fixState %d", fixState ); |
585 LOG1( "CLocationRecord::Position(), fixState %d", fixState ); |
586 LOG1( "iLastGPSFixState %d", iLastGPSFixState ); |
586 LOG1( "CLocationRecord::Position(), iLastGPSFixState %d", iLastGPSFixState ); |
587 |
587 |
588 if ( iObserver && iLastGPSFixState != fixState ) |
588 if ( iObserver && iLastGPSFixState != fixState ) |
589 { |
589 { |
590 LOG("Quality changed"); |
590 LOG("CLocationRecord::Position(), Quality changed"); |
591 iObserver->GPSSignalQualityChanged( positionSatelliteInfo ); |
591 iObserver->GPSSignalQualityChanged( positionSatelliteInfo ); |
592 } |
592 } |
593 |
593 |
594 iLastGPSFixState = fixState; |
594 iLastGPSFixState = fixState; |
595 |
595 |
966 net->iCountryCode.Length() == 0 && |
966 net->iCountryCode.Length() == 0 && |
967 net->iNetworkId.Length() == 0 ) |
967 net->iNetworkId.Length() == 0 ) |
968 { |
968 { |
969 // no n/w info... put it into remap. |
969 // no n/w info... put it into remap. |
970 // remove the last appended element. |
970 // remove the last appended element. |
971 LOG("No network info (offline mode + no GPS fix), keep for remapping"); |
971 LOG("CLocationRecord::LocationSnapshotL(), No network info (offline mode + no GPS fix), keep for remapping"); |
972 TRemapItem remapItem; |
972 TRemapItem remapItem; |
973 remapItem.iObjectId = aObjectId; |
973 remapItem.iObjectId = aObjectId; |
974 remapItem.iTime = timestamp; |
974 remapItem.iTime = timestamp; |
975 iRemapper->Append( remapItem ); |
975 iRemapper->Append( remapItem ); |
976 |
976 |
977 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
977 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
978 iMediaItems.Remove(iMediaItems.Count() - 1); |
978 iMediaItems.Remove(iMediaItems.Count() - 1); |
979 iMediaItems.Compress(); |
979 iMediaItems.Compress(); |
980 delete firstPtr; |
980 if( firstPtr == newItem) |
|
981 { |
|
982 newItem = NULL; |
|
983 } |
|
984 delete firstPtr; |
|
985 firstPtr = NULL; |
981 } |
986 } |
982 else |
987 else |
983 { |
988 { |
984 // n/w info available |
989 // n/w info available |
985 NetworkInfoSnapshotL(); |
990 NetworkInfoSnapshotL(); |
986 } |
991 } |
987 } |
992 } |
988 else if ( Math::IsNaN( locationData.iPosition.Latitude() ) && |
993 else if ( Math::IsNaN( locationData.iPosition.Latitude() ) && |
989 Math::IsNaN( locationData.iPosition.Longitude() )) |
994 Math::IsNaN( locationData.iPosition.Longitude() )) |
990 { |
995 { |
|
996 LOG("CLocationRecord::LocationSnapshotL(), coordinates empty with or without cellular info") |
991 // coordinates empty, with or without cellular info |
997 // coordinates empty, with or without cellular info |
992 |
998 |
993 if ( net->iCellId == 0 && |
999 if ( net->iCellId == 0 && |
994 net->iLocationAreaCode == 0 && |
1000 net->iLocationAreaCode == 0 && |
995 net->iCountryCode.Length() == 0 && |
1001 net->iCountryCode.Length() == 0 && |
996 net->iNetworkId.Length() == 0 ) |
1002 net->iNetworkId.Length() == 0 ) |
997 { |
1003 { |
998 LOG("No network info (offline mode + no GPS fix), keep for remapping"); |
1004 LOG("CLocationRecord::LocationSnapshotL(), No network info (offline mode + no GPS fix), keep for remapping"); |
999 TRemapItem remapItem; |
1005 TRemapItem remapItem; |
1000 remapItem.iObjectId = aObjectId; |
1006 remapItem.iObjectId = aObjectId; |
1001 remapItem.iTime = timestamp; |
1007 remapItem.iTime = timestamp; |
1002 iRemapper->Append( remapItem ); |
1008 iRemapper->Append( remapItem ); |
1003 |
1009 |
1004 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
1010 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
1005 iMediaItems.Remove(iMediaItems.Count() - 1); |
1011 iMediaItems.Remove(iMediaItems.Count() - 1); |
1006 iMediaItems.Compress(); |
1012 iMediaItems.Compress(); |
1007 delete firstPtr; |
1013 if( firstPtr == newItem) |
|
1014 { |
|
1015 newItem = NULL; |
|
1016 } |
|
1017 delete firstPtr; |
|
1018 firstPtr = NULL; |
1008 } |
1019 } |
1009 // check match for last created locationobject |
1020 // check match for last created locationobject |
1010 #ifdef LOC_REVERSEGEOCODE |
1021 #ifdef LOC_REVERSEGEOCODE |
1011 else if ( (iLastMediaItem.iFlag & KSnapMediaFile) > 0 && |
1022 else if ( (iLastMediaItem.iFlag & KSnapMediaFile) > 0 && |
1012 iLastMediaItem.iCountryTagId > 0) |
1023 iLastMediaItem.iCountryTagId > 0) |
1013 #else |
1024 #else |
1014 else if ( (iLastMediaItem.iFlag & KSnapMediaFile) > 0) |
1025 else if ( (iLastMediaItem.iFlag & KSnapMediaFile) > 0) |
1015 #endif //LOC_REVERSEGEOCODE |
1026 #endif //LOC_REVERSEGEOCODE |
1016 { |
1027 { |
|
1028 LOG("CLocationRecord::LocationSnapshotL(), last created locationobject match" ); |
1017 TLocationData lastLocationData = iLastMediaItem.iLocationData; |
1029 TLocationData lastLocationData = iLastMediaItem.iLocationData; |
1018 CTelephony::TNetworkInfoV1* lastnet = &lastLocationData.iNetworkInfo; |
1030 CTelephony::TNetworkInfoV1* lastnet = &lastLocationData.iNetworkInfo; |
1019 |
1031 |
1020 // networkinfo changed from last location |
1032 // networkinfo changed from last location |
1021 if ( lastnet->iCellId == net->iCellId && |
1033 if ( lastnet->iCellId == net->iCellId && |
1036 #endif //LOC_REVERSEGEOCODE |
1048 #endif //LOC_REVERSEGEOCODE |
1037 // remove the current item. |
1049 // remove the current item. |
1038 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
1050 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
1039 iMediaItems.Remove(iMediaItems.Count() - 1); |
1051 iMediaItems.Remove(iMediaItems.Count() - 1); |
1040 iMediaItems.Compress(); |
1052 iMediaItems.Compress(); |
1041 delete firstPtr; |
1053 if( firstPtr == newItem) |
|
1054 { |
|
1055 newItem = NULL; |
|
1056 } |
|
1057 delete firstPtr; |
|
1058 firstPtr = NULL; |
1042 } |
1059 } |
1043 } |
1060 } |
1044 |
1061 |
1045 if ( !previousMatch ) |
1062 if ( newItem && !previousMatch ) |
1046 { |
1063 { |
1047 // go for n/w based |
1064 // go for n/w based |
1048 newItem->iFlag |= KNetQueryBit; |
1065 newItem->iFlag |= KNetQueryBit; |
1049 } |
1066 } |
1050 } |
1067 } |
1051 |
1068 |
1052 // valid coordinates found |
1069 // valid coordinates found |
1053 else if ( lastLocationId != 0 && |
1070 else if ( lastLocationId != 0 && |
1054 ((iLastMediaItem.iFlag & KSnapMediaFile) > 0)) |
1071 ((iLastMediaItem.iFlag & KSnapMediaFile) > 0)) |
1055 { |
1072 { |
|
1073 LOG("CLocationRecord::LocationSnapshotL(), valid coordinates found"); |
1056 TLocationData lastLocationData = iLastMediaItem.iLocationData; |
1074 TLocationData lastLocationData = iLastMediaItem.iLocationData; |
1057 CTelephony::TNetworkInfoV1* lastnet = &lastLocationData.iNetworkInfo; |
1075 CTelephony::TNetworkInfoV1* lastnet = &lastLocationData.iNetworkInfo; |
1058 |
1076 |
1059 // first check if networkinfo matches last created location |
1077 // first check if networkinfo matches last created location |
1060 if ( lastnet->iCellId == net->iCellId && |
1078 if ( lastnet->iCellId == net->iCellId && |
1089 iTagCreator->AttachTagsL( |
1107 iTagCreator->AttachTagsL( |
1090 aObjectId, iLastMediaItem.iCountryTagId, iLastMediaItem.iCityTagId ); |
1108 aObjectId, iLastMediaItem.iCountryTagId, iLastMediaItem.iCityTagId ); |
1091 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
1109 TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1]; |
1092 iMediaItems.Remove(iMediaItems.Count() - 1); |
1110 iMediaItems.Remove(iMediaItems.Count() - 1); |
1093 iMediaItems.Compress(); |
1111 iMediaItems.Compress(); |
1094 delete firstPtr; |
1112 if( firstPtr == newItem) |
|
1113 { |
|
1114 newItem = NULL; |
|
1115 } |
|
1116 delete firstPtr; |
|
1117 firstPtr = NULL; |
1095 } |
1118 } |
1096 else |
1119 //check newItem for validity |
|
1120 else if (newItem) |
1097 { |
1121 { |
1098 // country tag not found.. go for reverse geocoding.. |
1122 // country tag not found.. go for reverse geocoding.. |
1099 newItem->iLocationId = lastLocationId; |
1123 newItem->iLocationId = lastLocationId; |
1100 iLocationItems.Append( newItem ); |
1124 iLocationItems.Append( newItem ); |
1101 iMediaItems.Remove(iMediaItems.Count() - 1); |
1125 iMediaItems.Remove(iMediaItems.Count() - 1); |
1234 iLocationQuery = iMdeSession->NewObjectQueryL( *iNamespaceDef, *iLocationObjectDef, this ); |
1263 iLocationQuery = iMdeSession->NewObjectQueryL( *iNamespaceDef, *iLocationObjectDef, this ); |
1235 |
1264 |
1236 CMdELogicCondition& cond = iLocationQuery->Conditions(); |
1265 CMdELogicCondition& cond = iLocationQuery->Conditions(); |
1237 cond.SetOperator( ELogicConditionOperatorAnd ); |
1266 cond.SetOperator( ELogicConditionOperatorAnd ); |
1238 |
1267 |
1239 LOG1( "latitude: %f", latitude); |
1268 LOG1( "CLocationRecord::FindLocationFromDBL(), latitude: %f", latitude); |
1240 LOG1( "latdelta: %f", latDelta); |
1269 LOG1( "CLocationRecord::FindLocationFromDBL(), latdelta: %f", latDelta); |
1241 LOG1( "longitude: %f", longitude); |
1270 LOG1( "CLocationRecord::FindLocationFromDBL(), longitude: %f", longitude); |
1242 LOG1( "londelta: %f", lonDelta); |
1271 LOG1( "CLocationRecord::FindLocationFromDBL(), londelta: %f", lonDelta); |
1243 |
1272 |
1244 cond.AddPropertyConditionL( *iLatitudeDef, |
1273 cond.AddPropertyConditionL( *iLatitudeDef, |
1245 TMdERealBetween( latitude - latDelta, latitude + latDelta )); |
1274 TMdERealBetween( latitude - latDelta, latitude + latDelta )); |
1246 cond.AddPropertyConditionL( *iLongitudeDef, |
1275 cond.AddPropertyConditionL( *iLongitudeDef, |
1247 TMdERealBetween( longitude - lonDelta, longitude + lonDelta )); |
1276 TMdERealBetween( longitude - lonDelta, longitude + lonDelta )); |
1327 locationObject->AddTimePropertyL( modifiedDef, timestamp ); |
1356 locationObject->AddTimePropertyL( modifiedDef, timestamp ); |
1328 locationObject->AddUint32PropertyL( sizeDef, 0 ); // always zero size for location objects |
1357 locationObject->AddUint32PropertyL( sizeDef, 0 ); // always zero size for location objects |
1329 locationObject->AddTextPropertyL( itemTypeDef, Location::KLocationItemType ); |
1358 locationObject->AddTextPropertyL( itemTypeDef, Location::KLocationItemType ); |
1330 locationObject->AddInt16PropertyL( offSetDef, timeOffset.Int() / 60 ); |
1359 locationObject->AddInt16PropertyL( offSetDef, timeOffset.Int() / 60 ); |
1331 |
1360 |
1332 LOG1( "Location created with stamp: %Ld", timestamp.Int64() ); |
1361 LOG1( "CLocationRecord::DoCreateLocationL(), Location created with stamp: %Ld", timestamp.Int64() ); |
1333 |
1362 |
1334 // location related properties |
1363 // location related properties |
1335 if ( !Math::IsNaN( aLocationData.iPosition.Latitude() ) && |
1364 if ( !Math::IsNaN( aLocationData.iPosition.Latitude() ) && |
1336 !Math::IsNaN( aLocationData.iPosition.Longitude() )) |
1365 !Math::IsNaN( aLocationData.iPosition.Longitude() )) |
1337 { |
1366 { |
1338 LOG1("Lan - %f", aLocationData.iPosition.Latitude()); |
1367 LOG1("CLocationRecord::DoCreateLocationL(), Lan - %f", aLocationData.iPosition.Latitude()); |
1339 LOG1("Lon - %f", aLocationData.iPosition.Longitude()); |
1368 LOG1("CLocationRecord::DoCreateLocationL(), Lon - %f", aLocationData.iPosition.Longitude()); |
1340 locationObject->AddReal64PropertyL( *iLatitudeDef, aLocationData.iPosition.Latitude() ); |
1369 locationObject->AddReal64PropertyL( *iLatitudeDef, aLocationData.iPosition.Latitude() ); |
1341 locationObject->AddReal64PropertyL( *iLongitudeDef, aLocationData.iPosition.Longitude() ); |
1370 locationObject->AddReal64PropertyL( *iLongitudeDef, aLocationData.iPosition.Longitude() ); |
1342 |
1371 |
1343 } |
1372 } |
1344 if ( !Math::IsNaN( aLocationData.iPosition.Altitude() ) ) |
1373 if ( !Math::IsNaN( aLocationData.iPosition.Altitude() ) ) |
1359 } |
1388 } |
1360 |
1389 |
1361 // network related properties |
1390 // network related properties |
1362 if ( aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown ) |
1391 if ( aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown ) |
1363 { |
1392 { |
1364 LOG1("Cell id - %d", aLocationData.iNetworkInfo.iCellId); |
1393 LOG1("CLocationRecord::DoCreateLocationL(), Cell id - %d", aLocationData.iNetworkInfo.iCellId); |
1365 locationObject->AddUint32PropertyL( cellIdDef, aLocationData.iNetworkInfo.iCellId ); |
1394 locationObject->AddUint32PropertyL( cellIdDef, aLocationData.iNetworkInfo.iCellId ); |
1366 } |
1395 } |
1367 if ( aLocationData.iNetworkInfo.iAreaKnown && |
1396 if ( aLocationData.iNetworkInfo.iAreaKnown && |
1368 aLocationData.iNetworkInfo.iLocationAreaCode != 0 && |
1397 aLocationData.iNetworkInfo.iLocationAreaCode != 0 && |
1369 aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown ) |
1398 aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown ) |
1370 { |
1399 { |
1371 LOG1("Areacode - %d", aLocationData.iNetworkInfo.iLocationAreaCode); |
1400 LOG1("CLocationRecord::DoCreateLocationL(), Areacode - %d", aLocationData.iNetworkInfo.iLocationAreaCode); |
1372 locationObject->AddUint32PropertyL( locationCodeDef, |
1401 locationObject->AddUint32PropertyL( locationCodeDef, |
1373 aLocationData.iNetworkInfo.iLocationAreaCode ); |
1402 aLocationData.iNetworkInfo.iLocationAreaCode ); |
1374 } |
1403 } |
1375 #ifdef _DEBUG |
1404 #ifdef _DEBUG |
1376 TLex lexer( aLocationData.iNetworkInfo.iCountryCode ); |
1405 |
1377 TUint countryCode = 0; |
1406 if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 ) |
1378 |
1407 { |
1379 User::LeaveIfError( lexer.Val( countryCode, EDecimal) ); |
1408 TLex lexer( aLocationData.iNetworkInfo.iCountryCode ); |
1380 LOG1("Country code - %d", countryCode); |
1409 TUint countryCode = 0; |
|
1410 TRAP_IGNORE(lexer.Val( countryCode, EDecimal)); |
|
1411 LOG1("CLocationRecord::DoCreateLocationL(), Country code - %d", countryCode); |
|
1412 } |
|
1413 else |
|
1414 { |
|
1415 LOG("CLocationRecord::DoCreateLocationL(), No Country code"); |
|
1416 } |
1381 |
1417 |
1382 //Set mobile network code |
1418 //Set mobile network code |
1383 lexer = aLocationData.iNetworkInfo.iNetworkId; |
1419 if ( aLocationData.iNetworkInfo.iNetworkId.Length() > 0 ) |
1384 TUint networkCode = 0; |
1420 { |
1385 User::LeaveIfError( lexer.Val( networkCode, EDecimal) ); |
1421 TLex lexer = aLocationData.iNetworkInfo.iNetworkId; |
1386 LOG1("Network id - %d", networkCode); |
1422 TUint networkCode = 0; |
|
1423 TRAP_IGNORE(lexer.Val( networkCode, EDecimal)); |
|
1424 LOG1("CLocationRecord::DoCreateLocationL(), Network id - %d", networkCode); |
|
1425 } |
|
1426 else |
|
1427 { |
|
1428 LOG("CLocationRecord::DoCreateLocationL(), No network code"); |
|
1429 } |
|
1430 |
1387 #endif |
1431 #endif |
1388 if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 ) |
1432 if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 ) |
1389 { |
1433 { |
1390 locationObject->AddTextPropertyL( countryCodeDef, |
1434 locationObject->AddTextPropertyL( countryCodeDef, |
1391 aLocationData.iNetworkInfo.iCountryCode ); |
1435 aLocationData.iNetworkInfo.iCountryCode ); |
1396 locationObject->AddTextPropertyL(networkCodeDef, aLocationData.iNetworkInfo.iNetworkId); |
1440 locationObject->AddTextPropertyL(networkCodeDef, aLocationData.iNetworkInfo.iNetworkId); |
1397 } |
1441 } |
1398 |
1442 |
1399 // Add the location object to the database. |
1443 // Add the location object to the database. |
1400 locationObjectId = iMdeSession->AddObjectL( *locationObject ); |
1444 locationObjectId = iMdeSession->AddObjectL( *locationObject ); |
1401 LOG1("Location id - %d", locationObjectId); |
1445 LOG1("CLocationRecord::DoCreateLocationL(), Location id - %d", locationObjectId); |
1402 CleanupStack::PopAndDestroy( locationObject ); |
1446 CleanupStack::PopAndDestroy( locationObject ); |
1403 LOG( "CLocationRecord::DoCreateLocationL(), end" ); |
1447 LOG( "CLocationRecord::DoCreateLocationL(), end" ); |
1404 |
1448 |
1405 return locationObjectId; |
1449 return locationObjectId; |
1406 } |
1450 } |
2195 |
2239 |
2196 CMdEObject* object = NULL; |
2240 CMdEObject* object = NULL; |
2197 CMdEProperty* property = NULL; |
2241 CMdEProperty* property = NULL; |
2198 |
2242 |
2199 object = iMdeSession->GetObjectL( aObjectId ); |
2243 object = iMdeSession->GetObjectL( aObjectId ); |
|
2244 if( !object ) |
|
2245 { |
|
2246 User::Leave( KErrNotFound ); |
|
2247 } |
|
2248 |
2200 CleanupStack::PushL( object ); |
2249 CleanupStack::PushL( object ); |
2201 object->Property( timeDef, property, 0 ); |
2250 object->Property( timeDef, property, 0 ); |
2202 if ( !property ) |
2251 if ( !property ) |
2203 { |
2252 { |
2204 User::Leave( KErrNotFound ); |
2253 User::Leave( KErrNotFound ); |
2205 } |
2254 } |
2206 |
2255 |
2207 const TTime timeValue( property->TimeValueL() ); |
2256 const TTime timeValue( property->TimeValueL() ); |
2208 CleanupStack::PopAndDestroy( object ); |
2257 CleanupStack::PopAndDestroy( object ); |
|
2258 |
|
2259 LOG( "CLocationRecord::GetMdeObjectTimeL(), end" ); |
2209 return timeValue; |
2260 return timeValue; |
|
2261 |
2210 } |
2262 } |
2211 |
2263 |
2212 |
2264 |
2213 |
2265 |
2214 // -------------------------------------------------------------------------- |
2266 // -------------------------------------------------------------------------- |