--- a/upnpmediaserver/contentdirectoryservice/inc/upnpcdutils.h Fri Sep 17 08:31:21 2010 +0300
+++ b/upnpmediaserver/contentdirectoryservice/inc/upnpcdutils.h Mon Nov 01 12:37:49 2010 +0200
@@ -1,261 +1,265 @@
-/** @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: ContentDirectory utils,
-*
-*/
-
-
-
-#ifndef CDUTILS_H
-#define CDUTILS_H
-
-// INCLUDES
-#include <xml/dom/xmlengdom.h>
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-
-/**
-* Set of utils functions.
-*
-* @lib AVContentDirectory.lib
-* @since Series60 3.1
-*/
-class UpnpCdUtils
-{
- public:
-
- static void ValidateFilePath(TDes8& aPath);
- static void ValidateFilePath(TDes& aPath);
- static void ValidateSrcUriL(TDesC8& aPath,TDesC8& aIp);
- /**
- * Removes white spaces (and '\r \n \t and space') from the given descriptor
- * @since Series S60 3.0
- * @param aString descriptor to be processed
- */
- static void RemoveWhiteSpacesL(TDes8& aString);
-
- /**
- * Checking if there are white spaces(and '\r \n \t and space' ) in the given descriptor
- * @since Series S60 3.1
- * @param aString
- * @return boolean
- */
- static TBool IsWhiteString(const TDesC8& aString);
-
- /**
- * Gets element
- * @since Series S60 3.1
- * @param aFragment
- * @return TXmlEngElement
- */
- static TXmlEngElement GetObjectElementL(RXmlEngDocument& aFragment);
-
- /**
- * Checks if Ref id value exists
- * @since Series S60 5.0 HN
- * @param aFragment
- * @return TBool
- */
- static TBool HasRefIdL( RXmlEngDocument& aFragment );
-
- /**
- * Encodes Xml
- * @since Series S60 3.1
- * @param aString
- * @return descriptor pointer
- */
- static HBufC8* EncodeXmlStringL(const TDesC8& aString);
-
-
- static HBufC* Des8ToDesL(const TDesC8& aString);
-
- /**
- * Conversion from TDes8 to TDes16
- * @since Series S60 3.1
- * @param aString
- * @return descriptor pointer
- */
- static HBufC* Des8ToDesLC(const TDesC8& aString);
-
- /**
- * Conversion from TDes16 to TDes8
- * @since Series S60 3.1
- * @param aString
- * @return descrptor pointer
- */
- static HBufC8* DesToDes8LC(const TDesC& aString);
-
- /*
- * Getter
- * @since Series S60 3.1
- * @param aUri
- * @return TInt
- */
- static TInt64 ResIdFromUriL(const TDesC8& aUri);
-
- /*
- * Getter
- * @since Series S60 3.1
- * @param aUri
- * @return TPtrC8
- */
- static TPtrC8 ResIdFromUriDesL(const TDesC8& aUri);
-
- /*
- * Sets Object Id
- * @since Series S60 3.1
- * @param aElement TXmlEngElement of the element
- * @param aId Id
- */
-
- static void SetObjectIdL(TXmlEngElement aElement, TInt aId);
- /*
- * Sets refID
- * @since Series S60 5.0 HN
- * @param aElement TXmlEngElement of the element
- * @param aRefId
- */
- static void SetObjectRefIdL(TXmlEngElement aElement, TInt aRefId);
-
- /*
- * Sets parentID
- * @since Series S60 5.0 HN
- * @param aElement TXmlEngElement of the element
- * @param aRefId
- */
- static void SetObjectParentIdL(TXmlEngElement aElement, TInt aParentId);
-
- /*
- * Sets restricted field
- * @since Series S60 5.0 HN
- * @param aElement TXmlEngElement of the element
- * @param aRestrictedFlag
- */
- static void SetRestrictedFieldL( TXmlEngElement aElement, TBool aRestrictedFlag );
-
- /*
- * Sets Container Id
- * @since Series S60 3.1
- * @param aElement TXmlEngElement of the element
- * @param aParentId ParentId
- */
- static void SetContainerIdL(TXmlEngElement aElement, TInt aParentId);
- static HBufC8* BuildImportUriLC(TInt aResId);
- static HBufC8* BuildImportUriShorterLC(TInt64 aResId);
- static HBufC8* BuildContentUriL(TInt aResId, const TDesC& aFileExten, TDesC8& aObjectId);
- static HBufC8* UpnpCdUtils::RandomizeL(TInt aRange);
- /**
- * Checks whether the element is required and removes the attribute notifying it
- * @since Series S60 3.0
- * @param aElement TXmlEngElement of the element
- * @param aObjId aCd pointer to the ContentDirectory object - it provides a function which deletes
- * a file from the private directory
- * @param ETrue if the element is required, otherwise EFalse
- */
- static TBool IsElementRequiredL(TXmlEngElement aElement);
- /**
- * Replaces the the first occurrence of true/false sequence with 1/0 within given descriptor
- * @since Series S60 3.0
- * @param aBuf descriptor pointer
- */
- static void ReplaceTrueFalse(HBufC8* aBuf);
-
- /**
- * Gets the full name with namespace of the given element.
- * @since Series S60 3.0
- * @param aElement an element to get the name of
- * @return descriptor with the namespace:name of the element,
- * the caller should delete it when it is no longer needed
- */
- static HBufC8* GetElmNameWithNsL(TXmlEngElement aElement);
-
- static HBufC* EscapeAposL(const TDesC& aValue);
- static TBool ValidateDateL( TPtrC8 aValue );
-
- /**
- * Converts TDesC8 to TUint
- */
- static TInt StringToTUint(const TDesC8& aStr, TUint* aInt);
-
- /**
- * Checks whether input string contains a specific number of digits and whether whole number fit into specific range
- * @since Series S60 3.0
- * @param aInput input descriptor [a number]
- * @param aNumber number of digits the descriptor should contain
- * @param aExactDigitsNumber should the number have exact number of digits or not
- * @param aRange the number mustn't exceed the specified range
- * @return ETrue if condition is fulfilled
- */
- static TBool AreDigitsInSpecificRange(const TDesC8& aInput, TInt aNumber, TBool aExactDigitsNumber, TUint32 aRange);
-
- /**
- * Validates res@duration attribute
- * @since Series S60 3.0
- * @param aInput descriptor containing duration value to validate
- * @return ETrue if res@duration has proper format
- */
- static TBool ValidateDurationValue(const TDesC8& aInput);
-
- /**
- * Split string into pieces with delimeter
- * @since Series S60 3.0
- * @param aLexeme a lexer to parse
- * @param aDelimeter delimeter
- */
- static void SplitStringByDelimeter(TLex8& aLexeme, TChar aDelimeter);
-
- /**
- * Skip characters in lexer
- * @since Series S60 3.0
- * @param aLexer a lexer to parse
- * @param aValue number of characters to skip
- */
- static void Skip(TLex8& aLexer, TInt aValue);
-
- /**
- * Extracts integer value from descriptor
- * @param aStr descriptor to be extracted
- * @param aInt integer to be fill in
- * @return error status
- */
- static TInt StringToInteger(const TDesC8& aStr, TInt* aInt);
-
- private:
- enum TPlaces
- {
- EYear = 4,
- EMonth = 7,
- EDay = 10,
- EHour = 13,
- EMinute = 16,
- ESecond = 19,
- EZone1 = 20,
- EHourOffset1 = 22,
- EMiliSecond = 23,
- EZone2 = 24,
- ETimeOffset1 = 25,
- EHourOffset2 = 26,
- ETimeOffset2 = 29
- };
- /*
- * C++ default constructor.
- */
- UpnpCdUtils();
-};
-
-#endif // CDUTILS_H
-
-// End of File
+/** @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: ContentDirectory utils,
+*
+*/
+
+
+
+#ifndef CDUTILS_H
+#define CDUTILS_H
+
+// INCLUDES
+#include <xmlengdom.h>
+#include <e32base.h>
+
+
+// CLASS DECLARATION
+
+/**
+* Set of utils functions.
+*
+* @lib AVContentDirectory.lib
+* @since Series60 3.1
+*/
+class UpnpCdUtils
+{
+ public:
+
+ static void ValidateFilePath(TDes8& aPath);
+ static void ValidateFilePath(TDes& aPath);
+ static void ValidateSrcUriL(TDesC8& aPath,TDesC8& aIp);
+ /**
+ * Removes white spaces (and '\r \n \t and space') from the given descriptor
+ * @since Series S60 3.0
+ * @param aString descriptor to be processed
+ */
+ static void RemoveWhiteSpacesL(TDes8& aString);
+
+ /**
+ * Checking if there are white spaces(and '\r \n \t and space' ) in the given descriptor
+ * @since Series S60 3.1
+ * @param aString
+ * @return boolean
+ */
+ static TBool IsWhiteString(const TDesC8& aString);
+
+ /**
+ * Gets element
+ * @since Series S60 3.1
+ * @param aFragment
+ * @return TXmlEngElement
+ */
+ static TXmlEngElement GetObjectElementL(RXmlEngDocument& aFragment);
+
+ /**
+ * Checks if Ref id value exists
+ * @since Series S60 5.0 HN
+ * @param aFragment
+ * @return TBool
+ */
+ static TBool HasRefIdL( RXmlEngDocument& aFragment );
+
+ /**
+ * Encodes Xml
+ * @since Series S60 3.1
+ * @param aString
+ * @return descriptor pointer
+ */
+ static HBufC8* EncodeXmlStringL(const TDesC8& aString);
+
+
+ static HBufC* Des8ToDesL(const TDesC8& aString);
+
+ /**
+ * Conversion from TDes8 to TDes16
+ * @since Series S60 3.1
+ * @param aString
+ * @return descriptor pointer
+ */
+ static HBufC* Des8ToDesLC(const TDesC8& aString);
+
+ /**
+ * Conversion from TDes16 to TDes8
+ * @since Series S60 3.1
+ * @param aString
+ * @return descrptor pointer
+ */
+ static HBufC8* DesToDes8LC(const TDesC& aString);
+
+ /*
+ * Getter
+ * @since Series S60 3.1
+ * @param aUri
+ * @return TInt
+ */
+ static TInt64 ResIdFromUriL(const TDesC8& aUri);
+
+ /*
+ * Getter
+ * @since Series S60 3.1
+ * @param aUri
+ * @return TPtrC8
+ */
+ static TPtrC8 ResIdFromUriDesL(const TDesC8& aUri);
+
+ /*
+ * Sets Object Id
+ * @since Series S60 3.1
+ * @param aElement TXmlEngElement of the element
+ * @param aId Id
+ */
+
+ static void SetObjectIdL(TXmlEngElement aElement, TInt aId);
+ /*
+ * Sets refID
+ * @since Series S60 5.0 HN
+ * @param aElement TXmlEngElement of the element
+ * @param aRefId
+ */
+ static void SetObjectRefIdL(TXmlEngElement aElement, TInt aRefId);
+
+ /*
+ * Sets parentID
+ * @since Series S60 5.0 HN
+ * @param aElement TXmlEngElement of the element
+ * @param aRefId
+ */
+ static void SetObjectParentIdL(TXmlEngElement aElement, TInt aParentId);
+
+ /*
+ * Sets restricted field
+ * @since Series S60 5.0 HN
+ * @param aElement TXmlEngElement of the element
+ * @param aRestrictedFlag
+ */
+ static void SetRestrictedFieldL( TXmlEngElement aElement, TBool aRestrictedFlag );
+
+ /*
+ * Sets Container Id
+ * @since Series S60 3.1
+ * @param aElement TXmlEngElement of the element
+ * @param aParentId ParentId
+ */
+ static void SetContainerIdL(TXmlEngElement aElement, TInt aParentId);
+ static HBufC8* BuildImportUriLC(TInt aResId);
+ static HBufC8* BuildImportUriShorterLC(TInt64 aResId);
+ static HBufC8* BuildContentUriL(TInt aResId, const TDesC& aFileExten, TDesC8& aObjectId);
+ static HBufC8* UpnpCdUtils::RandomizeL(TInt aRange);
+ /**
+ * Checks whether the element is required and removes the attribute notifying it
+ * @since Series S60 3.0
+ * @param aElement TXmlEngElement of the element
+ * @param aObjId aCd pointer to the ContentDirectory object - it provides a function which deletes
+ * a file from the private directory
+ * @param ETrue if the element is required, otherwise EFalse
+ */
+ static TBool IsElementRequiredL(TXmlEngElement aElement);
+ /**
+ * Replaces the the first occurrence of true/false sequence with 1/0 within given descriptor
+ * @since Series S60 3.0
+ * @param aBuf descriptor pointer
+ */
+ static void ReplaceTrueFalse(HBufC8* aBuf);
+
+ /**
+ * Gets the full name with namespace of the given element.
+ * @since Series S60 3.0
+ * @param aElement an element to get the name of
+ * @return descriptor with the namespace:name of the element,
+ * the caller should delete it when it is no longer needed
+ */
+ static HBufC8* GetElmNameWithNsL(TXmlEngElement aElement);
+
+ static HBufC* EscapeAposL(const TDesC& aValue);
+ static TBool ValidateDateL( TPtrC8 aValue );
+
+ /**
+ * Converts TDesC8 to TUint
+ */
+ static TInt StringToTUint(const TDesC8& aStr, TUint* aInt);
+
+ /**
+ * Checks whether input string contains a specific number of digits and whether whole number fit into specific range
+ * @since Series S60 3.0
+ * @param aInput input descriptor [a number]
+ * @param aNumber number of digits the descriptor should contain
+ * @param aExactDigitsNumber should the number have exact number of digits or not
+ * @param aRange the number mustn't exceed the specified range
+ * @return ETrue if condition is fulfilled
+ */
+ static TBool AreDigitsInSpecificRange(const TDesC8& aInput, TInt aNumber, TBool aExactDigitsNumber, TUint32 aRange);
+
+ /**
+ * Validates res@duration attribute
+ * @since Series S60 3.0
+ * @param aInput descriptor containing duration value to validate
+ * @return ETrue if res@duration has proper format
+ */
+ static TBool ValidateDurationValue(const TDesC8& aInput);
+
+ /**
+ * Split string into pieces with delimeter
+ * @since Series S60 3.0
+ * @param aLexeme a lexer to parse
+ * @param aDelimeter delimeter
+ */
+ static void SplitStringByDelimeter(TLex8& aLexeme, TChar aDelimeter);
+
+ /**
+ * Skip characters in lexer
+ * @since Series S60 3.0
+ * @param aLexer a lexer to parse
+ * @param aValue number of characters to skip
+ */
+ static void Skip(TLex8& aLexer, TInt aValue);
+
+ /**
+ * Extracts integer value from descriptor
+ * @param aStr descriptor to be extracted
+ * @param aInt integer to be fill in
+ * @return error status
+ */
+ static TInt StringToInteger(const TDesC8& aStr, TInt* aInt);
+
+
+private:
+ static TBool ValidateDateLength(TInt aDateLength);
+
+ private:
+ enum TPlaces
+ {
+ EYear = 4,
+ EMonth = 7,
+ EDay = 10,
+ EHour = 13,
+ EMinute = 16,
+ ESecond = 19,
+ EZone1 = 20,
+ EHourOffset1 = 22,
+ EMiliSecond = 23,
+ EZone2 = 24,
+ ETimeOffset1 = 25,
+ EHourOffset2 = 26,
+ ETimeOffset2 = 29
+ };
+ /*
+ * C++ default constructor.
+ */
+ UpnpCdUtils();
+};
+
+#endif // CDUTILS_H
+
+// End of File