xml/xmlparser/inc/CXMLObserver.h
changeset 27 450972dee096
child 37 c828a2f286d1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/xmlparser/inc/CXMLObserver.h	Tue Jul 06 16:24:52 2010 +0300
@@ -0,0 +1,172 @@
+/*
+* 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 the License "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:  ?Description
+*
+*/
+
+
+
+#ifndef __CXMLOBSERVER_H
+#define __CXMLOBSERVER_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <txtetext.h>
+#include "CXMLAttributes.h"
+#include <xml/MXMLContentHandler.h>
+#include <xml/MWBXMLContentHandler.h>
+
+
+// CLASS DECLARATION
+
+/**
+*  Help class for CXMLReader.
+*  @lib XMLInterface.dll
+*  @since ?Series60_version
+*/
+class CXMLObserver : public CBase
+    {
+	public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CXMLObserver* NewL();
+
+		static CXMLObserver* NewLC();
+        
+        /**
+        * Destructor.
+        */
+        ~CXMLObserver();
+
+public: // New functions
+        
+/**
+* Registers content handler
+* @since ?Series60_version
+* @param aContentHandler: The ContentHandler to use.
+* @return none.
+*/
+	inline void SetContentHandler(MXMLContentHandler* aContentHandler){iContentHandler = aContentHandler;}
+
+/**
+* Registers a binary content handler
+* @since ?Series60_version
+* @param aContentHandler: The ContentHandler to use.
+* @return none.
+*/
+	inline void SetContentHandler(MWBXMLContentHandler* aContentHandler){iBinaryContentHandler = aContentHandler;}
+
+/**
+* Gets content handler
+* @since ?Series60_version
+* @param none.
+* @return ContentHandler.
+*/
+	inline MXMLContentHandler* GetContentHandler(){return iContentHandler;}
+
+	/**
+* Gets binary content handler
+* @since ?Series60_version
+* @param none.
+* @return ContentHandler.
+*/
+	inline MWBXMLContentHandler* GetBinaryContentHandler(){return iBinaryContentHandler;}
+
+
+/**
+* Gets current attribute list
+* @since ?Series60_version
+* @return pointer to current attribute list
+*/
+	inline CXMLAttributes* GetAttributes(){return iAttributes;}
+
+/**
+* Get current element
+* @since ?Series60_version
+* @return Current element
+*/
+	TPtrC GetElement() const;
+
+/**
+* Set current element
+* @since ?Series60_version
+* @param Current element
+* @return none.
+*/
+	void SetElementL(const TPtrC &aName);
+
+/**
+* Remove current element
+* @since ?Series60_version
+* @return none
+*/
+	void RemoveElement();
+
+/**
+* Set element URI
+* @since ?Series60_version
+* @param aURI: the URI.
+* @param aNSextension: namespace extension mapped to aURI.
+* @return none
+*/
+	void SetURIL(const TPtrC &aURI, const TPtrC &aNSextension);
+
+/**
+* Get element URI
+* @since ?Series60_version
+* @param aNSextension: namespace extension mapped to aURI.
+* @return the URI.
+*/
+	TPtrC GetURI(const TPtrC &aNSextension) const;
+
+/**
+* ResetURI, reset URI list
+* @since ?Series60_version
+* @return none.
+*/
+	void ResetURI();
+
+
+private:
+/**
+* C++ default constructor.
+*/
+	CXMLObserver(); 
+	
+	void ConstructL();
+
+public:	   // Data
+	// Keeps current attribute name
+	TPtrC* iCurrentAttribute;	
+
+private:  // Data
+	// Parser CallBacks
+	MXMLContentHandler* iContentHandler;
+	// Binary call backs
+	MWBXMLContentHandler* iBinaryContentHandler;
+	// Current attribute list
+	CXMLAttributes* iAttributes;
+	// Keeps track of elements (needed for binary parsing)
+	CDesCArraySeg* iDescElements;
+
+	// Keep track off namespace extensions and URIs.
+	CDesCArraySeg* iNSextensions;
+	CDesCArraySeg* iURIs;
+};
+
+#endif      // __CXMLOBSERVER_H   
+            
+// End of File