--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/emailnotificationhandler/inc/EMNXMLContentHandler.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2005 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: Extracts needed attributes from received EMN message.
+*
+*
+*/
+
+
+
+#ifndef EMNXMLCONTENTHANDLER_H
+#define EMNXMLCONTENTHANDLER_H
+
+#include <xml/contenthandler.h>
+#include <xml/wbxmlextensionhandler.h>
+#include <AlwaysOnlineManagerCommon.h>
+
+#include "EMNHandler.h" // For common EMN error codes
+
+using namespace Xml;
+
+/*
+* This class extracts needed attributes from received EMN message, which can
+* be either in XML or in WBXML form.
+*
+* @since S60 v3.1
+*/
+class CEMNXMLContentHandler :
+ public CBase,
+ public MWbxmlExtensionHandler,
+ public Xml::MContentHandler
+ {
+
+ public:
+ /**
+ * Creates object from CEMNXMLContentHandler
+ * @since S60 v3.1
+ * @return, Constructed object
+ */
+ static CEMNXMLContentHandler* NewL(
+ TEMNElement& aElement, TBool aIsAscii );
+
+ /**
+ * Creates object from CEMNXMLContentHandler and leaves it to
+ * cleanup stack
+ * @since S60 v3.1
+ * @return, Constructed object
+ */
+ static CEMNXMLContentHandler* NewLC(
+ TEMNElement& aElement, TBool aIsAscii );
+
+ /**
+ * Destructor
+ * @since S60 v3.1
+ */
+ virtual ~CEMNXMLContentHandler();
+
+ /**
+ * Symbian 2-phase constructor
+ * @since S60 v3.1
+ */
+ void ConstructL();
+
+ public: // Following public functions are all from MContentHandler
+
+ void OnStartDocumentL(
+ const RDocumentParameters& aDocParam, TInt aErrorCode );
+
+ void OnEndDocumentL( TInt aErrorCode );
+
+ void OnStartElementL(
+ const RTagInfo& aElement,
+ const RAttributeArray& aAttributes,
+ TInt aErrorCode );
+
+ void OnEndElementL( const RTagInfo& aElement, TInt aErrorCode );
+
+ void OnContentL( const TDesC8& aBytes, TInt aErrorCode );
+
+ void OnStartPrefixMappingL(
+ const RString& aPrefix,
+ const RString& aUri,
+ TInt aErrorCode );
+
+ void OnEndPrefixMappingL(
+ const RString& aPrefix,
+ TInt aErrorCode );
+
+ void OnIgnorableWhiteSpaceL(
+ const TDesC8& aBytes,
+ TInt aErrorCode );
+
+ void OnSkippedEntityL(
+ const RString& aName,
+ TInt aErrorCode );
+
+ void OnProcessingInstructionL(
+ const TDesC8& aTarget,
+ const TDesC8& aData,
+ TInt aErrorCode );
+
+ void OnError( TInt aErrorCode );
+
+ TAny* GetExtendedInterface( const TInt32 aUid );
+
+ public: // From MWbxmlExtensionHandler
+
+ void OnExtensionL(
+ const RString& aData,
+ TInt aToken,
+ TInt aErrorCode );
+
+ private:
+ /**
+ * Default constructor for class CEMNXMLContentHandler
+ * @since S60 v3.1
+ * @return, Constructed object
+ */
+ CEMNXMLContentHandler( TEMNElement& aElement, TBool aIsAscii );
+
+ /**
+ * Extracts given attribute from XML message.
+ * @param aAttributeName8 name of the attribute (8-bit)
+ * @param aAttributeValue8 value of the attribute (8-bit)
+ * @since S60 v3.1
+ */
+ void HandleXMLAttributesL(
+ const TDesC8& aAttributeName8, const TDesC8& aAttributeValue8 );
+
+ /**
+ * Extracts given attribute from WBXML message.
+ * @param aAttributeName8 name of the attribute (8-bit)
+ * @param aAttributeValue8 value of the attribute (8-bit)
+ * @since S60 v3.1
+ */
+ void HandleWBXMLAttributesL(
+ const TDesC8& aAttributeName8, const TDesC8& aAttributeValue8 );
+
+ private:
+ // Contains mailbox and timestamp
+ TEMNElement& iElement;
+ // Is message XML or WBXML
+ TBool iIsAscii;
+ // Mandatory attribute: mailbox
+ TBool iFoundMailboxAttribute;
+ };
+
+#endif // EMNXMLCONTENTHANDLER_H