--- 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;
-}