diff -r b9e36322dee2 -r e9457ebcc4df services/terminalmodeservice/src/upnptmserverdevicexmlparser.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/services/terminalmodeservice/src/upnptmserverdevicexmlparser.cpp Fri Jul 23 08:57:49 2010 +0300 @@ -0,0 +1,505 @@ +/** +* Copyright (c) 2010 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: CUpnpTmServerDeviceXmlParser class implementation. +* +*/ + +// System Includes +#include +#include + +// User Includes +#include "upnptmserverdevicexmlparser.h" +#include "upnpterminalmodeicon.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "upnptmserverdevicexmlparserTraces.h" +#endif + + +//Literals +_LIT8(KTextXml, "text/xml"); +_LIT8(KRootDeviceXmlLead, "10urn:schemas-upnp-org:device:TmServerDevice:1S60http://www.nokia.com"); +_LIT8(KRootDeviceXmlTrail,"urn:schemas-upnp-org:service:TmApplicationServer:1urn:upnp-org:serviceId:TmApplicationServer1/tmserverdevice1/tmapplicationserver1.xml/tmserverdevice1/tmapplicationserver1/control/tmserverdevice1/tmapplicationserver1/eventingurn:schemas-upnp-org:service:TmClientProfile:1" + "urn:upnp-org:serviceId:TmClientProfile1/tmserverdevice1/tmclientprofile1.xml/tmserverdevice1/tmclientprofile1/control/tmserverdevice1/tmclientprofile1/eventing"); +_LIT8(KAppServerSrvXml, "1 0 GetApplicationListAppListingFilterin A_ARG_TYPE_String ProfileIDin A_ARG_TYPE_ProfileID " + "AppListingoutA_ARG_TYPE_AppListLaunchApplicationAppIDinA_ARG_TYPE_AppIDProfileIDinA_ARG_TYPE_ProfileIDAppURI" + "outA_ARG_TYPE_URITerminateApplicationAppIDinA_ARG_TYPE_AppIDProfileIDinA_ARG_TYPE_ProfileIDTerminationResultout" + "A_ARG_TYPE_BoolGetApplicationStatusAppIDinA_ARG_TYPE_AppIDAppStatusoutA_ARG_TYPE_AppStatus" + "AppStatusUpdate stringAppListUpdate stringA_ARG_TYPE_AppStatus string A_ARG_TYPE_AppListstringA_ARG_TYPE_AppIDstring" + "A_ARG_TYPE_ProfileIDui40A_ARG_TYPE_URI uri A_ARG_TYPE_StringstringA_ARG_TYPE_Boolstringfalsefalse" + "true"); +_LIT8(KClientProfSrvXml, "1 0 GetMaxNumProfilesnumProfilesAllowedout MaxNumProfiles SetClientProfileprofileIDin" + "A_ARG_TYPE_ProfileIDclientProfileinA_ARG_TYPE_ClientProfileresultProfileoutA_ARG_TYPE_ClientProfileGetClientProfileprofileIDin" + "A_ARG_TYPE_ProfileIDclientProfileoutA_ARG_TYPE_ClientProfileUnusedProfileIDs stringA_ARG_TYPE_ClientProfile string" + "A_ARG_TYPE_ProfileIDui40MaxNumProfiles ui2 1 "); +_LIT8(KStartLine, "\n"); +_LIT8(KRootAttrb, " xmlns=\"urn:schemas-upnp-org:device-1-0\""); +_LIT8(KScpdUrl, "/tmserverdevice1/"); +_LIT8(KUpnpDeviceRoot, "root" ); +_LIT8(KStartIconList, "" ); +_LIT8(KEndIconList, "" ); +_LIT8(KStartIcon, "" ); +_LIT8(KEndIcon, "" ); +_LIT8(KStartMimeType, "" ); +_LIT8(KEndMimeType, "" ); +_LIT8(KStartWidth, "" ); +_LIT8(KEndWidth, "" ); +_LIT8(KStartHeight, "" ); +_LIT8(KEndHeight, "" ); +_LIT8(KStartDepth, "" ); +_LIT8(KEndDepth, "" ); +_LIT8(KStartUrl, "" ); +_LIT8(KEndUrl, "" ); +_LIT8(KPhoneManufacturer, "manufacturer" ); +_LIT8(KPhoneModel, "modelName" ); +_LIT8(KPhoneSerialNumber, "serialNumber" ); +_LIT8(KBtAddress, "btAddr" ); +_LIT8(KStartConnection, "startConnection" ); +_LIT8(KIconPath, "icon/"); +_LIT8(KConnTrue, "true"); +_LIT8(KConnFalse, "false"); +_LIT(KPublicDevicePath, "public\\TmServerDevice1\\"); +_LIT(KDeviceName, "TmServerDevice1.xml"); +_LIT(KAppServerSrvName, "TmApplicationServer1.xml"); +_LIT(KClientProfSrvName, "TmClientProfile1.xml"); +_LIT(KIconDirectory, "icon\\"); + + +// ============================ MEMBER FUNCTIONS =================================== + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::NewL +// Two-phased constructor. +// --------------------------------------------------------------------------------- +// +CUpnpTmServerDeviceXmlParser* CUpnpTmServerDeviceXmlParser::NewL( CUpnpTmServerDeviceInfo& aDeviceInfo ) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_NEWL_ENTRY ); + CUpnpTmServerDeviceXmlParser* self = new (ELeave) CUpnpTmServerDeviceXmlParser( aDeviceInfo ); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_NEWL_EXIT ); + return self; + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::~CUpnpTmServerDeviceXmlParser +// Destructor +// --------------------------------------------------------------------------------- +// +CUpnpTmServerDeviceXmlParser::~CUpnpTmServerDeviceXmlParser() + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_CUPNPTMSERVERDEVICEXMLPARSER_ENTRY ); + DeleteDirectory(); + iPhone.Close(); + iEtelSrv.Close(); + delete iParser; + iAppServerSrvDescription.Close(); + iClientProfSrvDescription.Close(); + iReadBuf.Close(); + iDeviceDescription.Close(); + iDescFilePath.Close(); + iClientProfSrvFilePath.Close(); + iAppServerSrvFilePath.Close(); + iDescriptionUri.Close(); + iFs.Close(); + iDeviceDir.Close(); + iIconDirectory.Close(); + delete iFileMan; + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_CUPNPTMSERVERDEVICEXMLPARSER_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::DeleteDirectory +// Deletes device and service description files and device icon files related to +// Terminal Mode Service located in the private directory. +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::DeleteDirectory() + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_DELETEDIRECTORY_ENTRY ); + iFs.Delete(iDescFilePath); + iFs.Delete(iAppServerSrvFilePath); + iFs.Delete(iClientProfSrvFilePath); + iFileMan->RmDir(iIconDirectory); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_DELETEDIRECTORY_EXIT ); + } +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::CUpnpTmServerDeviceXmlParser +// C++ default constructor can NOT contain any code, that +// might leave. +// --------------------------------------------------------------------------------- +// +CUpnpTmServerDeviceXmlParser::CUpnpTmServerDeviceXmlParser( CUpnpTmServerDeviceInfo& aDeviceInfo ) + :iDeviceInfo(aDeviceInfo) + { + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::ConstructL +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::ConstructL( ) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_CONSTRUCTL_ENTRY ); + User::LeaveIfError(iEtelSrv.Connect()); + User::LeaveIfError(iEtelSrv.LoadPhoneModule( KMmTsyModuleName )); + User::LeaveIfError(iPhone.Open( iEtelSrv, KMmTsyPhoneName )); + TRequestStatus status; + iPhone.GetPhoneId(status, iPhoneId); + User::WaitForRequest(status); + User::LeaveIfError(iFs.Connect()); + iAppServerSrvDescription.CreateL( KAppServerSrvXml() ); + iClientProfSrvDescription.CreateL( KClientProfSrvXml() ); + iParser = CParser::NewL(KTextXml(), *this); + iParser->EnableFeature(ESendFullContentInOneChunk); + iReadBuf.CreateMaxL(KBufSize); + iDeviceDescription.CreateMaxL(KBufSize); + iDeviceDescription.SetLength(KErrNone); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_CONSTRUCTL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnStartDocumentL +// Called when parser hits the start of the document +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnStartDocumentL(const RDocumentParameters& /*aDocParam*/, + TInt aErrorCode ) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTDOCUMENTL_ENTRY ); + User::LeaveIfError(aErrorCode); + + TBuf tmpBuf(iDeviceDir); + tmpBuf.Append(KDeviceName()); + iDescFilePath.CreateL(tmpBuf); + tmpBuf.Zero(); + + // Create TmAppServer service xml + tmpBuf.Copy(iDeviceDir); + tmpBuf.Append(KAppServerSrvName()); + RFile appServerSrvFile; + CleanupClosePushL(appServerSrvFile); + TInt err(KErrNone); + err = appServerSrvFile.Create(iFs, tmpBuf, EFileWrite); + if ( err == KErrAlreadyExists ) + { + User::LeaveIfError(appServerSrvFile.Open(iFs, tmpBuf, EFileWrite)); + } + else + { + User::LeaveIfError(err); + } + User::LeaveIfError(appServerSrvFile.Write(iAppServerSrvDescription)); + CleanupStack::PopAndDestroy( &appServerSrvFile ); + iAppServerSrvFilePath.CreateL(tmpBuf); + tmpBuf.Zero(); + + // Create TmClientProfile service xml + tmpBuf.Copy(iDeviceDir); + tmpBuf.Append(KClientProfSrvName()); + RFile clientProfSrvFile; + CleanupClosePushL(clientProfSrvFile); + err = clientProfSrvFile.Create(iFs, tmpBuf, EFileWrite); + if ( err == KErrAlreadyExists ) + { + User::LeaveIfError(clientProfSrvFile.Open(iFs, tmpBuf, EFileWrite)); + } + else + { + User::LeaveIfError(err); + } + User::LeaveIfError(clientProfSrvFile.Write(iClientProfSrvDescription)); + CleanupStack::PopAndDestroy( &clientProfSrvFile ); + iClientProfSrvFilePath.CreateL(tmpBuf); + + iDeviceDescription.Append(KStartLine()); + iDescriptionUri.CreateMaxL(UpnpString::KDefaultStringLength); + iDescriptionUri.SetLength(KErrNone); + iDescriptionUri.Append(KScpdUrl()); + iDescriptionUri.Append(KDeviceName()); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTDOCUMENTL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnEndDocumentL +// Called when parser hits the end of the document +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnEndDocumentL(TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDDOCUMENTL_ENTRY ); + User::LeaveIfError(aErrorCode); + + RFile deviceFile; + CleanupClosePushL(deviceFile); + TInt err = deviceFile.Create(iFs, iDescFilePath, EFileWrite); + OstTrace1( TRACE_NORMAL, CUPNPTMSERVERDEVICEXMLPARSER_ONENDDOCUMENTL, "CUpnpTmServerDeviceXmlParser::OnEndDocumentL;err=%d", err ); + if ( err == KErrAlreadyExists ) + { + User::LeaveIfError(deviceFile.Open(iFs, iDescFilePath, EFileWrite)); + } + else + { + User::LeaveIfError(err); + } + User::LeaveIfError(deviceFile.Write(iDeviceDescription)); + CleanupStack::PopAndDestroy(&deviceFile); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDDOCUMENTL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnStartElementL +// Called when parser hits the opening tag +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnStartElementL(const RTagInfo& aElement, const RAttributeArray& /*aAttributes*/, TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTELEMENTL_ENTRY ); + User::LeaveIfError(aErrorCode); + + iDeviceDescription.Append(UpnpCD::KKorp); + iDeviceDescription.Append(aElement.LocalName().DesC()); + + if(aElement.LocalName().DesC().Compare(KUpnpDeviceRoot) == 0) + { + iDeviceDescription.Append(KRootAttrb()); + } + iDeviceDescription.Append(UpnpCD::KProk); + + if(aElement.LocalName().DesC().Compare(KPhoneManufacturer) == 0) + { + iDeviceDescription.Append(iPhoneId.iManufacturer); + } + else if(aElement.LocalName().DesC().Compare(KPhoneModel) == 0) + { + iDeviceDescription.Append(iPhoneId.iModel); + } + else if(aElement.LocalName().DesC().Compare(KPhoneSerialNumber) == 0) + { + iDeviceDescription.Append(iPhoneId.iSerialNumber); + } + else if(aElement.LocalName().DesC().Compare(KBtAddress) == 0) + { + iDeviceDescription.Append(iDeviceInfo.BtAddress()); + } + else if(aElement.LocalName().DesC().Compare(KStartConnection) == 0) + { + if ( iDeviceInfo.StartConn() ) + { + iDeviceDescription.Append(KConnTrue); + } + else + { + iDeviceDescription.Append(KConnFalse); + } + } + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTELEMENTL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnEndElementL +// Called when parser hits the closing tag +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnEndElementL( const RTagInfo& aElement, TInt aErrorCode ) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDELEMENTL_ENTRY ); + User::LeaveIfError(aErrorCode); + + iDeviceDescription.Append( UpnpCD::KKorp ); + iDeviceDescription.Append( UpnpString::KSlash ); + iDeviceDescription.Append( aElement.LocalName().DesC() ); + iDeviceDescription.Append( UpnpCD::KProk ); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDELEMENTL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnContentL +// Provides the content/value of the element/tag +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnContentL( const TDesC8& aBytes, TInt aErrorCode ) + { + User::LeaveIfError(aErrorCode); + iDeviceDescription.Append(aBytes); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::StartL +// Method which inputs xml formatted buffer content to the XML Parser +// and invokes parsing +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::StartL() + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_STARTL_ENTRY ); + TDriveNumber drive = RFs::GetSystemDrive(); //Find system's drive + TBuf privatePath; + TInt err = iFs.PrivatePath(privatePath); //Find the application's private path + // a) If the Private Path is not found (for whatever reasons), + // Create a private path in the System Drive + if( err == KErrNotFound ) + { + User::LeaveIfError( iFs.CreatePrivatePath(drive) ); + } + // b) If Private Path is found but is a read-only or non-persistent drive + // Create a private path in the system drive else use it + else if( err == KErrNone ) + { + TDriveInfo driveInfo; + User::LeaveIfError( iFs.Drive(driveInfo)); + TUint driveAttr = driveInfo.iDriveAtt; + if ( driveAttr == KDriveAttRom ) + { + User::LeaveIfError( iFs.CreatePrivatePath(drive) ); + } + } + else + { + OstTrace1( TRACE_ERROR, CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;err=%d", err ); + User::Leave(err); + } + privatePath.Append(KPublicDevicePath()); + err = iFs.MkDirAll(privatePath); + if( err && err != KErrAlreadyExists ) + { + OstTrace1( TRACE_ERROR, DUP1_CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;err=%d", err ); + User::LeaveIfError(err); + } + iDeviceDir.CreateL(privatePath); + RBuf8 rootDeviceBuf; + CleanupClosePushL(rootDeviceBuf); + rootDeviceBuf.CreateL(KBufSize); + rootDeviceBuf.Append(KRootDeviceXmlLead()); + // Appends the device icon list to the device xml buffer + const RPointerArray& deviceList = iDeviceInfo.DeviceIconList(); + TInt iconCount = deviceList.Count(); + if ( iconCount > KErrNone ) + { + privatePath.Append(KIconDirectory()); + err = iFs.MkDir(privatePath); // Creates icon directory + if( err && err != KErrAlreadyExists ) + { + OstTrace1( TRACE_ERROR, DUP2_CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;err=%d", err ); + User::LeaveIfError(err); + } + iIconDirectory.CreateL(privatePath); + OstTrace1( TRACE_ERROR, DUP3_CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;iconCount=%d", iconCount ); + rootDeviceBuf.Append(KStartIconList); + for ( TInt i(0); i < iconCount; i++ ) + { + rootDeviceBuf.Append(KStartIcon); + rootDeviceBuf.Append(KStartMimeType); + rootDeviceBuf.Append(deviceList[i]->MimeType()); + rootDeviceBuf.Append(KEndMimeType); + rootDeviceBuf.Append(KStartWidth); + rootDeviceBuf.AppendNum(deviceList[i]->Width()); + rootDeviceBuf.Append(KEndWidth); + rootDeviceBuf.Append(KStartHeight); + rootDeviceBuf.AppendNum(deviceList[i]->Height()); + rootDeviceBuf.Append(KEndHeight); + rootDeviceBuf.Append(KStartDepth); + rootDeviceBuf.AppendNum(deviceList[i]->Depth()); + rootDeviceBuf.Append(KEndDepth); + rootDeviceBuf.Append(KStartUrl); + + TBuf8 iconBuf; + const TDesC& fileName = deviceList[i]->IconFilename(); + iconBuf.Copy(fileName); + TBuf8 iconRelativeUrl(KScpdUrl()); + // Extracts the actual input filepath and creates the relative url for the icon + // to be provided in the device xml file + iconRelativeUrl.Append(KIconPath()); + // Extracts only filename and appends the same to url + iconRelativeUrl.Append(iconBuf.Mid((iconBuf.LocateReverse(KDirectorySeparator))+1)); + rootDeviceBuf.Append(iconRelativeUrl); + delete iFileMan; + iFileMan = NULL; + iFileMan = CFileMan::NewL(iFs) ; + // copies icon files to the private device directory + User::LeaveIfError(iFileMan->Copy(fileName,iIconDirectory)); + rootDeviceBuf.Append(KEndUrl); + rootDeviceBuf.Append(KEndIcon); + } + rootDeviceBuf.Append(KEndIconList); + } + rootDeviceBuf.Append( iDeviceInfo.DeviceInfo()); + rootDeviceBuf.Append( KRootDeviceXmlTrail() ); + + ParseL(*iParser, rootDeviceBuf ); + CleanupStack::PopAndDestroy(&rootDeviceBuf); + + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_STARTL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnStartPrefixMappingL +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnStartPrefixMappingL(const RString& /*aPrefix*/, const RString& /*aUri*/, TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTPREFIXMAPPINGL_ENTRY ); + User::LeaveIfError(aErrorCode); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTPREFIXMAPPINGL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnEndPrefixMappingL +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnEndPrefixMappingL(const RString& /*aPrefix*/, TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDPREFIXMAPPINGL_ENTRY ); + User::LeaveIfError(aErrorCode); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDPREFIXMAPPINGL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnIgnorableWhiteSpaceL +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnIgnorableWhiteSpaceL(const TDesC8& /*aBytes*/, TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONIGNORABLEWHITESPACEL_ENTRY ); + User::LeaveIfError(aErrorCode); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONIGNORABLEWHITESPACEL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnSkippedEntityL +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnSkippedEntityL(const RString& /*aName*/, TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSKIPPEDENTITYL_ENTRY ); + User::LeaveIfError(aErrorCode); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSKIPPEDENTITYL_EXIT ); + } + +// --------------------------------------------------------------------------------- +// CUpnpTmServerDeviceXmlParser::OnProcessingInstructionL +// --------------------------------------------------------------------------------- +// +void CUpnpTmServerDeviceXmlParser::OnProcessingInstructionL(const TDesC8& /*aTarget*/, const TDesC8& /*aData*/, TInt aErrorCode) + { + OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONPROCESSINGINSTRUCTIONL_ENTRY ); + User::LeaveIfError(aErrorCode); + OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONPROCESSINGINSTRUCTIONL_EXIT ); + } + +