diff -r 417699dc19c9 -r c7e9f1c97567 xml/xmlparser/inc/cxmlobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/xmlparser/inc/cxmlobserver.h Mon Sep 13 13:16:40 2010 +0530 @@ -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 +#include +#include "cxmlattributes.h" +#include +#include + + +// 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