sysstatemgmt/syslangutil/src/syslangutil.cpp
branchRCL_3
changeset 61 8cb079868133
parent 60 ccb4f6b3db21
--- a/sysstatemgmt/syslangutil/src/syslangutil.cpp	Tue Aug 31 16:29:05 2010 +0300
+++ b/sysstatemgmt/syslangutil/src/syslangutil.cpp	Wed Sep 01 12:34:26 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009 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,25 +23,16 @@
 #include "syslangutiltrace.h"
 #include "ssmmapperutilitystatic.h"
 #include "syslangutilprivatecrkeys.h"
-#include "ssmcommonlocale.h"
-#include <CommonEngineDomainCRKeys.h>
 
 const TInt KReadBufSize = 10;
-const TInt KLangArraySize = 10;
-//Maximum number of retries for starting cenrep transaction.
-const TInt KMaxCountForReiteration = 5;
+const TInt KLangArraySize = 20;
 
 // R&D support: Use language file in Starters internal directory for module
 // testing purposes.
 #ifdef __STARTER_MODULE_TEST_SUPPORT__
   _LIT( KLanguagesIni, "C:\\private\\100059C9\\languages.txt" );
-  _LIT( KRegionsIni, "C:\\private\\100059C9\\regions.txt" );
-  _LIT( KCollationsIni, "C:\\private\\100059C9\\collations.txt" );
-  
 #else // __STARTER_MODULE_TEST_SUPPORT__
   _LIT( KLanguagesIni, "z:\\resource\\bootdata\\languages.txt" );
-  _LIT( KRegionsIni, "z:\\resource\\bootdata\\regions.txt" );
-  _LIT( KCollationsIni, "z:\\resource\\bootdata\\collations.txt" );
 #endif // __STARTER_MODULE_TEST_SUPPORT__
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -360,172 +351,3 @@
     FUNC_EXIT_TRACE;
     return aRFs;
     }
