languageinterworkingfw/servicehandler/src/liwxmlhandler.cpp
changeset 57 61b27eec6533
parent 45 7aa6007702af
--- a/languageinterworkingfw/servicehandler/src/liwxmlhandler.cpp	Fri Apr 16 15:54:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
-* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:       Wrapper to XML parser interface. Loads the inline and external XML metadata
-*				 and populates the service provider metadata information. This class
-*				 uses Symbian SAX parser to load the metadata information.
-*
-*/
-
-
-
-
-
-
-
-#include "liwxmlhandler.h"
-#include <f32file.h>
-#include "data_caging_path_literals.hrh"
-#include <e32capability.h>
-
-#include "liwservicedata.h"
-#include <liwvariant.h>
-
-_LIT8(KMetaDataName, "meta");
-
-
-/*
- * Creates and returns an instance of \c CLiwXmlHandler
- */
-CLiwXmlHandler* CLiwXmlHandler::NewL()
-{
-	CLiwXmlHandler* ptrToThis = CLiwXmlHandler::NewLC();
-	CleanupStack::Pop(ptrToThis);
-	
-	return ptrToThis;
-}
-
-/*
- * Creates and returns an instance of \c CLiwXmlHandler
- * Leaves the created instance in the cleanupstack.
- *
- * @return an instance of \c CLiwXmlHandler
- */
-CLiwXmlHandler* CLiwXmlHandler::NewLC()
-{
-	CLiwXmlHandler* ptrToThis = new (ELeave) CLiwXmlHandler();
-	CleanupStack::PushL(ptrToThis);
-	
-	ptrToThis->ConstructL();
-	
-	return ptrToThis;
-}
-
-
-/*
- * Destructor. Deletes the handler to XML parser
- */	
-CLiwXmlHandler::~CLiwXmlHandler()
-{
-	if(iXmlHandler)
-		delete iXmlHandler;
-	
-	if(iBuffer)
-		delete iBuffer;
-}
-
-/*
- * Default constructor.
- */	
-CLiwXmlHandler::CLiwXmlHandler()
-{
-	
-}
-
-/*
- * Instantiates the SAX parser instance and registers itself
- * as the callback to handle SAX events.
- */
-void CLiwXmlHandler::ConstructL()
-{
-	TInt parserFeature = EErrorOnUnrecognisedTags | EXmlVersion_1_1;
-	iXmlHandler = CSenXmlReader::NewL(parserFeature);
-	iXmlHandler->SetContentHandler(*this);
-}
-
-/*
- * Parses the inline XML content passed in the buffer. The parser
- * is kick started to recevie SAX events. This method also accepts the
- * reference to \c CLiwServiceData to store the parsed metadata name-value
- * pairs.
- */
-TInt CLiwXmlHandler::LoadServiceData(const TDesC8& aXmlBuffer,CLiwServiceData* aServiceData)
-{
-	iServiceData = aServiceData;
-	
-	TRAPD(err,iXmlHandler->ParseL(aXmlBuffer));
-	
-	TInt retVal = ESrvDataLoadFailed;
-		
-	if(!err)
-	{
-		retVal = ESrvDataLoadSuccess;
-	}
-	
-	return retVal;
-}
-
-/*
- * Parses the XML content present in an external file. The parser
- * is kick started to recevie SAX events. This method also accepts the
- * reference to \c CLiwServiceData to store the parsed metadata name-value
- * pairs.
- */
- #include <bautils.h>
-TInt CLiwXmlHandler::LoadServiceData(const TDesC& aFileToParse,CLiwServiceData* aServiceData)
-{
-	TInt retVal = ESrvDataLoadFailed;
-	
-	iServiceData = aServiceData;
-	
-	RFs fsSession;
-    User::LeaveIfError( fsSession.Connect() );
-    
-    TFileName resFile;
-    resFile.Append(aFileToParse);
-    
-    if(!BaflUtils::FileExists(fsSession,resFile))
-    {
-    	fsSession.Close();
-    	return ESrvDataFileNotFnd;
-    }
-    	
-    
-	TRAPD(err,iXmlHandler->ParseL(fsSession,resFile));
-	
-	fsSession.Close();
-	if(!err)
-	{
-		retVal = ESrvDataLoadSuccess;
-	}
-	
-	return retVal;	
-}
-
-/**
-* Receive notification of the beginning of a document.
-* @return KErrNone or some of the system-wide Symbian error codes.
-*/		
-TInt CLiwXmlHandler::StartDocument()
-{
-	return KErrNone;
-}
-
-/**
-* Receive notification of the end of a document.
-* @return KErrNone or some of the system-wide Symbian error codes.
-*/
-TInt CLiwXmlHandler::EndDocument()
-{
-	return KErrNone;
-}
-
-/**
-* The important parsed elements are <metadata/> and its sub-element
-* <capability/>.
-* The other sub-elements (other than <capability/>) are considered
-* as service provider specific metadata name-value pairs.
-*
-* @return KErrNone or some of the system-wide Symbian error codes.
-*/
-TInt CLiwXmlHandler::StartElement(	const TDesC8& /*aURI*/, 
-									const TDesC8& aLocalName, 
-									const TDesC8& /*aName*/, 
-									const RAttributeArray& /* apAttrs */)
-{
-	if(iBuffer)
-	{
-		delete iBuffer;
-		iBuffer=NULL;
-	}
-		
-	startBuf = aLocalName;
-	return KErrNone;
-}
-
-
-/**
-* The end of the elements such as <metadata/> and its sub-element
-* <capability/> are processed. The flags set for the processing of
-* <metadata> and it sub-elements like <capability/> are toggled off.
-*
-* @return KErrNone or some of the system-wide Symbian error codes.
-*/
-TInt CLiwXmlHandler::EndElement(	const TDesC8& /*aURI*/, 
-								const TDesC8& aLocalName, 
-								const TDesC8& /*aName*/)
-{
-	if(0!=aLocalName.CompareF(KMetaDataName) && 0==aLocalName.CompareF(startBuf))
-		iServiceData->AddMetaDataL(aLocalName,*iBuffer);
-	
-	delete iBuffer;
-	iBuffer = NULL;
-
-	return KErrNone;
-}
-
-/**
-* The metadata can be defined in the following XML format:
-*
-*
-* <metadata>
-*	<metadata_keyname1>metadata_keyvalue1</metadata_keyname1>
-*	<metadata_keyname2>metadata_keyvalue2</metadata_keyname2>
-* </metadata>
-*
-* A realistic example below
-*
-*
-* <metadata>
-* 	<capability>CapabilityReadDeviceData</capability>
-* 	<capability>CapabilityWriteDeviceData</capability>
-* 	<capability>CapabilityLocation</capability>
-* </metadata>
-*
-* This function obtains the character data defined within the
-* child elements of <metadata>. The child element name under <metadata>
-* is taken as metadata key and the character data under it as metadata
-* value and added to the internal metadata key-value pair entries.
-*
-* There could be multiple metadata keys having different values as
-* shown above
-*
-* Right now it supports only capability metadata information
-*
-*/										
-TInt CLiwXmlHandler::Characters(const TDesC8& aBuf, 
-		   							   const TInt /* aStart */, 
-									   const TInt /* aLength */)
-{
-	if(iBuffer)
-	{		
-		delete iBuffer;
-		iBuffer=NULL;
-	}
-		
-	
-	iBuffer = aBuf.Alloc();
-	
-	return KErrNone;
-}
-
-/**
-* In case of parsing errors due to non-well formed XML content,
-* file not being present etc are handled here. In case of XML content
-* error, the metadata stored so far will be cleaned up.
-*
-* @return KErrNone or some of the system-wide Symbian error codes.
-*/
-
-TInt CLiwXmlHandler::Error(TInt /*aErrorCode*/)
-{
-	return ESrvDataLoadFailed;
-}