hti/HtiCfg/src/HtiCfg.cpp
branchRCL_3
changeset 19 07b41fa8d1dd
parent 18 3406c99bc375
child 20 ca8a1b6995f6
--- a/hti/HtiCfg/src/HtiCfg.cpp	Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,331 +0,0 @@
-/*
-* 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"
-* 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:  CHtiCfg implementation
-*
-*/
-
-// INCLUDE FILES
-#include "HtiCfg.h"
-#include <badesca.h>
-#include <f32file.h>
-
-// CONSTANTS
-const static TInt KCfgArrayGranularity = 5;
-
-// MACROS
-
-// LOCAL CONSTANTS AND MACROS
-
-// MODULE DATA STRUCTURES
-
-// LOCAL FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-EXPORT_C CHtiCfg* CHtiCfg::NewL()
-    {
-    CHtiCfg* self = NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-EXPORT_C CHtiCfg* CHtiCfg::NewLC()
-    {
-    CHtiCfg* self = new ( ELeave ) CHtiCfg();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::CHtiCfg
-// Constructor
-// -----------------------------------------------------------------------------
-CHtiCfg::CHtiCfg():iCfgParameters( NULL )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::CHtiCfg
-// Destructor
-// -----------------------------------------------------------------------------
-EXPORT_C CHtiCfg::~CHtiCfg()
-    {
-    if ( iCfgParameters )
-        {
-        iCfgParameters->Reset();
-        delete iCfgParameters;
-        iCfgParameters = NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::ConstructL
-// Second phase constructor. Private.
-// -----------------------------------------------------------------------------
-void CHtiCfg::ConstructL()
-    {
-    iCfgParameters = new ( ELeave ) CDesC8ArrayFlat( KCfgArrayGranularity );
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::LoadCfgL
-// Searches the file in all drives and if found reads all parameter lines to the
-// iCfgParameters array.
-// -----------------------------------------------------------------------------
-EXPORT_C void CHtiCfg::LoadCfgL( const TDesC& aCfgFilePath,
-                                 const TDesC& aCfgFileName )
-    {
-    // Reset parameters
-    if ( iCfgParameters )
-        {
-        iCfgParameters->Reset();
-        delete iCfgParameters;
-        iCfgParameters = NULL;
-        }
-    iCfgParameters = new ( ELeave ) CDesC8ArrayFlat( KCfgArrayGranularity );
-
-    // Open & read file
-    RFs fsSession;
-    User::LeaveIfError( fsSession.Connect() );
-    CleanupClosePushL( fsSession );
-
-    TFindFile finder( fsSession );
-    TFileName path( aCfgFilePath );
-    TInt err = finder.FindByPath( aCfgFileName, &path );
-    if ( err != KErrNone )
-        {
-        User::Leave( err );
-        }
-
-    TFileName cfgFile = finder.File();
-
-    RFile file;
-    User::LeaveIfError( file.Open( fsSession, cfgFile, EFileRead ) );
-    CleanupClosePushL( file );
-
-    TInt fileLength;
-    User::LeaveIfError( file.Size( fileLength ) );
-
-    HBufC8* fileData = HBufC8::NewLC( fileLength );
-    TPtr8 fileDes = fileData->Des();
-    User::LeaveIfError( file.Read( fileDes ) );
-
-    // Get parameters
-    TBool eof = EFalse;
-    while ( !eof )
-        {
-        TInt strEndIndex = fileDes.Locate( KCfgNewLine );
-        if ( strEndIndex == KErrNotFound )
-            {
-                strEndIndex = fileDes.Length();
-                eof = ETrue;
-            }
-
-        TPtrC8 line = fileDes.Left( strEndIndex );
-
-        if ( line.Locate( KCfgComment ) != 0 )
-            {
-            if ( line.Locate( KCfgSeparator ) > 0 )
-                {
-                TBuf8<KMaxParameterLength> parameter;
-                parameter.Copy( line );
-                parameter.Trim();
-                iCfgParameters->AppendL( parameter );
-                }
-            }
-
-        if ( !eof )
-            fileDes = fileDes.Right( fileDes.Length() - ( strEndIndex + 1 ) );
-
-        }
-
-    CleanupStack::PopAndDestroy( 3 ); // fsSession, fileData, file
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::SaveCfgL
-// Writes all parameter lines from iCfgParameters array to the file.
-// Existing file is searched from all drives and if found file will be replaced.
-// If existing file is not found file will be created to c-drive.
-// -----------------------------------------------------------------------------
-EXPORT_C void CHtiCfg::SaveCfgL( const TDesC& aCfgFilePath,
-                                 const TDesC& aCfgFileName )
-    {
-    RFs fs;
-    User::LeaveIfError( fs.Connect() );
-    CleanupClosePushL( fs );
-
-    RFile file;
-    CleanupClosePushL( file );
-
-    // Find the file
-    TFindFile finder( fs );
-    TFileName path( aCfgFilePath );
-    TFileName cfgFile;
-    TInt err = finder.FindByPath( aCfgFileName, &path );
-    if ( err != KErrNone )
-        {
-        cfgFile.Append( _L ( "c:" ) );
-        cfgFile.Append( path );
-        cfgFile.Append( aCfgFileName );
-        }
-    else
-        {
-        cfgFile = finder.File();
-        // If the file was found from ROM, we must save to C-drive.
-        if ( cfgFile[0] == 'z' || cfgFile[0] == 'Z' )
-            {
-            cfgFile[0] = 'c';
-            }
-        }
-
-    // Replace or create the file
-    User::LeaveIfError( file.Replace( fs, cfgFile, EFileWrite | EFileShareAny ) );
-
-    // Write the file
-    for ( TInt i = 0; i < iCfgParameters->Count(); i++ )
-        {
-        file.Write( iCfgParameters->MdcaPoint( i ) );
-        file.Write( _L8( "\n" ) );
-        }
-
-    // Close
-    CleanupStack::PopAndDestroy( 2 ); // fs, file
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::SetParameterL
-// -----------------------------------------------------------------------------
-EXPORT_C TInt CHtiCfg::SetParameterL( const TDesC8& aName,
-                                      const TDesC8& aValue )
-    {
-    // Does the parameter exist?
-    for ( TInt i = 0; i < iCfgParameters->Count(); i++ )
-        {
-        TInt sepIndex =
-            ( iCfgParameters->MdcaPoint( i ) ).Locate( KCfgSeparator );
-        if ( sepIndex <= 0 )
-            User::Leave( KErrGeneral ); // should not happen
-
-        TPtrC8 name = ( iCfgParameters->MdcaPoint( i ) ).Left( sepIndex );
-        if ( name.Compare( aName ) == 0 )
-            {
-            iCfgParameters->Delete( i );
-            TBuf8<KMaxParameterLength> parameter;
-            parameter.Append( aName );
-            parameter.Append( KCfgSeparator );
-            parameter.Append( aValue );
-            iCfgParameters->AppendL( parameter );
-            return KErrNone;
-            }
-        }
-
-    // Apparently not.. add it
-    TBuf8<KMaxParameterLength> parameter;
-    parameter.Append( aName );
-    parameter.Append( KCfgSeparator );
-    parameter.Append( aValue );
-    iCfgParameters->AppendL( parameter );
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::RemoveParameterL
-// -----------------------------------------------------------------------------
-EXPORT_C TInt CHtiCfg::RemoveParameterL( const TDesC8& aName )
-    {
-    for ( TInt i = 0; i < iCfgParameters->Count(); i++ )
-        {
-        TInt sepIndex =
-            ( iCfgParameters->MdcaPoint( i ) ).Locate( KCfgSeparator );
-        if ( sepIndex <= 0 )
-            User::Leave( KErrGeneral ); // should not happen
-
-        TPtrC8 name = ( iCfgParameters->MdcaPoint( i ) ).Left( sepIndex );
-        if ( name.Compare( aName ) == 0 )
-            {
-            iCfgParameters->Delete( i );
-            return KErrNone;
-            }
-        }
-
-    return KErrNotFound;
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::GetParameterL
-// -----------------------------------------------------------------------------
-EXPORT_C TPtrC8 CHtiCfg::GetParameterL( const TDesC8& aName )
-    {
-    for ( TInt i = 0; i < iCfgParameters->Count(); i++ )
-        {
-        TInt sepIndex =
-            ( iCfgParameters->MdcaPoint( i ) ).Locate( KCfgSeparator );
-        if ( sepIndex <= 0 )
-            User::Leave( KErrGeneral ); // should not happen
-
-        TPtrC8 name = ( iCfgParameters->MdcaPoint( i ) ).Left( sepIndex );
-        if ( name.Compare( aName ) == 0 )
-            {
-            TPtrC8 value = ( iCfgParameters->MdcaPoint( i ) ).Right(
-                ( iCfgParameters->MdcaPoint( i ) ).Length() - ( sepIndex + 1 ) );
-            return value;
-            }
-        }
-    User::Leave( KErrNotFound );
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CHtiCfg::GetParameterIntL
-// -----------------------------------------------------------------------------
-EXPORT_C TInt CHtiCfg::GetParameterIntL( const TDesC8& aName )
-    {
-    for ( TInt i = 0; i < iCfgParameters->Count(); i++ )
-        {
-        TInt sepIndex =
-            ( iCfgParameters->MdcaPoint( i ) ).Locate( KCfgSeparator );
-        if ( sepIndex <= 0 )
-            User::Leave( KErrGeneral ); // should not happen
-
-        TPtrC8 name = ( iCfgParameters->MdcaPoint( i ) ).Left( sepIndex );
-        if ( name.Compare( aName ) == 0 )
-            {
-            TPtrC8 value = ( iCfgParameters->MdcaPoint( i ) ).Right(
-                ( iCfgParameters->MdcaPoint( i ) ).Length() - ( sepIndex + 1 ) );
-
-            TLex8 lex( value );
-            TInt result;
-            User::LeaveIfError( lex.Val( result ) );
-            return result;
-            }
-        }
-    User::Leave( KErrNotFound );
-    return 0;
-    }
-
-
-// End of file