diff -r 7fdc9a71d314 -r 8ad140f3dd41 hti/hti_plat/hti_api/inc/HtiCfg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hti/hti_plat/hti_api/inc/HtiCfg.h Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,131 @@ +/* +* 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: Utility library for reading simple configuration +* property files containing Key=Value lines. +* +*/ + +#ifndef __HTICFG_H__ +#define __HTICFG_H__ + +// INCLUDES +#include + +// CONSTANTS + +// Parameter lengths +const static TInt KMaxParameterNameLength = 64; +const static TInt KMaxParameterValueLength = 64; +const static TInt KMaxParameterLength = KMaxParameterNameLength + 1 + KMaxParameterValueLength; + +// Configuration file constants +#define KCfgNewLine (TChar)'\n' +#define KCfgSeparator (TChar)'=' +#define KCfgComment (TChar)'#' + +// FORWARD DECLARATIONS +class CDesC8ArrayFlat; + +// CLASS DECLARATION +class CHtiCfg: public CBase + { +public: + + /** + * Create instance of configuration class. + * @return Configuration class instance. + */ + IMPORT_C static CHtiCfg* NewL(); + + /** + * Create instance of configuration class leaving it to cleanup stack. + * @return Configuration class instance. + */ + IMPORT_C static CHtiCfg* NewLC(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CHtiCfg(); + + /** + * Loads the configuration file and reads the values to iCfgParameters. + * Drive letter is not specified. File will be searched from all drives. + * @param aCfgFilePath absolute path (without drive letter) to the directory + * from where to search the configuration file + * @param aCfgFileName configuration filename. + */ + IMPORT_C void LoadCfgL( const TDesC& aCfgFilePath, + const TDesC& aCfgFileName ); + + /** + * Reads the values from iCfgParameters and saves them to configuration file. + * Drive letter is not specified. File will be searched from all drives and + * if not found file will be crated to c-drive. + * @param aCfgFilePath directory from where to search the configuration file + * @param aCfgFileName configuration filename. + */ + IMPORT_C void SaveCfgL( const TDesC& aCfgFilePath, + const TDesC& aCfgFileName ); + + /** + * Gets a parameter value as descriptor. + * @param aName name of the parameter whose value to get + * @return Parameter value. + */ + IMPORT_C TPtrC8 GetParameterL( const TDesC8& aName ); + + /** + * Gets a numerical parameter value as integer. + * @param aName name of the parameter whose value to get + * @return Parameter value. + */ + IMPORT_C TInt GetParameterIntL( const TDesC8& aName ); + + /** + * Sets a parameter + * @param aName name of the parameter whose value to set + * @param aValue parameter value to set + * @return error code. + */ + IMPORT_C TInt SetParameterL( const TDesC8& aName, const TDesC8& aValue ); + + /** + * Removes a parameter + * @param aName name of the parameter to remove + * @return error code. + */ + IMPORT_C TInt RemoveParameterL( const TDesC8& aName ); + +private: + + /** + * Constructor. + */ + CHtiCfg(); + + /** + * Second phase construction. + */ + void ConstructL(); + + +private: // data + + // array of key=value lines + CDesC8ArrayFlat* iCfgParameters; + + }; + +#endif // __HTICFG_H__