diff -r 000000000000 -r b497e44ab2fc syncmlfw/common/xml/src/Wbxml2xmlconverter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syncmlfw/common/xml/src/Wbxml2xmlconverter.cpp Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,267 @@ +/* +* 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 "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: wbxml to xml converter +* +*/ + + +#include + +#include "wbxml2xmlconverter.h" +#include "smlsyncmltags.h" +#include "smlmetinftags.h" + +EXPORT_C CWbxml2XmlConverter* CWbxml2XmlConverter::NewL() + { + CWbxml2XmlConverter* self = NewLC(); + CleanupStack::Pop(); // self + return self; + } + +EXPORT_C CWbxml2XmlConverter* CWbxml2XmlConverter::NewLC() + { + CWbxml2XmlConverter* self = new (ELeave) CWbxml2XmlConverter(); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +EXPORT_C void CWbxml2XmlConverter::ConvertL( const TUint8* aPtr, TInt32 aLength ) + { + RMemReadStream mrs(aPtr, aLength); + doConvertL(mrs); + } + +EXPORT_C void CWbxml2XmlConverter::ConvertL( RReadStream& aSource ) + { + doConvertL(aSource); + } + +void CWbxml2XmlConverter::doConvertL( RReadStream& aSource ) + { + iGenerator->Reset(); + CWBXMLParser* parser = CWBXMLParser::NewL(); + CleanupStack::PushL(parser); + CWBXMLSyncMLDocHandler* dh = CWBXMLSyncMLDocHandler::NewL(this); + CleanupStack::PushL(dh); + parser->SetDocumentHandler(dh); + parser->SetExtensionHandler(dh); + parser->SetDocumentL(aSource); + while( parser->ParseL() == KWBXMLParserErrorOk ) + ; + CleanupStack::PopAndDestroy(2); // parser, dh + } + +EXPORT_C TPtrC8 CWbxml2XmlConverter::Document() const + { + return iGenerator->Document(); + } + +EXPORT_C CWbxml2XmlConverter::~CWbxml2XmlConverter() + { + delete iGenerator; + } + +void CWbxml2XmlConverter::ConstructL() + { + iGenerator = new (ELeave) CXMLSyncMLGenerator(); + iGenerator->CreateWorkspaceL(); + iGenerator->InitializeL(); + } + +Ret_t CWbxml2XmlConverter::smlStartMessageFuncL(SmlSyncHdrPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlStartMessage(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlEndMessageFuncL(Boolean_t final) + { + if( iGenerator ) + { + iGenerator->smlEndMessage(final); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlStartSyncFuncL(SmlSyncPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlStartSync(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlEndSyncFuncL() + { + if( iGenerator ) + { + iGenerator->smlEndSync(); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlStartAtomicFuncL(SmlAtomicPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlStartAtomic(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlEndAtomicFuncL() + { + if( iGenerator ) + { + iGenerator->smlEndAtomic(); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlStartSequenceFuncL(SmlSequencePtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlStartSequence(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlEndSequenceFuncL() + { + if( iGenerator ) + { + iGenerator->smlEndSequence(); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlAddCmdFuncL(SmlAddPtr_t pContent) + { + iGenerator->smlAddCmd(pContent); + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlReplaceCmdFuncL(SmlReplacePtr_t pContent) + { + iGenerator->smlReplaceCmd(pContent); + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlAlertCmdFuncL(SmlAlertPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlAlertCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlDeleteCmdFuncL(SmlDeletePtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlDeleteCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlGetCmdFuncL(SmlGetPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlGetCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlPutCmdFuncL(SmlPutPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlPutCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlMapCmdFuncL(SmlMapPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlMapCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlResultsCmdFuncL(SmlResultsPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlResultsCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlStatusCmdFuncL(SmlStatusPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlStatusCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlCopyCmdFuncL(SmlCopyPtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlCopyCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlMoveCmdFuncL(SmlMovePtr_t pContent) + { + if( iGenerator ) + { + iGenerator->smlMoveCmd(pContent); + } + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlExecCmdFuncL(SmlExecPtr_t pContent) + { + // FOTA + if( iGenerator ) + { + iGenerator->smlExecCmd(pContent); + } + // FOTA end + return KErrNone; + } + +Ret_t CWbxml2XmlConverter::smlSearchCmdFuncL(SmlSearchPtr_t /*pContent*/) + { + return KErrNone; + } + + + + +