diff -r 7259cf1302ad -r 169364e7e4b4 stif/stif_plat/inc/StifSectionParser.h --- a/stif/stif_plat/inc/StifSectionParser.h Tue Jul 06 16:05:13 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,286 +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: This file contains the header file of the -* CStifSectionParser. -* -*/ - -#ifndef STIF_SECTION_PARSER_H -#define STIF_SECTION_PARSER_H - -// INCLUDES -#include -#include -#include -#include "StifItemParser.h" - -// CONSTANTS -// Indicates is tag included in returned value. -enum TTagToReturnValue - { - ETag, // Return value includes the tag - ENoTag // Return value include no tag - }; - -// MACROS -// None - -// DATA TYPES -// None - -// FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -class CStifItemParser; - -// CLASS DECLARATION - -// DESCRIPTION -// CStifSectionParser is a STIF Test Framework StifParser class. -// Class contains a configuration file parsing operations. - -class CStifSectionParser - :public CBase - { - public: // Enumerations - - private: // Enumerations - - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CStifSectionParser* NewL( const TInt aLength ); - - /** - * Destructor. - */ - ~CStifSectionParser(); - - public: // New functions - - /** - * Parses a line for items parsing with a tag. - * Returns a CStifItemParser object. - * If start tag is empty the parsing starts beging of the section. - * TTagToReturnValue indicates will also the aTag value (if exist) - * include to the returned object(For default the tag will be added). - */ - IMPORT_C CStifItemParser* GetItemLineL( const TDesC& aTag, - TTagToReturnValue aTagIndicator = ETag ); - - /** - * Parses a next line for items parsing. - * Returns a CStifItemParser object. - */ - IMPORT_C CStifItemParser* GetNextItemLineL(); - - /** - * Parses a next line for items parsing with a tag. - * Returns a CStifItemParser object. - * If start tag is empty the parsing starts beging of the section. - * TTagToReturnValue indicates will also the aTag value (if exist) - * include to the returned object(For default the tag will be added). - */ - IMPORT_C CStifItemParser* GetNextItemLineL( const TDesC& aTag, - TTagToReturnValue aTagIndicator = ETag ); - - /** - * Parses a sub sections from the main section with a start and with - * a end tag. - * Returns a CStifSectionParser object. - * If start tag is empty the parsing starts beging of the section. - * If end tag is empty the parsing goes end of section. - * This method will parse next subsection after the earlier subsection - * if aSeeked parameter is not given. - * If configuration file includes several subsections with both start - * and end tags so aSeeked parameter seeks the required subsection. The - * aSeeked parameters indicates subsection that will be parsed. - */ - IMPORT_C CStifSectionParser* SubSectionL( const TDesC& aStartTag, - const TDesC& aEndTag, - TInt aSeeked = 1 ); - - /** - * Parses a next subsections from the main section with a start and with - * a end tag. - * Returns a CStifSectionParser object. - * If start tag is empty the parsing starts beging of the section. - * If end tag is empty the parsing goes end of section. - * This method will parse next subsection after the earlier subsection - * if aSeeked parameter is not given. - * If configuration file includes several subsections with both start - * and end tags so aSeeked parameter seeks the required subsection. The - * aSeeked parameters indicates subsection that will be parsed. - */ - IMPORT_C CStifSectionParser* NextSubSectionL( const TDesC& aStartTag, - const TDesC& aEndTag, - TInt aSeeked = 1 ); - - /** - * Get a line from section with a tag. - * Returns an error code and a reference to the parsed line. - * If start tag is empty the parsing starts beging of the section. - * TTagToReturnValue indicates will also the aTag value(if exist) - * include to the aLine reference(For default the tag will be added). - */ - IMPORT_C TInt GetLine( const TDesC& aTag, TPtrC& aLine, - TTagToReturnValue aTagIndicator = ETag ); - - /** - * Get next line. - * Returns an error code and a reference to the parsed line. - */ - IMPORT_C TInt GetNextLine( TPtrC& aLine ); - - /** - * Get next line with tag. - * Returns an error code and a reference to the parsed line. - * If start tag is empty the parsing starts beging of the section. - * TTagToReturnValue indicates will also the aTag value(if exist) - * include to the aLine reference(For default the tag will be added). - */ - IMPORT_C TInt GetNextLine( const TDesC& aTag, TPtrC& aLine, - TTagToReturnValue aTagIndicator = ETag ); - - /** - * Get current position. - * Returns current parsing position, which - * can be used as parameter for SetPosition afterwards to go back - * to old parsing position. - */ - IMPORT_C TInt GetPosition(); - - /** - * Set position. - * Returns a Symbian OS error code. aPos indicates the position to - * which section parser should go. - * SetPosition can be used to set parsing position, e.g. to rewind - * back to some old position retrieved with GetPosition. - */ - IMPORT_C TInt SetPosition( TInt aPos ); - - /** - * Create a section. - */ - void SetData( TPtr aData, - TInt aStartPos, - TInt aLength ); - - /** - * Returns a current section. - */ - const TPtrC Des(); - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CStifSectionParser( const TInt aLength ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - /** - * Generic start and end position parser for given data. - * Returns an error code. - */ - TInt ParseStartAndEndPos( TPtrC aSection, - const TDesC& aStartTag, - TTagToReturnValue aTagIndicator, - TInt& aStartPos, - TInt& aEndPos, - TInt& aLength ); - - /** - * Generic search for end-of-line. - * Returns position before linefeed and - * lex is posotioned to the beginning of next line. - */ - TInt GotoEndOfLine( TLex& lex ); - - /** - * Substracts line from the begining of selected text. - */ - TPtrC SubstractLine( const TPtrC& aText ); - - /** - * Searches for selected tag in a text. - */ - TInt FindTag( const TDesC& aText, const TDesC& aTag, TInt& aStartPos, TInt& aEndPos ); - - public: // Data - - protected: // Data - - private: // Data - - /** - * Parsed section with SectionL() or SubSectionL() method. - */ - TPtr iSection; - - /** - * Section length definitions. - */ - HBufC* iHBufferSection; - - /** - * Section length - */ - TInt iLength; - - /** - * Indicates position where start the parsing. - */ - TInt iSkipAndMarkPos; - - /** - * For line and item line parsing. Indicator is GetLine() or - * GetItemLineL() method used. - */ - TBool iLineIndicator; - - /** - * Indicates position where we are currently(subsection). - */ - TInt iSubOffset; - - public: // Friend classes - - /** - * For testing operations to get length information. - */ - friend class CTestParser; - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // STIF_SECTION_PARSER_H - -// End of File