diff -r 000000000000 -r 72b543305e3a messagingappbase/smartmessaging/wmlbc/inc/WmlFieldParser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/smartmessaging/wmlbc/inc/WmlFieldParser.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,114 @@ +/* +* Copyright (c) 2002 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 class is used to parse fields to wml control from array, +* which is created by Wap Parser (wapp.dll). +* +*/ + + + +#ifndef CWMLFIELDPARSER_H +#define CWMLFIELDPARSER_H + +// INCLUDES + +#include "WMLBC.hrh" +#include + +// FORWARD DECLARATIONS + +class CParsedField; +class CWmlSubItemBase; +class CWmlBMSubItem; +enum TWappParserFields; + +// CLASS DECLARATION + +/** +* This class is used to parse fields to wml control from array, +* which is created by Wap Parser (wapp.dll). +*/ +NONSHARABLE_CLASS( CWmlFieldParser ) : public CBase + { + + public: // construction + + /** + * Constuctor + */ + CWmlFieldParser(); + + /** + * Destructor + */ + ~CWmlFieldParser(); + + public: // new + + /** + * Parses field from an array in WAP parser (wapp.dll) format into + * WML Bio Control's own internal format. Pushes the created array + * into cleanup stack. + * @param aParsedFieldArray reference to the parsed fields array, + * @param aWapArray reference to array where Wap AP items are pushed. + * @param aMMSArray reference to array where MMS setting items are pushed. + * @param aBMArray reference to array where Bookmark items are pushed. + */ + void ParseFieldsL( const CArrayPtrSeg& aParsedFieldArray, + CArrayPtrSeg& aBMArray); + + private: // internal member functions + + /** + * Compare aFieldName with all enumerated parsed fields + * @param aFieldName name from parser + * @return TWappParserFields correct enum + */ + TWappParserFields CompareField( TPtrC aFieldName ); + + /** + * Checks if the field pair is characteric type. + * @param aFieldName name from parser + * @param aFieldValue value from parser + * @param aEnumField correct enum, which is updated. + * @return ETrue if this is characteristic type, EFalse otherwise. + */ + TBool IsCharacteristicTypeL( TPtrC aFieldName, + TPtrC aFieldValue, + TInt& aEnumField ); + + /** + * Add current bookmark item to the array. + * The member iBm is added to the array and + * validity checking is also performed for it. + * Member iBm is nulled in this method. + */ + void AddCurrentBMToArrayL(); + + private: // data + + /// Bookmark item to be added in subItemArray. + CWmlBMSubItem *iBm; + + /// Array containing WAP AP items. Not owned. + CArrayPtrSeg* iBMArray; + + /// Indicates current character type when parsing fields. + TInt iCurrentCharacteristicType; + }; + +#endif // CWMLFIELDPARSER_H + +// End of file