diff -r 75a71fdb4c92 -r 7d11f9a6646f applicationmanagement/server/src/nsmldmiapmatcher.cpp --- a/applicationmanagement/server/src/nsmldmiapmatcher.cpp Tue Feb 02 00:03:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,202 +0,0 @@ -/* - * Copyright (c) 2005 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: DM Tree module - * - */ - -#include "nsmldmiapmatcher.h" - -#include -#include - -// ----------------------------------------------------------------------------- -// CNSmlDMIAPMatcher* CNSmlDMIAPMatcher::NewL( MSmlDmCallback* aDmCallback ) -// ----------------------------------------------------------------------------- -CNSmlDMIAPMatcher* CNSmlDMIAPMatcher::NewL(MSmlDmCallback* aDmCallback) - { - CNSmlDMIAPMatcher* self = CNSmlDMIAPMatcher::NewLC(aDmCallback); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CNSmlDMIAPMatcher* CNSmlDMIAPMatcher::NewLC( MSmlDmCallback* aDmCallback ) -// ----------------------------------------------------------------------------- -CNSmlDMIAPMatcher* CNSmlDMIAPMatcher::NewLC(MSmlDmCallback* aDmCallback) - { - CNSmlDMIAPMatcher* self = new( ELeave ) CNSmlDMIAPMatcher; - CleanupStack::PushL(self); - self->ConstructL(aDmCallback); - return self; - } - -// ----------------------------------------------------------------------------- -// void CNSmlDMIAPMatcher::ConstructL( MSmlDmCallback* aDmCallback ) -// ----------------------------------------------------------------------------- -void CNSmlDMIAPMatcher::ConstructL(MSmlDmCallback* aDmCallback) - { - iCallback = aDmCallback; - } - -// ----------------------------------------------------------------------------- -// CNSmlDMIAPMatcher::~CNSmlDMIAPMatcher() -// ----------------------------------------------------------------------------- -CNSmlDMIAPMatcher::~CNSmlDMIAPMatcher() - { - } - -// ----------------------------------------------------------------------------- -// TInt CNSmlDMIAPMatcher::IAPIdFromURIL( const TDesC8& aURI ) -// ----------------------------------------------------------------------------- -TInt CNSmlDMIAPMatcher::IAPIdFromURIL(const TDesC8& aURI) - { - TInt iapId(KErrNotFound); - - MSmlDmAdapter::TError status; - CBufBase* allIAPs = CBufFlat::NewL(16); - CleanupStack::PushL(allIAPs); - iCallback->FetchLinkL(KNSmlDMIAPUri, *allIAPs, status); - TPtrC8 uri = RemoveDotSlash(aURI); - - if (status == MSmlDmAdapter::EOk && uri.Find(KNSmlDMIAPUri) == 0 - && allIAPs->Ptr(0).Find(LastURISeg(uri))>=0) - { - HBufC8* luid = iCallback->GetLuidAllocL(uri); - - if (luid->Length() ) - { - iapId = DesToInt(*luid); - } - delete luid; - } - - CleanupStack::PopAndDestroy(allIAPs); - - return iapId; - } - -// ----------------------------------------------------------------------------- -// HBufC8* CNSmlDMIAPMatcher::URIFromIAPIdL( TInt aIAPId ) -// ----------------------------------------------------------------------------- -HBufC8* CNSmlDMIAPMatcher::URIFromIAPIdL(TInt aIAPId) - { - CBufBase *allIAPs = CBufFlat::NewL(16); - CleanupStack::PushL(allIAPs); - MSmlDmAdapter::TError status; - - iCallback->FetchLinkL(KNSmlDMIAPUri, *allIAPs, status); - - if (status == MSmlDmAdapter::EOk) - { - TInt index(0); - TInt segStart(0); - - while (index != KErrNotFound) - { - TPtrC8 allIAPsptr = allIAPs->Ptr(segStart).Mid(0); - index = allIAPsptr.Locate('/'); - HBufC8* uriSeg = 0; - - if (index == KErrNotFound) - { - TPtrC8 uriSeg8Ptr = allIAPs->Ptr(segStart); - uriSeg = uriSeg8Ptr.AllocLC(); - } - else - { - TPtrC8 uriSeg8Ptr = allIAPs->Ptr(segStart).Mid( 0, index); - uriSeg = uriSeg8Ptr.AllocLC(); - } - - HBufC8* uri = HBufC8::NewLC(KNSmlDMIAPUri().Length() + 1 + uriSeg->Length() ); - - TPtr8 uriPtr = uri->Des(); - uriPtr.Format(KNSmlDMIAPUri); - uriPtr.Append(KNSmlDMSeparator8); - uriPtr.Append( *uriSeg); - HBufC8* luid = iCallback->GetLuidAllocL(uriPtr); - CleanupStack::PushL(luid); - - if (luid->Length() > 0) - { - TInt iapId = DesToInt(luid->Des()); - if (iapId == aIAPId) - { - CleanupStack::PopAndDestroy(); //luid - CleanupStack::Pop(); //uri - CleanupStack::PopAndDestroy(2); //uriSeg, allIAPs - return uri; - } - } - CleanupStack::PopAndDestroy(3); // luid, uri, uriSeg - - segStart += index + 1; - } - } - - CleanupStack::PopAndDestroy(); // allIAPs - - return 0; - } - -// ----------------------------------------------------------------------------- -// TInt CNSmlDMIAPMatcher::DesToInt(const TDesC& aLuid) -// ----------------------------------------------------------------------------- -TInt CNSmlDMIAPMatcher::DesToInt(const TDesC8& aLuid) const - { - TLex8 lex(aLuid); - TInt value = 0; - lex.Val(value); - return value; - } - -// ----------------------------------------------------------------------------- -// TPtrC8 CNSmlDMIAPMatcher::RemoveDotSlash(const TDesC8& aURI) const -// ----------------------------------------------------------------------------- -TPtrC8 CNSmlDMIAPMatcher::RemoveDotSlash(const TDesC8& aURI) const - { - if (aURI.Find(KNSmlDMIAPUriDotSlash)==0) - { - return aURI.Right(aURI.Length()-KNSmlDMIAPUriDotSlash().Length() ); - } - else - { - return aURI; - } - } - -// ----------------------------------------------------------------------------- -// CNSmlDMIAPMatcher::TPtrC8 LastURISeg(const TDesC8& aURI) -// Returns only the last uri segemnt -// ----------------------------------------------------------------------------- -TPtrC8 CNSmlDMIAPMatcher::LastURISeg(const TDesC8& aURI) const - { - TInt i; - for (i=aURI.Length()-1; i>=0; i--) - { - if (aURI[i]==KNSmlDMSlash) - { - break; - } - } - if (i==0) - { - return aURI; - } - else - { - return aURI.Mid(i+1); - } - } -