diff -r 175a0d824084 -r 676b6116ca93 tzservices/tzloc/src/TzLocalizer.cpp --- a/tzservices/tzloc/src/TzLocalizer.cpp Tue Oct 12 17:17:12 2010 +0300 +++ b/tzservices/tzloc/src/TzLocalizer.cpp Wed Oct 20 17:03:03 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -24,6 +24,11 @@ #include "tzlocalizationuserdatareader.h" #include #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TzLocalizerTraces.h" +#endif + /** Allocates and constructs a new CTzLocalizer object. @return The newly created CTzLocalizer object. @@ -63,6 +68,8 @@ void CTzLocalizer::ConstructL() { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_CONSTRUCTL_ENTRY, "CTzLocalizer::ConstructL Entry" ); + User::LeaveIfError(iTzSession.Connect()); iStaticDataReader = CTzLocalizationResourceReader::NewL(); @@ -83,6 +90,8 @@ UpdateFrequentlyUsedZonesL(); } SetDataSource(ETzDataSourceSystem); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_CONSTRUCTL_EXIT, "CTzLocalizer::ConstructL Exit" ); + } // Check if the DB needs upgrading @@ -178,6 +187,8 @@ */ TBool CTzLocalizer::PrepareFrequentlyUsedZonesL() { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_PREPAREFREQUENTLYUSEDZONESL_ENTRY, "CTzLocalizer::PrepareFrequentlyUsedZonesL Entry" ); + CTzLocalizedTimeZoneArray* frequentlyUsedZones = CTzLocalizedTimeZoneArray::NewLC(); CTzLocalizedCityArray* cachedCities = CTzLocalizedCityArray::NewLC(); TBool frequentlyUsedZonesNeedUpdating = EFalse; @@ -237,6 +248,8 @@ CleanupStack::PopAndDestroy(cachedCities); CleanupStack::PopAndDestroy(frequentlyUsedZones); + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_PREPAREFREQUENTLYUSEDZONESL_EXIT, "CTzLocalizer::PrepareFrequentlyUsedZonesL Exit;frequentlyUsedZonesNeedUpdating=%u", frequentlyUsedZonesNeedUpdating ); + return frequentlyUsedZonesNeedUpdating; } @@ -247,6 +260,8 @@ */ void CTzLocalizer::UpdateFrequentlyUsedZonesL() { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_UPDATEFREQUENTLYUSEDZONESL_ENTRY, "CTzLocalizer::UpdateFrequentlyUsedZonesL Entry" ); + CTzLocalizedTimeZoneArray* frequentlyUsedZones = CTzLocalizedTimeZoneArray::NewLC(); CTzLocalizedCityArray* cachedCities = CTzLocalizedCityArray::NewLC(); @@ -320,6 +335,8 @@ WriteAllFrequentlyUsedZonesL(*frequentlyUsedZones,*cachedCities); CleanupStack::PopAndDestroy(cachedCities); CleanupStack::PopAndDestroy(frequentlyUsedZones); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_UPDATEFREQUENTLYUSEDZONESL_EXIT, "CTzLocalizer::UpdateFrequentlyUsedZonesL Exit" ); + } /** @@ -335,6 +352,8 @@ */ CTzLocalizedTimeZone* CTzLocalizer::GetFrequentlyUsedDefaultZoneL(CTzLocalizedTimeZone::TTzFrequentlyUsedZone aFreqUsedZone) { + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETFREQUENTLYUSEDDEFAULTZONEL_ENTRY, "CTzLocalizer::GetFrequentlyUsedDefaultZoneL Entry;aFreqUsedZone=%u", aFreqUsedZone ); + // Assume that we will not find the key in the repository or that we do find // the key but it has no value. If either of these scenarios is true then // we will use the time zone identifier recorded in the resource file for @@ -369,6 +388,7 @@ { defaultTimeZone = iStaticDataReader->ReadFrequentlyUsedZoneL(aFreqUsedZone); } +OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETFREQUENTLYUSEDDEFAULTZONEL_EXIT, "CTzLocalizer::GetFrequentlyUsedDefaultZoneL Exit" ); return defaultTimeZone; } @@ -465,6 +485,8 @@ */ EXPORT_C CTzLocalizedTimeZoneArray* CTzLocalizer::GetAllTimeZonesL(const TTzSortOrder aSortOrder) { + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETALLTIMEZONESL_ENTRY, "CTzLocalizer::GetAllTimeZonesL Entry;aSortOrder=%u", aSortOrder ); + CTzLocalizedTimeZoneArray* allTimeZones = CTzLocalizedTimeZoneArray::NewLC(); if(iDataSource&ETzDataSourceSystem) { @@ -488,6 +510,8 @@ } CleanupStack::Pop(allTimeZones); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETALLTIMEZONESL_EXIT, "CTzLocalizer::GetAllTimeZonesL Exit" ); + return allTimeZones; } @@ -545,6 +569,8 @@ */ EXPORT_C CTzLocalizedCityArray* CTzLocalizer::GetCitiesL(const TTzSortOrder aSortOrder) { + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESL_ENTRY, "CTzLocalizer::GetCitiesL Entry;aSortOrder=%u", aSortOrder ); + //Create an empty city array and retrieve all cities CTzLocalizedCityArray* cities = CTzLocalizedCityArray::NewLC(); if(iDataSource&ETzDataSourceSystem) @@ -574,6 +600,8 @@ } CleanupStack::Pop(cities); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESL_EXIT, "CTzLocalizer::GetCitiesL Exit" ); + return cities; } @@ -591,6 +619,8 @@ */ EXPORT_C CTzLocalizedCityArray* CTzLocalizer::GetCitiesL(TInt aTimeZoneId, const TTzSortOrder aSortOrder) { + OstTraceDefExt2( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESL_ENTRY_OVERLOADED, "CTzLocalizer::GetCitiesL Entry;aTimeZoneId=%d;aSortOrder=%u", aTimeZoneId, aSortOrder ); + CTzLocalizedCityArray* cities = CTzLocalizedCityArray::NewLC(); ReadCitiesL(*cities, aTimeZoneId, ETrue); @@ -613,6 +643,8 @@ } CleanupStack::Pop(cities); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESL_EXIT2, "CTzLocalizer::GetCitiesL Exit" ); + return cities; } @@ -662,6 +694,8 @@ void CTzLocalizer::GetCitiesL(CTzLocalizedCityArray& aCities, const TTzLocalizedId& aLocalizedId, TBool aUseDataSource, const TTzSortOrder aSortOrder) { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESL_ENTRY_OVERLOADED2, "CTzLocalizer::GetCitiesL Entry;aUseDataSource=%u;aSortOrder=%u", aUseDataSource, aSortOrder ); + ReadCitiesL(aCities, aLocalizedId.TimeZoneId(), aUseDataSource); RPointerArray cityRecords; @@ -681,6 +715,8 @@ { User::Leave(KErrArgument); } + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESL_EXIT3, "CTzLocalizer::GetCitiesL Exit" ); + } /** @@ -697,6 +733,8 @@ */ EXPORT_C CTzLocalizedCity* CTzLocalizer::AddCityL(TInt aTimeZoneId,const TDesC& aCityName, TInt aGroupId) { + OstTraceDefExt3( OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_ADDCITYL_ENTRY, "CTzLocalizer::AddCityL Entry;aTimeZoneId=%d;aCityName=%S;aGroupId=%d", aTimeZoneId, aCityName, aGroupId ); + //Check that aGroupId is a valid TUint8 and leave if not. //Group number > 255 is not supported __ASSERT_ALWAYS(aGroupId >= 0 && aGroupId <256 , User::Leave(KErrArgument)); @@ -736,6 +774,8 @@ iTzSession.LocalizationWriteCityL(newCity->Name(), (TInt)newCity->TimeZoneId(), newCity->GroupId(), newCity->TzLocalizedId().ResourceId()); CleanupStack::Pop(newCity); + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZER_ADDCITYL_EXIT, "CTzLocalizer::AddCityL Exit" ); + return newCity; } @@ -754,6 +794,8 @@ } else { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, CTZLOCALIZER_REMOVECITYL, "CTzLocalizer::RemoveCityL:Error:Invalid city" ); + User::Leave(KErrArgument); } } @@ -830,6 +872,8 @@ */ EXPORT_C CTzLocalizedCityArray* CTzLocalizer::GetCitiesInGroupL(TInt aGroupId,const TTzSortOrder aSortOrder) { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESINGROUPL_ENTRY, "CTzLocalizer::GetCitiesInGroupL Entry;aGroupId=%d;aSortOrder=%u", aGroupId, aSortOrder ); + //Check that aGroupId is a valid TUint8 and leave if not. //Group number > 255 is not supported __ASSERT_ALWAYS(aGroupId >= 0 && aGroupId <256 , User::Leave(KErrArgument)); @@ -862,6 +906,8 @@ cities->Sort(sortOrder); } CleanupStack::Pop(cities); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESINGROUPL_EXIT, "CTzLocalizer::GetCitiesInGroupL Exit" ); + return cities; } @@ -907,6 +953,8 @@ */ EXPORT_C CTzLocalizedTimeZone* CTzLocalizer::GetFrequentlyUsedZoneL(const CTzLocalizedTimeZone::TTzFrequentlyUsedZone aFrequentlyUsedZone) { + OstTraceDef1( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZER_GETFREQUENTLYUSEDZONEL_ENTRY, "CTzLocalizer::GetFrequentlyUsedZoneL Entry;aFrequentlyUsedZone=%u", aFrequentlyUsedZone ); + CTzLocalizedTimeZone* timeZone; if (aFrequentlyUsedZone == CTzLocalizedTimeZone::ECurrentZone) @@ -951,6 +999,7 @@ timeZone = CreateTimeZoneL(*timeZoneRecord); CleanupStack::PopAndDestroy(timeZoneRecord); } +OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETFREQUENTLYUSEDZONEL_EXIT, "CTzLocalizer::GetFrequentlyUsedZoneL Exit" ); return timeZone; } @@ -962,6 +1011,8 @@ */ TInt CTzLocalizer::GetTimeZoneIdFromTzServerL() { + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZER_GETTIMEZONEIDFROMTZSERVERL_ENTRY, "CTzLocalizer::GetTimeZoneIdFromTzServerL Entry" ); + // Get current time zone using the current CTzId from the time zone server CTzId* currentCTzId = iTzSession.GetTimeZoneIdL(); CleanupStack::PushL(currentCTzId); @@ -982,6 +1033,7 @@ timeZoneIdInt = homeZone->TimeZoneId(); CleanupStack::PopAndDestroy(homeZone); } +OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETTIMEZONEIDFROMTZSERVERL_EXIT, "CTzLocalizer::GetTimeZoneIdFromTzServerL Exit;timeZoneIdInt=%u", timeZoneIdInt ); return timeZoneIdInt; } @@ -996,6 +1048,8 @@ */ EXPORT_C CTzLocalizedCity* CTzLocalizer::GetFrequentlyUsedZoneCityL(const CTzLocalizedTimeZone::TTzFrequentlyUsedZone aFrequentlyUsedZone) { + OstTraceDef1( OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETFREQUENTLYUSEDZONECITYL_ENTRY, "CTzLocalizer::GetFrequentlyUsedZoneCityL Entry;aFrequentlyUsedZone=%u", aFrequentlyUsedZone ); + CTzLocalizedCityRecord* cityRecord = iTzSession.LocalizationReadCachedTimeZoneCityL(aFrequentlyUsedZone); CleanupStack::PushL(cityRecord); CTzLocalizedCity* city = CreateCityL(*cityRecord); @@ -1046,6 +1100,8 @@ } } + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETFREQUENTLYUSEDZONECITYL_EXIT, "CTzLocalizer::GetFrequentlyUsedZoneCityL Exit" ); + return city; } @@ -1175,6 +1231,7 @@ template void CTzLocalizer::PrepareForUTCSortL(T& aArray) { + //Prepare an array of timezone IDs to give to the time zone server RArray timeZoneIds; CleanupClosePushL(timeZoneIds); @@ -1225,6 +1282,8 @@ */ EXPORT_C CTzLocalizedCity* CTzLocalizer::FindCityByNameL(const TDesC& aCityName, const TInt aTimeZoneId) { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDCITYBYNAMEL_ENTRY, "CTzLocalizer::FindCityByNameL Entry;aCityName=%S;aTimeZoneId=%d", aCityName, aTimeZoneId ); + CTzLocalizedCity* foundCity; //Create a dummy city for the search CTzLocalizedCity* aCity = CTzLocalizedCity::NewLC(aCityName,TTzLocalizedId((TUint16)aTimeZoneId,0),0); @@ -1262,6 +1321,7 @@ delete citiesToSearch; citiesToSearch = NULL; +OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDCITYBYNAMEL_EXIT, "CTzLocalizer::FindCityByNameL Exit" ); return foundCity; } @@ -1275,6 +1335,8 @@ */ EXPORT_C CTzLocalizedTimeZone* CTzLocalizer::FindTimeZoneByNameL(const TDesC& aTimeZoneName) { + OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDTIMEZONEBYNAMEL_ENTRY, "CTzLocalizer::FindTimeZoneByNameL Entry;aTimeZoneName=%S", aTimeZoneName ); + CTzLocalizedTimeZone* foundTimeZone; //Create a dummy time zone for the search TTzLocalizedId id(0, 0); @@ -1300,6 +1362,7 @@ delete allTimeZones; allTimeZones = NULL; +OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDTIMEZONEBYNAMEL_EXIT, "CTzLocalizer::FindTimeZoneByNameL Exit" ); return foundTimeZone; } @@ -1313,6 +1376,8 @@ */ EXPORT_C CTzLocalizedCityGroup* CTzLocalizer::FindCityGroupByNameL(const TDesC& aCityGroupName) { + OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDCITYGROUPBYNAMEL_ENTRY, "CTzLocalizer::FindCityGroupByNameL Entry;aCityGroupName=%S", aCityGroupName ); + CTzLocalizedCityGroup* foundCityGroup; //Create a dummy city group for the search CTzLocalizedCityGroup* aCityGroup = CTzLocalizedCityGroup::NewLC(aCityGroupName,0); @@ -1337,6 +1402,7 @@ delete allCityGroups; allCityGroups = NULL; +OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDCITYGROUPBYNAMEL_EXIT, "CTzLocalizer::FindCityGroupByNameL Exit" ); return foundCityGroup; } @@ -1379,6 +1445,8 @@ */ EXPORT_C CTzLocalizedCityArray* CTzLocalizer::GetCitiesWithUTCOffsetL(TInt aUTCOffsetInMinutes, const TTzSortOrder aSortOrder) { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESWITHUTCOFFSETL_ENTRY, "CTzLocalizer::GetCitiesWithUTCOffsetL Entry;aUTCOffsetInMinutes=%d;aSortOrder=%u", aUTCOffsetInMinutes, aSortOrder ); + //Fetch all the cities sorted by UTC offset CTzLocalizedCityArray* allCities = GetCitiesL(ETzUTCAscending); TInt count = allCities->Count(); @@ -1400,6 +1468,7 @@ TLinearOrder sortOrder(CitySortOrderL(aSortOrder)); allCities->Sort(sortOrder); } +OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETCITIESWITHUTCOFFSETL_EXIT, "CTzLocalizer::GetCitiesWithUTCOffsetL Exit" ); return allCities; } @@ -1415,6 +1484,8 @@ */ EXPORT_C CTzLocalizedTimeZoneArray* CTzLocalizer::GetTimeZonesWithUTCOffsetL(TInt aUTCOffsetInMinutes, const TTzSortOrder aSortOrder) { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETTIMEZONESWITHUTCOFFSETL_ENTRY, "CTzLocalizer::GetTimeZonesWithUTCOffsetL Entry;aUTCOffsetInMinutes=%d;aSortOrder=%u", aUTCOffsetInMinutes, aSortOrder ); + //Fetch all the time zones sorted by UTC offset CTzLocalizedTimeZoneArray* allTimeZones = GetAllTimeZonesL(ETzUTCAscending); TInt count = allTimeZones->Count(); @@ -1436,6 +1507,8 @@ TLinearOrder sortOrder(TimeZoneSortOrderL(aSortOrder)); allTimeZones->Sort(sortOrder); } + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_GETTIMEZONESWITHUTCOFFSETL_EXIT, "CTzLocalizer::GetTimeZonesWithUTCOffsetL Exit" ); + return allTimeZones; } /** @@ -1579,6 +1652,8 @@ */ TBool CTzLocalizer::FindCityAndSetCityIndexL(CTzLocalizedCity& aLocalizedCity, TTzLocalizerDataSource aDataSource) { + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDCITYANDSETCITYINDEXL_ENTRY, "CTzLocalizer::FindCityAndSetCityIndexL Entry;aDataSource=%u", aDataSource ); + TBool hasFound = EFalse; CTzLocalizedCityArray* citiesInDb = CTzLocalizedCityArray::NewLC(); if(aDataSource == ETzDataSourceSystem) @@ -1601,6 +1676,8 @@ } } CleanupStack::PopAndDestroy(citiesInDb); + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_FINDCITYANDSETCITYINDEXL_EXIT, "CTzLocalizer::FindCityAndSetCityIndexL Exit;hasFound=%u", hasFound ); + return hasFound; } @@ -1650,6 +1727,8 @@ */ void CTzLocalizer::WriteAllFrequentlyUsedZonesL(const CTzLocalizedTimeZoneArray& aTimeZones, const CTzLocalizedCityArray& aCities) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_WRITEALLFREQUENTLYUSEDZONESL_ENTRY, "CTzLocalizer::WriteAllFrequentlyUsedZonesL Entry" ); + // Ensure that the numbers of items in the arrays are the expected amount __ASSERT_ALWAYS(aTimeZones.Count() == CTzLocalizedTimeZone::ECachedTimeZones && aCities.Count() == CTzLocalizedTimeZone::ECachedTimeZones, User::Leave(KErrArgument)); @@ -1682,6 +1761,8 @@ CleanupStack::PopAndDestroy(); // cities CleanupStack::PopAndDestroy(); // timeZones + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZER_WRITEALLFREQUENTLYUSEDZONESL_EXIT, "CTzLocalizer::WriteAllFrequentlyUsedZonesL Exit" ); + } void CTzLocalizer::SetFrequentlyUsedZoneL(const CTzLocalizedTimeZone& aTimeZone, const CTzLocalizedCity& aCity,