--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xdmprotocols/XdmXmlParser/inc/XdmXmlParser.h Tue Feb 02 01:05:17 2010 +0200
@@ -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 <parser.h>
+
+//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<const TDesC8> The log line
+ * @return void
+ */
+ void WriteToLog( TRefByValue<const TDesC8> 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