diff -r 2669f8761a99 -r fbd2e7cec7ef xdmprotocols/XdmXmlParser/inc/XdmXmlParser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xdmprotocols/XdmXmlParser/inc/XdmXmlParser.h Wed Sep 01 12:23:14 2010 +0100 @@ -0,0 +1,175 @@ +/* +* 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: CXdmXmlParser +* +*/ + + + + +#ifndef __XDMXMLPARSER__ +#define __XDMXMLPARSER__ + +#include + +//CONSTANTS +_LIT( KParserLogFile, "XcapXml" ); +_LIT8( KDefaultMimeType, "text/xml" ); + +using namespace Xml; + +//FORWARD DECLARATION +class CXdmDocument; +class CXdmLogWriter; +class CXmlFormatter; +class CXdmDocumentNode; +class MXdmNodeInterface; +class CXdmXmlContentHandler; +class MXdmNamespaceContainer; + +// CLASS DECLARATION +class CXdmXmlParser: public CBase + { + public: // Constructors and destructor + + /** + * Symbian OS Constructor + * @return CXdmXmlParser New parser intance + */ + IMPORT_C static CXdmXmlParser* NewL(); + + /** + * Parse an XML document + * @param CXdmDocument Document instance + * @param TDesC8& The raw XML data + * @return void + */ + IMPORT_C void ParseDocumentL( CXdmDocument* aDocument, + const TDesC8& aXmlDocument ); + + /** + * Parse an XML document + * @param CXdmDocument Document instance + * @param TDesC8& The raw XML data + * @param Pointer to the document/fragment root + * @return void + */ + IMPORT_C void ParseDocumentL( CXdmDocument* aDocument, + const TDesC8& aXmlDocument, + CXdmDocumentNode* aDocumentSubset ); + + /** + * Parse an XML document + * @param TDesC8& The raw XML data + * @param Pointer to the document/fragment root + * @return void + */ + IMPORT_C void ParseDocumentL( const TDesC8& aXmlDocument, + CXdmDocumentNode* aDocumentRoot ); + + /** + * Format a document model into textual form + * @param TBool Indicates whether the document is whole + * @param CXdmDocument The document instance + * @param CXdmDocumentNode Pointer to the document/fragment root + * @return HBufC8* The document in textual form + */ + IMPORT_C HBufC8* FormatToXmlLC( TBool aIsWholeDocument, + const CXdmDocument* aDocument, + const CXdmDocumentNode* aRootNode ); + + /** + * Format a document model into textual form and append the fragment + * in the first parameter to the correct place inside the document. + * @param TDesC8& The fragment to append + * @param CXdmDocument The document instance + * @param CXdmDocumentNode Pointer to the fragment + * @return HBufC8* The document in textual form + */ + IMPORT_C HBufC8* FormatToXmlLC( const TDesC8& aXmlFragment, + const CXdmDocument* aDocument, + const CXdmDocumentNode* aTargetNode ); + + /** + * Destructor. + */ + IMPORT_C virtual ~CXdmXmlParser(); + + public: + + #ifdef _DEBUG + + /** + * Write to log file + * @param TRefByValue The log line + * @return void + */ + void WriteToLog( TRefByValue aFmt,... ) const; + + #endif + + public: + + /** + * Stop the parser + * @return void + */ + void FinishParsingL(); + + private: + + /** + * C++ constructor is private + * @return CXdmXmlParser + */ + CXdmXmlParser(); + + /** + * Second-phase constructor + * @return void + */ + void ConstructL(); + + #ifdef _DEBUG + + /** + * Return the current system time + * @return TInt Current system time in integer format + */ + static TInt TimeL(); + + /** + * Write the formatted document to the log folder + * @param HBufC8* Pointer to the data segment + * @return void + */ + void DumpDocumentL( HBufC8* aDocData ); + + #endif + + private: //Data + + TInt iDumpIndex; + TPtr8 iXmlDocument; + CParser* iXmlParser; + CXdmLogWriter* iLogWriter; + CXmlFormatter* iXmlFormatter; + TRequestStatus* iClientStatus; + CXdmXmlContentHandler* iContentHandler; + }; + +#endif //__XDMXMLPARSER__ + + +// End of File