diff -r 175a0d824084 -r 676b6116ca93 tzservices/tzserver/Server/Source/tzlocalizationdb.cpp --- a/tzservices/tzserver/Server/Source/tzlocalizationdb.cpp Tue Oct 12 17:17:12 2010 +0300 +++ b/tzservices/tzserver/Server/Source/tzlocalizationdb.cpp Wed Oct 20 17:03:03 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-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" @@ -23,6 +23,11 @@ #endif #include #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "tzlocalizationdbTraces.h" +#endif + // Database location and access policy _LIT(KTzLocalizationDbName,"c:TzLocalization.db"); @@ -115,6 +120,8 @@ void CTzLocalizationDb::OpenDbL() { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_OPENDBL_ENTRY, "CTzLocalizationDb::OpenDbL Entry" ); + if (iZoneMutex.OpenGlobal(KTzMutexName) != KErrNone) { User::LeaveIfError(iZoneMutex.CreateGlobal(KTzMutexName)) ; @@ -142,6 +149,8 @@ { User::Leave(error); } + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_OPENDBL_EXIT, "CTzLocalizationDb::OpenDbL Exit" ); + } void CTzLocalizationDb::CloseDb() @@ -168,6 +177,8 @@ */ void CTzLocalizationDb::CreateBlankFrequentlyUsedZoneTableL() { + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_CREATEBLANKFREQUENTLYUSEDZONETABLEL_ENTRY, "CTzLocalizationDb::CreateBlankFrequentlyUsedZoneTableL Entry" ); + // Create the columns for the cached zones table RArray cachedTableCols; CleanupClosePushL(cachedTableCols); @@ -226,6 +237,8 @@ CleanupStack::PopAndDestroy(&zoneView); CleanupStack::PopAndDestroy(frequentlyUsedZoneColSet); CleanupStack::PopAndDestroy(&cachedTableCols); //cachedTableCols + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_CREATEBLANKFREQUENTLYUSEDZONETABLEL_EXIT, "CTzLocalizationDb::CreateBlankFrequentlyUsedZoneTableL Exit" ); + } /** @@ -262,6 +275,9 @@ //Check if the database is corrupt or invalid. TBool CTzLocalizationDb::IsInvalidL() { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_ISINVALIDL_ENTRY, "CTzLocalizationDb::IsInvalidL Entry" ); + + RDbView zoneView; CleanupClosePushL(zoneView); PrepareZoneViewL(zoneView); @@ -282,6 +298,8 @@ } } CleanupStack::PopAndDestroy(&zoneView); + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_ISINVALIDL_EXIT, "CTzLocalizationDb::IsInvalidL Exit;isInvalid=%u", isInvalid ); + return isInvalid; } @@ -316,14 +334,20 @@ void CTzLocalizationDb::NotifyUserTzNamesChange(TTzUserDataChange aChange) { + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYUSERTZNAMESCHANGE_ENTRY, "CTzLocalizationDb::NotifyUserTzNamesChange Entry" ); + if (iLocked) { + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYUSERTZNAMESCHANGE_EXIT, "CTzLocalizationDb::NotifyUserTzNamesChange Exit" ); + return; } if (aChange.iOperation == ETzUserDataCreated) { // Creation of new zones has no impact on existing zones + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYUSERTZNAMESCHANGE_EXIT3, "CTzLocalizationDb::NotifyUserTzNamesChange Exit" ); + return; } @@ -336,12 +360,18 @@ // is to reboot the server. iLocked = ETrue; } + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYUSERTZNAMESCHANGE_EXIT2, "CTzLocalizationDb::NotifyUserTzNamesChange Exit" ); + } void CTzLocalizationDb::NotifyTZDataStatusChangeL(RTz::TTzChanges aChange) { + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYTZDATASTATUSCHANGEL_ENTRY, "CTzLocalizationDb::NotifyTZDataStatusChangeL;aChange=%u", aChange ); + if (iLocked) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYTZDATASTATUSCHANGEL_EXIT, "CTzLocalizationDb::NotifyTZDataStatusChangeL Exit" ); + return; } @@ -426,6 +456,8 @@ CleanupStack::PopAndDestroy(&frequentlyUsedZones); CleanupStack::PopAndDestroy(systemDataDb); } + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYTZDATASTATUSCHANGEL_EXIT2, "CTzLocalizationDb::NotifyTZDataStatusChangeL Exit" ); + } void CTzLocalizationDb::UpdateTimeZoneAndCityRecordForSystemDataL(RPointerArray& aFrequentlyUsedZones, @@ -468,6 +500,8 @@ { if (iLocked) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, CTZLOCALIZATIONDB_READCITIESL, "CTzLocalizationDb::ReadCitiesL:Database locked" ); + User::Leave(KErrLocked); } _LIT(KSQLQueryLit,"SELECT * FROM UserCities"); @@ -478,6 +512,8 @@ { if (iLocked) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, DUP1_CTZLOCALIZATIONDB_READCITIESL, "CTzLocalizationDb::ReadCitiesL:Database locked" ); + User::Leave(KErrLocked); } // Assign basic SQL query literal @@ -497,6 +533,8 @@ { if (iLocked) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, CTZLOCALIZATIONDB_READCITIESINGROUPL, "CTzLocalizationDb::ReadCitiesInGroupL:Database locked" ); + User::Leave(KErrLocked); } // Assign basic SQL query literal @@ -522,6 +560,8 @@ { if (iLocked) { + OstTraceDef1( OST_TRACE_CATEGORY_DEBUG,TRACE_ERROR, CTZLOCALIZATIONDB_READFREQUENTLYUSEDZONEL, "CTzLocalizationDb::ReadFrequentlyUsedZoneL: Database locked;aFrequentlyUsedZone=%d", aFrequentlyUsedZone ); + User::Leave(KErrLocked); } return DoReadFrequentlyUsedZoneL(aFrequentlyUsedZone); @@ -570,6 +610,8 @@ { if (iLocked) { + OstTraceDef1( OST_TRACE_CATEGORY_DEBUG,TRACE_ERROR, CTZLOCALIZATIONDB_READCACHEDTIMEZONECITYL, "CTzLocalizationDb::ReadCachedTimeZoneCityL:Database locked;aFrequentlyUsedZone=%d", aFrequentlyUsedZone ); + User::Leave(KErrLocked); } @@ -612,8 +654,12 @@ void CTzLocalizationDb::WriteCityL(const TDesC& aCityName, TUint16 aCityTzId, TUint8 aCityGroupId, TUint aCityTzResourceId) { + OstTraceDefExt4(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, DUP2_CTZLOCALIZATIONDB_WRITECITYL_ENTRY, "CTzLocalizationDb::WriteCityL Entry;aCityName=%S;aCityTzId=%hd;aCityGroupId=%hhu;aCityTzResourceId=%u", aCityName, aCityTzId, aCityGroupId, aCityTzResourceId ); + if (iLocked) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, CTZLOCALIZATIONDB_WRITECITYL, "CTzLocalizationDb::WriteCityL:Database locked" ); + User::Leave(KErrLocked); } @@ -652,18 +698,24 @@ else { //City already exists. + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, DUP1_CTZLOCALIZATIONDB_WRITECITYL, "CTzLocalizationDb::WriteCityL:City already exists" ); + User::Leave(KErrAlreadyExists); } CleanupStack::PopAndDestroy(&cityView); iZoneMutex.Wait(); iLocalizedTimeZoneDb.Compact(); iZoneMutex.Signal(); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, DUP2_CTZLOCALIZATIONDB_WRITECITYL_EXIT, "CTzLocalizationDb::WriteCityL Exit" ); + } void CTzLocalizationDb::DeleteCityL(const TDesC& aCityName, TUint16 aCityTzId) { if (iLocked) { + OstTraceDef0( OST_TRACE_CATEGORY_DEBUG,TRACE_ERROR, CTZLOCALIZATIONDB_DELETECITYL, "CTzLocalizationDb::DeleteCityL:Database locked" ); + User::Leave(KErrLocked); } @@ -710,8 +762,11 @@ void CTzLocalizationDb::WriteFrequentlyUsedZoneL(const CTzLocalizedTimeZoneRecord& aTimeZone, const CTzLocalizedCityRecord& aCity, TInt aFrequentlyUsedZone) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_WRITEFREQUENTLYUSEDZONEL_ENTRY, "CTzLocalizationDb::WriteFrequentlyUsedZoneL Entry" ); + + if (iLocked) - { + { User::Leave(KErrLocked); } @@ -797,6 +852,8 @@ CleanupStack::PopAndDestroy(&zoneView); iLocalizedTimeZoneDb.Compact(); iZoneMutex.Signal(); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_WRITEFREQUENTLYUSEDZONEL_EXIT, "CTzLocalizationDb::WriteFrequentlyUsedZoneL Exit" ); + } /** @@ -811,6 +868,8 @@ { if (iLocked) { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_ERROR, CTZLOCALIZATIONDB_WRITEALLFREQUENTLYUSEDZONESL, "CTzLocalizationDb::WriteAllFrequentlyUsedZonesL:Database locked" ); + User::Leave(KErrLocked); } DoWriteAllFrequentlyUsedZonesL(aTimeZones, aCities); @@ -1008,6 +1067,8 @@ void CTzLocalizationDb::NotifyUserTzNamesChangeL(TTzUserDataChange aChange) { + OstTraceDefExt2( OST_TRACE_CATEGORY_DEBUG,TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYUSERTZNAMESCHANGEL_ENTRY, "CTzLocalizationDb::NotifyUserTzNamesChangeL Entry;Operation=%u;Time zone Id=%d",aChange.iOperation, aChange.iTzId ); + // If an existing user-defined time zone is updated it means we may have // to refresh the data in the frequently used zones table but the city table // only contains the time zone id so there is nothing to update in there. @@ -1096,6 +1157,8 @@ CleanupStack::PopAndDestroy(&cachedCities); CleanupStack::PopAndDestroy(&frequentlyUsedZones); CleanupStack::PopAndDestroy(systemDataDb); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_NOTIFYUSERTZNAMESCHANGEL_EXIT, "CTzLocalizationDb::NotifyUserTzNamesChangeL Exit" ); + } void CTzLocalizationDb::UpdateTimeZoneAndCityRecordL(RPointerArray& aFrequentlyUsedZones, RPointerArray& aCachedCities, TInt aTzId) @@ -1188,6 +1251,8 @@ void CTzLocalizationDb::RestoreDbL() { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_RESTOREDBL_ENTRY, "CTzLocalizationDb::RestoreDbL Entry" ); + // When the Tz server is connected or a restore completes, we have to // refresh the data in the frequently used zones table and the city table // because it may contain the time zone id that has been deleted. Or if the @@ -1250,6 +1315,8 @@ CleanupStack::PopAndDestroy(&cachedCities); CleanupStack::PopAndDestroy(&frequentlyUsedZones); CleanupStack::PopAndDestroy(systemDataDb); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_FLOW_PARAM, CTZLOCALIZATIONDB_RESTOREDBL_EXIT, "CTzLocalizationDb::RestoreDbL Exit" ); + } /**