--- a/locationcentre/lcserver/src/lcregistrationparser.cpp Tue Feb 02 00:16:03 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,970 +0,0 @@
-/*
-* Copyright (c) 2007 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: Location Centre Server object.
-*
-*/
-
-
-// INCLUDE FILES
-#include <Xml/Parser.h>
-#include <Xml/MatchData.h>
-#include <utf.h>
-#include <Xml/XmlParserErrors.h>
-#include <javaregistryincludes.h>
-
-// USER INCLUDE
-#include "lcregistrationparser.h"
-#include "lcregxmltaginfo.h"
-#include "lcregxmlparserutils.h"
-#include "lcregxmltagtype.h"
-#include "lcregappinfo.h"
-
-#include "lcdebug.h"
-
-// CONSTANTS
-/**
- * Maximum length of UUID of a service can be
- */
-const TInt KUUIDMaxLength = 1028;
-const TInt KMaxLangCodeLen = 2;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::CLcRegistrationParser
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CLcRegistrationParser::CLcRegistrationParser( RFs& aFs ):
- iFs( aFs )
- {
- iParserError = KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CPosLmXmlEncoder::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CLcRegistrationParser* CLcRegistrationParser::NewL( RFs& aFs )
- {
- CLcRegistrationParser* self = new( ELeave ) CLcRegistrationParser( aFs );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::~CLcRegistrationParser()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CLcRegistrationParser::~CLcRegistrationParser()
- {
- delete iReadContent;
-
- iParserTreeTags.Reset();
- iParserTreeTags.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::ParseFileL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CLcRegAppInfo* CLcRegistrationParser::ParseFileL( const TDesC& aFile )
- {
- DEBUG("+ CLcRegistrationParser::ParseFileL" )
- CLcRegAppInfo* regAppInfo = CLcRegAppInfo::NewL();
- CleanupStack::PushL( regAppInfo );
-
- HBufC* attributeBuf = HBufC::NewLC( KUUIDMaxLength );
-
- iRegAppInfo = regAppInfo;
- iAttributeBuf = attributeBuf;
- // Check the file name here.
- if( aFile.Length() <= KMaxFileName )
- {
- iFileName.Copy( aFile );
- }
- else
- {
- DEBUG("Error : Bad file name")
- User::Leave( KErrBadName );
- }
-
- iParserTreeTags.Reset();
- iParsingTag = ELcXmlNothing;
- iParsedTag = ELcXmlNothing;
-
- _LIT8(KXmlMimeType, "text/xml");
-
- // Create Symbian XML parser
- // Create parser
-
- Xml::CParser* iRegParser = Xml::CParser::NewLC( KXmlMimeType, *this );
-
- iRegParser->ParseBeginL();
- // check the error code return from the parser
-
- Xml::ParseL( *iRegParser, iFs, aFile );
- // Leave here if Parser framework found some error
- User::LeaveIfError( iParserError );
-
- CleanupStack::PopAndDestroy( 2, attributeBuf );
- CleanupStack::Pop( regAppInfo );
- DEBUG("- CLcRegistrationParser::ParseFileL" )
- return regAppInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnStartDocumentL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnStartDocumentL(
- const Xml::RDocumentParameters& /*aDocParam*/,
- TInt /*aErrorCode*/)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnEndDocumentL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnEndDocumentL(TInt /*aErrorCode*/)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnStartElementL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnStartElementL(
- const Xml::RTagInfo& aElement,
- const Xml::RAttributeArray& aAttributes,
- TInt /*aErrorCode*/ )
- {
- DEBUG("+ CLcRegistrationParser::OnStartElementL" )
- delete iReadContent;
- iReadContent = NULL;
- // get the tag name and validate it
- TLcRegXmlTagType startTag =
- TLcRegXmlTagInfo::TagTypeL( aElement.LocalName().DesC() );
-
- if( startTag == ELcXmlUnknown )
- {
- User::Leave( KErrNotSupported );
- }
-
- SetParserTagL( startTag );
-
- // Check parser status
- CheckMandatoryTagsL( EXmlParserOnStartElement, startTag );
-
- //Collect attribute value for element
- CollectAttributeValueL( aElement, aAttributes );
-
- DEBUG("- CLcRegistrationParser::OnStartElementL" )
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::SetParserTagL
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::SetParserTagL( TLcRegXmlTagType aTag )
- {
- DEBUG("+ CLcRegistrationParser::SetParserTagL" )
-
- if( !iParserTreeTags.Count() )
- {
- if( aTag == ELcXmlLocationCentreRegistration )
- {
- iParserTreeTags.Append( aTag );
- }
- else
- {
- DEBUG("CLcRegistrationParser::SetParserTagL Not Supported" )
-
- User::Leave( KErrNotSupported );
- }
- }
- else
- {
- if( iParserTreeTags.Find( aTag ) == KErrNotFound )
- {
- User::LeaveIfError( iParserTreeTags.Append( aTag ) );
- CheckSequenceOrderL( aTag );
- }
- else
- {
- User::Leave( EXmlRecursiveEntity );
- }
- }
- DEBUG("- CLcRegistrationParser::SetParserTagL" )
- }
-
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::CheckSequenceOrderL
-//
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::CheckSequenceOrderL( TLcRegXmlTagType aTag )
- {
- DEBUG("+ CLcRegistrationParser::CheckSequenceOrderL" )
-
- switch ( aTag )
- {
- case ELcXmlLocationCentreRegistration:
- {
- if( iParserTreeTags.Count() > 1 )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlService:
- {
- if( iParserTreeTags.Count() != 1 &&
- iParserTreeTags.Find( ELcXmlLocationCentreRegistration ) == KErrNotFound )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlRegFileName:
- case ELcXmlFileIcon:
- case ELcXmlFeature:
- case ELcXmlRunMode:
- case ELcXmlWebService:
- case ELcXmlDocument:
- case ELcXmlApplication:
- {
- if( iParserTreeTags[1] != ELcXmlService )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlApplicationNative:
- case ELcXmlApplicationJava:
- case ELcXmlApplicationParams:
- {
- if( iParserTreeTags.Find( ELcXmlApplication ) == KErrNotFound ||
- iParserTreeTags[1] != ELcXmlService
- )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- default:
- break;
- }
-
- DEBUG("- CLcRegistrationParser::CheckSequenceOrderL" )
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::CheckMandatoryTagsL
-//
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::CheckMandatoryTagsL(
- TXmlParserElementState aXmlState,
- TLcRegXmlTagType aTag )
- {
- DEBUG("+ CLcRegistrationParser::CheckMandatoryTagsL" )
-
- if ( aXmlState == EXmlParserOnStartElement )
- {
- switch ( aTag )
- {
- case ELcXmlApplication:
- {
- if( iParsedTag != ELcXmlRunMode )
- {
- User::Leave( KErrNotSupported );
- }
- iParsingTag = ELcXmlApplication;
- }
- break;
- case ELcXmlWebService:
- case ELcXmlDocument:
- {
- if( iParsedTag != ELcXmlRunMode )
- {
- User::Leave( KErrNotSupported );
- }
- }
- break;
- case ELcXmlApplicationNative:
- case ELcXmlApplicationJava:
- case ELcXmlApplicationParams:
- {
- if( iParsingTag != ELcXmlApplication )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- default:
- break;
- }
- }
- else
- {
- // aXmlState == EXmlParserOnEndElement
- TInt count = iParserTreeTags.Count();
- if( count > 0 )
- {
- switch ( aTag )
- {
- case ELcXmlLocationCentreRegistration:
- {
- if( iParsedTag != ELcXmlService )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlService:
- {
- if( iParsedTag != ELcXmlApplication )
- {
- if( iParsedTag != ELcXmlDocument )
- {
- if( iParsedTag != ELcXmlWebService )
- {
- User::Leave( KErrNotSupported );
- }
- }
- }
- iParsedTag = ELcXmlService;
- break;
- }
- case ELcXmlRunMode:
- {
- iParsedTag = ELcXmlRunMode;
- break;
- }
- case ELcXmlWebService:
- {
- iParsedTag = ELcXmlWebService;
- break;
- }
- case ELcXmlDocument:
- {
- iParsedTag = ELcXmlDocument;
- break;
- }
- case ELcXmlApplication:
- {
- iParsedTag = ELcXmlApplication;
- break;
- }
- default:
- break;
- }
- iParserTreeTags.Remove( count-1 );
- }
- }
- DEBUG("- CLcRegistrationParser::CheckMandatoryTagsL" )
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::CheckAndReturnValidAttrL
-// -----------------------------------------------------------------------------
-//
-TLcRegXmlTagType CLcRegistrationParser::CheckAndReturnValidAttrL(
- TLcRegXmlTagType aElement,
- const Xml::RAttributeArray& aAttributes )
- {
- DEBUG("+ CLcRegistrationParser::CheckAndReturnValidAttrL" )
-
- TInt count( aAttributes.Count() );
- switch( aElement )
- {
- case ELcXmlLocationCentreRegistration:
- case ELcXmlFeature:
- case ELcXmlApplication:
- case ELcXmlApplicationParams:
- {
- if( count != 0 )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlService:
- case ELcXmlRegFileName:
- case ELcXmlRunMode:
- case ELcXmlWebService:
- case ELcXmlDocument:
- case ELcXmlApplicationNative:
- case ELcXmlApplicationJava:
- {
- // If all the above element's doesn't have any attribute
- // invalid registration file.
- if( count == 0 ||
- count > 1 )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlFileIcon:
- {
- // If all the above element's doesn't have any attribute
- // invalid registration file.
- if( count != 2 )
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- default:
- break;
- }
-
- // Checking attribute name validity
- TLcRegXmlTagType tagAttr = ELcXmlUnknown;
- // validate the attribute name.
- for( TInt i = 0; i < count; i++ )
- {
- tagAttr =
- TLcRegXmlTagInfo::TagAttrTypeL( aElement,
- aAttributes[i].Attribute().LocalName().DesC() );
-
- // Check the tag attribute value
- // if it is not according to XML schema then it's a invalid registration file
- if( aElement > ELcXmlApplicationParams && tagAttr == ELcXmlUnknown )
- {
- User::Leave( KErrNotSupported );
- }
- }
- DEBUG("- CLcRegistrationParser::CheckAndReturnValidAttrL" )
-
- return tagAttr;
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::CollectAttributeValueL
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::CollectAttributeValueL(
- const Xml::RTagInfo& aElement,
- const Xml::RAttributeArray& aAttributes )
- {
- DEBUG("+ CLcRegistrationParser::CollectAttributeValueL")
-
- TInt count( aAttributes.Count() );
- TParse parse;
- TBuf<KMaxFileName> fileName( iFileName );
-
- TLcRegXmlTagType tag =
- TLcRegXmlTagInfo::TagTypeL( aElement.LocalName().DesC() );
-
- // Check if the element's defiened in XML registration API
- // schema have any valid attribute if no attribute and attribute
- // is not valid one then don't registered.
- TLcRegXmlTagType tagAttr = CheckAndReturnValidAttrL( tag, aAttributes );
-
- DEBUG1(" Tag : %d", tagAttr)
-
- // If validity done then collect attributa value
- switch ( tagAttr )
- {
- case ELcXmlServiceAttrUuid:
- {
- TPtrC8 uidValue( aAttributes[0].Value().DesC() );
- if( uidValue.Length() > KUUIDMaxLength ||
- uidValue.Length() <= 0 )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( uidValue );
- iRegAppInfo->SetIdL( *iAttributeBuf );
- }
- break;
- case ELcXmlRegFileNameAttrLang:
- {
- TPtrC8 langValue( aAttributes[0].Value().DesC() );
- if( langValue.Length() > KMaxLangCodeLen )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( langValue );
- User::LeaveIfError( iRegAppInfo->SetNameLanguage( *iAttributeBuf ) );
- }
- break;
- case ELcXmlFileIconAttrfile:
- case ELcXmlFileIconAttrFrame:
- {
- // Set the file name and type
- for (TInt i = 0; i< count; i++ )
- {
- if( !aAttributes[i].Attribute().LocalName().DesC().Compare( KLcXmlFileIconAttrfile ) )
- {
- TPtrC8 iconfile( aAttributes[i].Value().DesC() );
- if( iconfile.Length() > KMaxFileName )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( iconfile );
- // Check the drive letter of the document name
- // if no drive letter then append drive letter of registration file name
- parse.Set( *iAttributeBuf,NULL,NULL );
- if( parse.Drive().Length() == 0 )
- {
- parse.Set(fileName,NULL,NULL);
- fileName.Zero();
- fileName.Append( parse.Drive() );
- fileName.Append( *iAttributeBuf );
- iAttributeBuf->Des().Copy( fileName );
- }
- iRegAppInfo->SetIconFileL( *iAttributeBuf );
- iRegAppInfo->SetIconFileType( CLcAppInfo::EMifFile );
- }
- else if( !aAttributes[i].Attribute().LocalName().DesC().Compare( KLcXmlFileIconAttrFrame ) )
- {
- // Set the frame no.
- TPtrC8 iconFrame( aAttributes[i].Value().DesC() );
- if( iconFrame.Length() > sizeof( TUint32 ) )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( iconFrame );
- TLex lexer( *iAttributeBuf );
- TUint32 frameNo = 0;
- TUint limit = 0xFFFFFFFF;
- User::LeaveIfError( lexer.BoundedVal( frameNo, EHex, limit ) );
- iRegAppInfo->SetFrameNo( frameNo );
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- }
- }
- break;
- case ELcXmlRunModeAttrDefault:
- {
- TPtrC8 runMode( aAttributes[0].Value().DesC() );
- if( runMode.Length() > KLcAppRunModeStandalone.iTypeLength )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( runMode );
- if( !iAttributeBuf->Des().Compare( KLcAppRunModeStandalone ) )
- {
- iRegAppInfo->SetLaunchMode( CLcLocationAppInfo::EStandAloneMode );
- }
- else if( !iAttributeBuf->Des().Compare(KLcAppRunModeChild) )
- {
- iRegAppInfo->SetLaunchMode( CLcLocationAppInfo::EChainedMode );
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- }
- break;
- case ELcXmlApplicationNativeAttrSid:
- {
- TPtrC8 appSid( aAttributes[0].Value().DesC() );
- // length must be greater than zero
- if( appSid.Length() <= 0 )
- {
- User::Leave( KErrNotSupported );
- }
- // Check if the SID is in [SID] format.
- // If it is then remove the '[' and ']' from it.
- if( appSid[0] == '[' &&
- appSid[appSid.Length() - 1 ] == ']' )
- {
- // Check SID length.If it is zero or
- // greater then 10(because sid is 8 and then
- // two angle brackets equals to 10) dont't registered
- if( appSid.Length() > 10 )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Zero();
- for(TInt i = 0; i < appSid.Length() - 2; i++ )
- {
- iAttributeBuf->Des().Append( appSid[i+1] );
- }
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- iRegAppInfo->SetApplicationDataL( *iAttributeBuf );
- iRegAppInfo->SetApplicationType( ELcNativeApplication );
- }
- break;
- case ELcXmlApplicationJavaAttrName:
- {
-
-
- // Obtain the UID corresponding to the Java Application
- // Midlet name.
- TPtrC8 javaName( aAttributes[0].Value().DesC() );
- if( javaName.Length() > KUUIDMaxLength )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy(javaName);
- iAttributeBuf->Des().Format(_L("%x"), JavaAppUidL( *iAttributeBuf ) );
-
- iRegAppInfo->SetApplicationDataL( *iAttributeBuf );
- iRegAppInfo->SetApplicationType(ELcNativeApplication);
-
-
- }
- break;
- case ELcXmlWebServiceAttrUrl:
- {
- TPtrC8 webUri( aAttributes[0].Value().DesC() );
- if( webUri.Length() > KUUIDMaxLength )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( webUri );
- iRegAppInfo->SetApplicationDataL( *iAttributeBuf );
- iRegAppInfo->SetApplicationType( ELcWebUrl );
- }
- break;
- case ELcXmlDocumentAttrFile:
- {
- TPtrC8 docFile( aAttributes[0].Value().DesC() );
- if( docFile.Length() > KMaxFileName )
- {
- User::Leave( KErrNotSupported );
- }
- iAttributeBuf->Des().Copy( docFile );
- // Check the drive letter of the document name
- // if no drive letter then append drive letter of registration file name
- parse.Set( *iAttributeBuf,NULL,NULL );
- if( parse.Drive().Length() == 0 )
- {
- parse.Set(fileName,NULL,NULL);
- fileName.Zero();
- fileName.Append( parse.Drive() );
- fileName.Append( *iAttributeBuf );
- iAttributeBuf->Des().Copy( fileName );
- }
- iRegAppInfo->SetApplicationDataL( *iAttributeBuf );
- iRegAppInfo->SetApplicationType( ELcDocument );
- }
- break;
- default:
- break;
- }
-
- DEBUG("- CLcRegistrationParser::CollectAttributeValueL")
- }
-
-// ---------------------------------------------------------------------------
-// void CLcRegistrationParser::JavaAppUidL
-// ---------------------------------------------------------------------------
-//
-TUint32 CLcRegistrationParser::JavaAppUidL( const TDesC& aMidletName )
- {
- TUint32 uidValue = 0;
- DEBUG("+ CLcRegistrationParser::JavaAppUidL")
-
- // Create a new Registry class
- Java::CJavaRegistry* registry = Java::CJavaRegistry::NewLC();
-
- // Obtain all the UIDs and check if the required UID corresponding
- // to the Midlet name exists
- RArray<TUid> uidArray;
- CleanupClosePushL( uidArray );
- registry->GetRegistryEntryUidsL( uidArray );
-
- for( TInt i = 0; i < uidArray.Count(); i++ )
- {
- // Obtain the Registry entry corresponding to the current UID
- Java::CJavaRegistryEntry* registryEntry = registry->RegistryEntryL( uidArray[i]);
- if( registryEntry )
- {
- if ( !aMidletName.Compare( registryEntry->Name() ) )
- {
- uidValue = ( registryEntry->Uid().iUid );
- delete registryEntry;
- break;
- }
- }
- delete registryEntry;
- }
-
- CleanupStack::PopAndDestroy( 2, registry ); // uidArray
- DEBUG1("UID %d", uidValue)
- DEBUG("- CLcRegistrationParser::JavaAppUidL")
- return uidValue;
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnEndElementL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnEndElementL(
- const Xml::RTagInfo& aElement,
- TInt /*aErrorCode*/ )
- {
- DEBUG("+ CLcRegistrationParser::OnEndElementL" )
-
- // End element
- TLcRegXmlTagType endTag =
- TLcRegXmlTagInfo::TagTypeL( aElement.LocalName().DesC() );
-
- if( endTag == ELcXmlUnknown )
- {
- User::Leave( KErrNotSupported );
- }
- // Check parser status
- CheckMandatoryTagsL( EXmlParserOnEndElement, endTag );
-
- // Read property/content for end element
- if (iReadContent)
- {
- HBufC* content = HBufC::NewLC( iReadContent->Length() );
- TPtr16 ptr = content->Des();
-
- // Convert property/content
- LcRegXmlParserUtils::Utf8ToUnicodeL( *iReadContent, ptr );
-
- // Set content on appinfo related objects and parser status
- SetContentL( endTag, *content );
-
- // Reset/delete read/converted content
- CleanupStack::PopAndDestroy( content );
-
- delete iReadContent;
- iReadContent = NULL;
- }
-
- DEBUG("- CLcRegistrationParser::OnEndElementL" )
- }
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::SetContentL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::SetContentL(
- TLcRegXmlTagType aTag,
- const TDesC& aContent )
- {
- DEBUG("+ CLcRegistrationParser::SetContentL" )
-
- switch( aTag )
- {
- case ELcXmlRegFileName:
- {
- iRegAppInfo->SetAppNameL( aContent );
- break;
- }
- case ELcXmlFeature:
- {
- if( !aContent.Compare( KLcAppCharSettings ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharSettings );
- }
- else if( !aContent.Compare( KLcAppCharPersonalData ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharPersonalDataManagement );
- }
- else if( !aContent.Compare( KLcAppCharNavigation ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharNavigation );
- }
- else if( !aContent.Compare( KLcAppCharMaps ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharMaps );
- }
- else if( !aContent.Compare( KLcAppCharLocationEvents ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharLocationBasedEvents );
- }
- else if( !aContent.Compare( KLcAppCharRemotePositioning ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharRemotePositioning );
- }
- else if( !aContent.Compare( KLcAppCharNetworkService ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharNetworkService );
- }
- else if( !aContent.Compare( KLcAppCharLocationMessaging ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharLocationEnhancedMessages );
- }
- else if( !aContent.Compare( KLcAppCharLocalContent ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharOnDeviceLocationBasedContent );
- }
- else if( !aContent.Compare( KLcAppCharRemoteContent ) )
- {
- iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharRemoteLocationBasedContent );
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- break;
- }
- case ELcXmlApplicationParams:
- {
- iRegAppInfo->SetCommandLineParametersL( aContent );
- break;
- }
- default:
- break;
- }
-
- DEBUG("- CLcRegistrationParser::SetContentL" )
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnContentL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnContentL(
- const TDesC8& aBytes, TInt /*aErrorCode*/ )
- {
- DEBUG("+ CLcRegistrationParser::OnContentL")
- // If there are content from a previous parsing
- // then we need to concatenate data/strings.
- if (iReadContent)
- {
- HBufC8* prevContent = iReadContent;
- CleanupStack::PushL( prevContent );
- iReadContent = NULL;
-
- iReadContent = HBufC8::NewL( prevContent->Length() + aBytes.Length() );
- iReadContent->Des().Append( *prevContent );
- iReadContent->Des().Append( aBytes );
- CleanupStack::PopAndDestroy( prevContent );
- }
- else
- {
- iReadContent = aBytes.AllocL();
- }
- DEBUG("- CLcRegistrationParser::OnContentL")
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnStartPrefixMappingL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnStartPrefixMappingL(
- const RString& /*aPrefix*/,
- const RString& /*aUri*/,
- TInt /*aErrorCode*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnEndPrefixMappingL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnEndPrefixMappingL(
- const RString& /*aPrefix*/, TInt /*aErrorCode*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnIgnorableWhiteSpaceL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnIgnorableWhiteSpaceL(
- const TDesC8& /*aBytes*/, TInt /*aErrorCode*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnSkippedEntityL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnSkippedEntityL(
- const RString& /*aName*/, TInt /*aErrorCode*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnProcessingInstructionL
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnProcessingInstructionL(
- const TDesC8& /*aTarget*/, const TDesC8& /*aData*/,
- TInt /*aErrorCode*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnOutOfData
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnOutOfData()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::OnError
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLcRegistrationParser::OnError( TInt aErrorCode )
- {
- iParserError = aErrorCode;
- }
-
-// -----------------------------------------------------------------------------
-// CLcRegistrationParser::GetExtendedInterface
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TAny* CLcRegistrationParser::GetExtendedInterface( const TInt32 /*aUid*/ )
- {
- return NULL;
- }
-
-// End of File