diff -r 000000000000 -r 7f85d04be362 upnpavcontrolpoint/avcpengine/src/upnpavcpenginehelper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpavcontrolpoint/avcpengine/src/upnpavcpenginehelper.cpp Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,99 @@ +/** @file +* Copyright (c) 2005-2006 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: helper class +* +*/ + + +#include "upnpavcpenginehelper.h" + +namespace UpnpAVCPEngine +{ + +// ----------------------------------------------------------------------------- +// UpnpAVCPEngine::StrToIntL +// ----------------------------------------------------------------------------- +// +TInt StrToIntL(const TDesC8& aValue) + { + TLex8 returnedLex( aValue ); + TInt value; + User::LeaveIfError( returnedLex.Val( value )); + return value; + } + +// ----------------------------------------------------------------------------- +// UpnpAVCPEngine::GetLastPathElementL +// ----------------------------------------------------------------------------- +// +HBufC8* GetLastPathElementL(TDes8& aPath) + { + RemoveSlashes(aPath); + TInt index = aPath.LocateReverse('/'); + if (index == KErrNotFound) + index = 0; + + HBufC8* result = aPath.Right(aPath.Length() - index).AllocL(); + TPtr8 ptr = result->Des(); + RemoveSlashes(ptr); + aPath.Delete( index, aPath.Length() - index); + return result; + } + +// ----------------------------------------------------------------------------- +// UpnpAVCPEngine::ParsePathToElementsL +// ----------------------------------------------------------------------------- +// +void ParsePathToElementsL(TPtr8 aPath, RPointerArray& aArray ) + { + TChar delimiter('/'); + RemoveSlashes(aPath); + + TPtrC8 ptr(aPath); + TInt i = 0; + + while(KErrNotFound != ptr.Locate(delimiter)) + { + aArray.Append( new (ELeave)TPtrC8() ); + aArray[i]->Set(ptr.Left((ptr.Locate(delimiter)))); + ptr.Set(ptr.Right(ptr.Length() - (ptr.Locate(delimiter) + 1)) ); + i++; + } + + aArray.Append( new (ELeave) TPtrC8() ); + aArray[i]->Set(ptr); + } + +// ----------------------------------------------------------------------------- +// UpnpAVCPEngine::RemoveSlashes +// ----------------------------------------------------------------------------- +// +void RemoveSlashes(TDes8& aPath) + { + if (aPath.Length() > 0 && aPath[0] == '/' ) + { + aPath.Delete(0,1); + } + + // remove ending '/' + TInt length = aPath.Length(); + if (length > 0 && aPath[length-1] == '/' ) + { + aPath.Delete(length-1,1); + } + } + +} + +// End of File