Bug 3539. Update localisation mappings.
/*
* Copyright (c) 2004 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: XML Parser implementation
*
*/
#ifndef MPENGPARSER_H
#define MPENGPARSER_H
#include "PEngXMLTags.h"
#include "MPEngAdvTransactionStatus2.h"
//FORWARD DECLARATION
class MPEngXMLParser;
// FUNCTION PROTOTYPES
/**
* Factory method to create XML Parser.
*
* @since 3.0
*/
IMPORT_C MPEngXMLParser* CreateXMLParserL();
IMPORT_C MPEngXMLParser* CreateXMLParserLC();
// CLASS DEFINITION
/**
* This class defines the interface for Presence XML Parser.
* XML parser is used to parse XML data.
*
* @since 2.1
*/
class MPEngXMLParser
{
public: //Parsing functions
/**
* Decodes given XML data according to the given string to be found.
* @param aBuffer Initial data to be parsed
* @param aString The tag name to be searched
* @param aTags Tells if the tags are included in the result
* @param aLevel Restricts the parsing to a certain tag level, 0 means
* that there's no restrictions
* @return TBool The boolean value of how decoding went.
*/
virtual TBool DecodeL( const TDesC8& aBuffer,
const TDesC8& aString,
TBool aTags,
TInt aLevel = 0 ) = 0;
/**
* Gets the number of decode results.
* @return TInt number of results.
*/
virtual TInt Count() = 0;
/**
* Gets raw result from the decoded result array.
*
* @param aIndex the wanted result
* @return TPtrC8 a pointer to the result data
*/
virtual TPtrC8 ResultL( TInt aIndex = 0 ) = 0;
/**
* Gets narrow text from the decoded result array.
*
* Performed steps:
* 1. UnEscapes XML entities.
*
* @param aIndex Index of wanted result.
* @return Narrow text. Buffer ownership is returned to caller.
*/
virtual HBufC8* ResultAsNarrowTextL( TInt aIndex = 0 ) = 0;
/**
* Gets unicode text from the decoded result array.
*
* Performed steps:
* 1. UnEscapes XML entities.
* 2. Converts text from Utf8 to Unicode.
*
* @param aIndex Index of wanted result.
* @return Unicode text. Buffer ownership is returned to caller.
*/
virtual HBufC16* ResultAsUnicodeTextL( TInt aIndex = 0 ) = 0;
/**
* Gets WV Address from the decoded result array.
*
* Performed steps:
* 1. UnEscapes XML entities.
* 2. Converts text from Utf8 to Unicode.
* 3. UnEscapes WV Address characters
*
* @param aIndex Index of wanted result.
* @return WV Address. Buffer ownership is returned to caller.
*/
virtual HBufC16* ResultAsWVAddressL( TInt aIndex = 0 ) = 0;
/**
* Gets Base64Decodeddata from the decoded result array.
*
* Performed steps:
* 1. Coverts data from the BASE64 format
*
* @param aIndex Index of wanted result.
* @return Base64 decoded text. Buffer ownership is returned to caller.
*/
virtual HBufC8* ResultAsBase64DecodedL( TInt aIndex = 0 ) = 0;
public: //Transaction result parsing functions
/**
* Parses the transaction result from the XML data.
* Overloaded version to allow client to define
* wether the valid result structure is required or not.
*
* @param aBuffer The XML buffer containing the response
* @param aTransactionOperation The TransactionOperation that
* caused the possible detailed errors.
* @param aStatus MPEngAdvTransactionStatus object where the
* userIDs and return values are stored.
* @param aResultRequired If ETrue, the valid result
* structure is required. If EFalse, or valid result
* structure is not required. If valid result
* structure is required but it isnt found from XML,
* parser generates KPEngNwErrInternalServerOrNetworkError.
* On the return aResultRequired contains ETrue, if valid
* structure was found. Else EFalse.
* @return The main result value from transaction status.
*/
virtual TInt ParseResultL( const TDesC8& aBuffer,
TInt aTransactionOperation,
MPEngAdvTransactionStatus2& aStatus,
TBool& aResultRequired ) = 0;
/**
* Parses the transaction result from the XML data.
* Overloaded version requiring the valid result
* structure.
*
* @param aBuffer The XML buffer containing the response
* @param aTransactionOperation The TransactionOperation that
* caused the possible detailed errors.
* @param aStatus MPEngAdvTransactionStatus object where the
* userIDs and return values are stored.
* @return The main result value from transaction status.
*/
virtual TInt ParseResultL( const TDesC8& aBuffer,
TInt aTransactionOperation,
MPEngAdvTransactionStatus2& aStatus ) = 0;
/**
* Parses the transaction result from the XML data.
* Client can pass the contact list id, where the results relate.
* Requires the valid result structure.
*
* @param aBuffer The XML buffer containing the response
* @param aTransactionOperation The TransactionOperation that
* caused the possible detailed errors.
* @param aStatus MPEngAdvTransactionStatus object where the
* userIDs and return values are stored.
* @param aContactList The name of the contact list this result was
* attached to.
* @return The main result value from transaction status.
*/
virtual TInt ParseContactListResultL( const TDesC8& aBuffer,
TInt aTransactionOperation,
const TDesC& aContactList,
MPEngAdvTransactionStatus2& aStatus ) = 0;
public: //Destructor & Cleanup support
/**
* Release method.
* When called, deletes object and
* frees all its resources.
*
* Concrete parser object can be thus pushed
* on the CleanupStack using CleanupClosePushL().
*/
virtual void Close() = 0;
/**
* Inline virtual destructor.
* Concrete instancies can be deleted
* trough this interface.
*/
virtual ~MPEngXMLParser() {}
};
#endif // MPENGPARSER_H
// End of File