diff -r f5050f1da672 -r 04becd199f91 javaextensions/pim/javapimloc/src.s60/cpimlocalizationmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/pim/javapimloc/src.s60/cpimlocalizationmanager.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,161 @@ +/* +* Copyright (c) 2004-2007 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" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Provides localized strings +* +*/ + + +// CLASS HEADER +#include "cpimlocalizationmanager.h" + +// INTERNAL INCLUDES +#include "cpimlocalizationdata.h" +#include "pimlocalizationids.h" +#include "pimlocalizationutils.h" +#include "pimpanics.h" + +// EXTERNAL INCLUDES +#include +#include +#include +#include +#include +#include +#include + +#include + +// UNNAMED LOCAL NAMESPACE +namespace +{ +// CONSTANTS +_LIT(KPIMCMFileName, "pimcm.rsc"); +_LIT(KPIMEventFileName, "pimevent.rsc"); +_LIT(KPIMToDoFileName, "pimtodo.rsc"); +} + +// ============================ MEMBER FUNCTIONS =============================== +// ----------------------------------------------------------------------------- +// CPIMLocalizationManager::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CPIMLocalizationManager* CPIMLocalizationManager::NewL() +{ + CPIMLocalizationManager* self = new(ELeave) CPIMLocalizationManager; + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; +} + +// destructor +CPIMLocalizationManager::~CPIMLocalizationManager() +{ + iRFs.Close(); +} + +// ----------------------------------------------------------------------------- +// CPIMLocalizationManager::GetPIMLocalizationDataL +// Creates an instance of MPIMLocalizationData. +// Caller takes ownership of the returned object. +// Return: An instance of MPIMLocalizationData. +// ----------------------------------------------------------------------------- +// +MPIMLocalizationData* CPIMLocalizationManager::GetPIMLocalizationDataL( + TPIMLocalizationDataID aType) // Type of the list +{ + return GetPIMLocalizationDataL(aType, 0); +} + +// ----------------------------------------------------------------------------- +// CPIMLocalizationManager::GetPIMLocalizationDataL +// Creates an instance of MPIMLocalizationData. +// Caller takes ownership of the returned object. +// Return: An instance of MPIMLocalizationData. +// ----------------------------------------------------------------------------- +// +MPIMLocalizationData* CPIMLocalizationManager::GetPIMLocalizationDataL( + TPIMLocalizationDataID aType, // Type of the list + TPIMLocalizationDataID aSubType) // Subtype of the (contact)list +{ + TFileName resourceFileName; + TInt resourceId(0); + switch (aType) + { + case KPIMLocalizationIdContacts: + { + resourceFileName.Append(KPIMCMFileName()); + resourceId = R_PIM_CNT_LISTS; + break; + } + case KPIMLocalizationIdEvent: + { + resourceFileName.Append(KPIMEventFileName()); + resourceId = R_PIM_EVENT_LISTS; + break; + } + case KPIMLocalizationIdToDo: + { + resourceFileName.Append(KPIMToDoFileName()); + resourceId = R_PIM_TODO_LISTS; + break; + } + default: + { + // No other lists available + User::Leave(KErrArgument); + } + } + + RResourceFile resourceFile; + PIMLocalizationUtils::OpenResourceFileLC(iRFs, resourceFile, resourceFileName); + // Create resource reader for the resource file + HBufC8* buffer = resourceFile.AllocReadLC(resourceId); + + TResourceReader reader; + reader.SetBuffer(buffer); + + CPIMLocalizationData* localization = + CPIMLocalizationData::NewL(resourceFile, + reader, + aSubType); + + // buffer, resourceFile.Close() + CleanupStack::PopAndDestroy(2, &resourceFile); + return localization; +} + + +// ----------------------------------------------------------------------------- +// CPIMLocalizationManager::CPIMLocalizationManager +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CPIMLocalizationManager::CPIMLocalizationManager() +{ +} + +// ----------------------------------------------------------------------------- +// CPIMLocalizationManager::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CPIMLocalizationManager::ConstructL() +{ + User::LeaveIfError(iRFs.Connect()); +} + +// End of file