syncmlfw/common/xml/src/Wbxml2xmlconverter.cpp
changeset 0 b497e44ab2fc
--- /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 <s32mem.h>
+
+#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;
+	}
+
+
+
+
+