-
-// -----------------------------------------------------------------------------
-// SysLangUtil::ChangeLanguage
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt SysLangUtil::ChangeLanguage(const TInt  aLanguageCode)
-	{
-    API_FUNC_ENTRY_TRACE;    
-    TRAPD( errorCode, LoadDllL( KGSDisplayTxtLang,aLanguageCode, KLanguageDllNameBase ) );      
-    FUNC_EXIT_RET_TRACE( errorCode );
-    return errorCode;	 
-	}
-
-
-// -----------------------------------------------------------------------------
-// SysLangUtil::ChangeRegion
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt SysLangUtil::ChangeRegion(const TInt aRegionCode)
-	{
-    API_FUNC_ENTRY_TRACE;
-    TRAPD( errorCode, LoadDllL( KGSRegion, aRegionCode, KRegionDllNameBase ) );     
-    FUNC_EXIT_RET_TRACE( errorCode );
-    return errorCode;
-	}
-
-// -----------------------------------------------------------------------------
-// SysLangUtil::ChangeCollation
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt SysLangUtil::ChangeCollation(const TInt aCollationCode)
-	{
-    API_FUNC_ENTRY_TRACE; 
-    TRAPD( errorCode, LoadDllL( KGSCollation, aCollationCode, KCollationDllNameBase ) );      
-    FUNC_EXIT_RET_TRACE( errorCode );
-    return errorCode;
-	}
-	
-
-// -----------------------------------------------------------------------------
-// SysLangUtil::GetInstalledRegions
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt SysLangUtil::GetInstalledRegions(CArrayFixFlat<TInt>*& aRegions,  RFs* aFileServerSession )
-	{
-	API_FUNC_ENTRY_TRACE;	
-	TRAPD(err, ReadFileL(aRegions, KRegionsIni, aFileServerSession ));
-	FUNC_EXIT_RET_TRACE( err );
-	return err;
-	}
-
-// -----------------------------------------------------------------------------
-// SysLangUtil::GetInstalledCollations
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt SysLangUtil::GetInstalledCollations(CArrayFixFlat<TInt>*& aCollations,  RFs* aFileServerSession )
-	{
-	API_FUNC_ENTRY_TRACE;
-	TRAPD(err, ReadFileL(aCollations,  KCollationsIni, aFileServerSession ));
-	FUNC_EXIT_RET_TRACE( err );  
-	return err;	
-	}
-
-void SysLangUtil::LoadDllL( const TUint32 aCategory,const TInt aCode, const TDesC& aDllNameBase )
-    {
-    CRepository* cenrep = NULL; 
-    TUint32 keyInfo;
-    cenrep = CRepository::NewLC( KCRUidCommonEngineKeys );
-    
-    // Re-iterate through StartTransaction, if errorCode returned is KErrLocked
-    TInt errorCode = KErrLocked;
-	//Counter to restrict re-iteration. 
-	TInt counter = KMaxCountForReiteration;
-    while ( KErrLocked == errorCode && counter > 0 )
-        {
-        errorCode = cenrep->StartTransaction(CRepository::EConcurrentReadWriteTransaction);
-		--counter;
-        }
-    User::LeaveIfError(errorCode);
-	cenrep->CleanupCancelTransactionPushL();
-    User::LeaveIfError(cenrep->Set( aCategory, aCode)); 
-           
-    TBuf<KMaxDllExtensionLength> extension;       
-    extension.Format( KDllExtensionFormat, aCode );
-    
-    // Padd ".1" to ".001" for compatibility.   
-    for( ; extension.Length() < KMinDllExtensionLength ;) 
-        {
-        extension.Insert( KDllExtensionPaddingPosition,
-                          KDllExtensionPadding );
-        }
-
-    TBuf<KMaxDllNameLength> dllName( aDllNameBase );
-    dllName.Append( extension );
-    
-    //Loading DLL
-    TExtendedLocale extLocale;
-    extLocale.LoadSystemSettings();
-    errorCode = extLocale.LoadLocaleAspect( dllName );
-    ERROR_TRACE_2( "LoadLocaleAspect returned error %d while loading dll %S" ,errorCode, &dllName );
-    User::LeaveIfError(errorCode);
-	
-    User::LeaveIfError(extLocale.SaveSystemSettings());
-	errorCode = cenrep->CommitTransaction(keyInfo);
-	if ( KErrNone != errorCode )
-        {
-        ERROR_TRACE_2( "CommitTransaction() error: Key Info %d for setting Category %d", keyInfo, aCategory  );
-        User::Leave(errorCode);
-        }
-	CleanupStack::PopAndDestroy();// for CleanupCancelTransactionPushL()
-	CleanupStack::PopAndDestroy(cenrep);
-    User::LeaveIfError(TLocale().Set());    
-    }
-
-void SysLangUtil::ReadFileL(CArrayFixFlat<TInt>*& aArray, const TDesC& aFilePath, RFs* aFileServerSession )
-    {
-    TBool hadFS = EFalse;
-    TInt err = KErrNone;
-    if ( aArray )
-        {
-        delete aArray;
-        aArray = NULL;
-        }
-    aArray = new(ELeave) CArrayFixFlat<TInt>( KLangArraySize );    
-    
-    aFileServerSession = CheckFS( aFileServerSession, hadFS, err );    
-    User::LeaveIfError(err);
-    RFile file;
-    CleanupClosePushL(file);
-    err = file.Open(*aFileServerSession, aFilePath, EFileStream | EFileRead | EFileShareReadersOnly );
-    ERROR_TRACE_2( "SysLangUtil::ReadFileL() : Opening the file : %S failed with error : %d", &aFilePath, err) ; 
-	User::LeaveIfError(err);
-	
-    // Prepare Reader
-    TFileText reader;
-    reader.Set( file );
-    err = reader.Seek( ESeekStart );
-    if ( !err )
-        {
-        TBuf<KReadBufSize> readBuf;
-        for ( TInt i = 0; !reader.Read( readBuf ) && readBuf.Length(); ++i )
-            {
-            TLex lex( readBuf );
-            lex.SkipSpace();
-            TInt value;
-            err = lex.Val( value );
-            if ( err ) 
-                {
-                break;                
-                }
-            // IGNORE the Leave
-            TRAP_IGNORE( aArray->AppendL( value ));                          
-            readBuf.Zero();
-            }
-        }
-    CleanupStack::PopAndDestroy(&file);    
-    if ( !hadFS )
-        {
-        aFileServerSession->Close();
-        delete aFileServerSession;
-        aFileServerSession = NULL;
-        }  
-    }
-