diff -r 77cb48a03620 -r d9861ae9169c xdmprotocols/XdmXmlParser/src/XdmXmlParser.cpp --- a/xdmprotocols/XdmXmlParser/src/XdmXmlParser.cpp Thu Jul 01 14:09:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,284 +0,0 @@ -/* -* 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 -* -*/ - - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "XdmXmlParser.h" -#include "XmlFormatter.h" -#include "XmlParserDefines.h" -#include "XdmXmlContentHandler.h" - -// ---------------------------------------------------------- -// CXdmXmlParser::CXdmXmlParser -// -// ---------------------------------------------------------- -// -CXdmXmlParser::CXdmXmlParser() : iDumpIndex( 1 ), - iXmlDocument( ( TText8* )"", 0, 0 ) - { - } - -// ---------------------------------------------------------- -// CXdmXmlParser::NewL -// -// ---------------------------------------------------------- -// -EXPORT_C CXdmXmlParser* CXdmXmlParser::NewL() - { - CXdmXmlParser* self = new ( ELeave ) CXdmXmlParser(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ---------------------------------------------------------- -// CXdmXmlParser::ConstructL -// -// ---------------------------------------------------------- -// -void CXdmXmlParser::ConstructL() - { - #ifdef _DEBUG - iLogWriter = CXdmLogWriter::NewL( KParserLogFile ); - WriteToLog( _L8( "CXdmXmlParser::ConstructL()" ) ); - #endif - iXmlFormatter = CXmlFormatter::NewL( *this ); - iContentHandler = CXdmXmlContentHandler::NewL( *this ); - iXmlParser = CParser::NewL( KDefaultMimeType, *iContentHandler ); - } - -// ---------------------------------------------------- -// CXdmXmlParser::~CXdmXmlParser -// -// ---------------------------------------------------- -// -CXdmXmlParser::~CXdmXmlParser() - { - #ifdef _DEBUG - WriteToLog( _L8( "CXdmXmlParser::~CXdmXmlParser()" ) ); - #endif - delete iXmlParser; - delete iLogWriter; - delete iXmlFormatter; - delete iContentHandler; - } - -// ---------------------------------------------------------- -// CXdmXmlParser::ParseDocumentL -// -// ---------------------------------------------------------- -// -EXPORT_C void CXdmXmlParser::ParseDocumentL( CXdmDocument* aDocument, - const TDesC8& aXmlDocument ) - { - #ifdef _DEBUG - TInt start = CXdmXmlParser::TimeL(); - #endif - CXdmDocumentNode* root = aDocument->DocumentRoot(); - if( root == NULL ) - aDocument->CreateRootL(); - User::LeaveIfError( iXmlParser->EnableFeature( EReportNamespaceMapping ) ); - iContentHandler->SetTarget( *aDocument ); - Xml::ParseL( *iXmlParser, aXmlDocument ); - iContentHandler->Reset(); - //self->ParseL( aDocument, aXmlDocument ); - #ifdef _DEBUG - TInt finish = CXdmXmlParser::TimeL(); - WriteToLog( _L8( "CXdmXmlParser::ParseDocumentL() - Parsing took %d milliseconds" ), finish - start ); - #endif - } - -// ---------------------------------------------------------- -// CXdmXmlParser::ParseDocumentL -// -// ---------------------------------------------------------- -// -EXPORT_C void CXdmXmlParser::ParseDocumentL( const TDesC8& aXmlDocument, - CXdmDocumentNode* aDocumentRoot ) - { - #ifdef _DEBUG - TInt start = CXdmXmlParser::TimeL(); - #endif - User::LeaveIfError( iXmlParser->EnableFeature( EReportNamespaceMapping ) ); - iContentHandler->SetTarget( *aDocumentRoot ); - Xml::ParseL( *iXmlParser, aXmlDocument ); - iContentHandler->Reset(); - //self->ParseL( aXmlDocument, aDocumentRoot ); - #ifdef _DEBUG - TInt finish = CXdmXmlParser::TimeL(); - WriteToLog( _L8( "CXdmXmlParser::ParseDocumentL() - Parsing took %d milliseconds" ), finish - start ); - #endif - } - -// ---------------------------------------------------------- -// CXdmXmlParser::ParseDocumentL -// -// ---------------------------------------------------------- -// -EXPORT_C void CXdmXmlParser::ParseDocumentL( CXdmDocument* aDocument, - const TDesC8& aXmlDocument, - CXdmDocumentNode* aDocumentSubset ) - { - #ifdef _DEBUG - TInt start = CXdmXmlParser::TimeL(); - #endif - User::LeaveIfError( iXmlParser->EnableFeature( EReportNamespaces ) ); - User::LeaveIfError( iXmlParser->EnableFeature( EReportNamespaceMapping ) ); - User::LeaveIfError( iXmlParser->EnableFeature( EReportNamespacePrefixes ) ); - iContentHandler->SetTargetL( *aDocument, *aDocumentSubset ); - Xml::ParseL( *iXmlParser, aXmlDocument ); - iContentHandler->Reset(); - //self->ParseL( aDocument, aXmlDocument, aDocumentSubset ); - #ifdef _DEBUG - TInt finish = CXdmXmlParser::TimeL(); - CXdmXmlParser::WriteToLog( _L8( - "CXdmXmlParser::ParseDocumentL() - Parsing took %d milliseconds" ), finish - start ); - #endif - } - -// ---------------------------------------------------------- -// CXdmXmlParser::FormatToXmlLC -// -// ---------------------------------------------------------- -// -EXPORT_C HBufC8* CXdmXmlParser::FormatToXmlLC( TBool aIsWholeDocument, - const CXdmDocument* aDocument, - const CXdmDocumentNode* aRootNode ) - { - #ifdef _DEBUG - TInt start = CXdmXmlParser::TimeL(); - #endif - HBufC8* ret = iXmlFormatter->FormatLC( aIsWholeDocument, aDocument, aRootNode ); - #ifdef _DEBUG - DumpDocumentL( ret ); - TInt finish = CXdmXmlParser::TimeL(); - CXdmXmlParser::WriteToLog( _L8( - "CXdmXmlParser::FormatToXmlLC() - Formatting took %d milliseconds" ), finish - start ); - #endif - return ret; - } - -// ---------------------------------------------------------- -// CXdmXmlParser::FormatToXmlLC -// -// ---------------------------------------------------------- -// -EXPORT_C HBufC8* CXdmXmlParser::FormatToXmlLC( const TDesC8& aXmlFragment, - const CXdmDocument* aDocument, - const CXdmDocumentNode* aTargetNode ) - { - #ifdef _DEBUG - TInt start = CXdmXmlParser::TimeL(); - #endif - //HBufC8* ret = self->FormatLC( aXmlFragment, aDocument, aTargetNode ); - HBufC8* ret = iXmlFormatter->FormatLC( aXmlFragment, aDocument, aTargetNode ); - #ifdef _DEBUG - DumpDocumentL( ret ); - TInt finish = CXdmXmlParser::TimeL(); - CXdmXmlParser::WriteToLog( _L8( - "CXdmXmlParser::FormatToXmlLC() - Formatting took %d milliseconds" ), finish - start ); - #endif - return ret; - } - -// --------------------------------------------------------- -// CXdmXmlParser::FinishParsing -// -// --------------------------------------------------------- -// -void CXdmXmlParser::FinishParsingL() - { - #ifdef _DEBUG - WriteToLog( _L8( "CXdmXmlParser::FinishParsing()" ) ); - #endif - iXmlParser->ParseEndL(); - } - -#ifdef _DEBUG - -// --------------------------------------------------------- -// CXcapPartDocOperation::DumpDocumentL -// -// --------------------------------------------------------- -// -void CXdmXmlParser::DumpDocumentL( HBufC8* aDocData ) - { - if( aDocData ) - { - RFile file; - RFs session; - TPtr8 pointer( aDocData->Des() ); - _LIT( KXmlFileExtension, ".xml" ); - TBuf<128> nameBuf( _L( "C:\\logs\\XDM\\request" ) ); - nameBuf.AppendNum( iDumpIndex ); - nameBuf.Append( KXmlFileExtension ); - User::LeaveIfError( session.Connect() ); - TInt error( file.Replace( session, nameBuf, EFileWrite ) ); - if( error == KErrNone ) - { - file.Write( pointer ); - file.Close(); - iDumpIndex++; - } - session.Close(); - } - } - -// ---------------------------------------------------------- -// CXdmXmlParser::TimeL -// -// ---------------------------------------------------------- -// -TInt CXdmXmlParser::TimeL() - { - TInt period = 0; - User::LeaveIfError( HAL::Get( HALData::ESystemTickPeriod, period ) ); - TInt millisecsPerTick = period / 1000; - return User::TickCount() * millisecsPerTick; - } - -// ---------------------------------------------------------- -// CXdmXmlParser::WriteToLog -// -// ---------------------------------------------------------- -// -void CXdmXmlParser::WriteToLog( TRefByValue aFmt,... ) const - { - VA_LIST list; - VA_START( list, aFmt ); - TBuf8 buf; - buf.FormatList( aFmt, list ); - iLogWriter->WriteToLog( buf ); - } - -#endif - - - -