--- /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<TPtrC8>& 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