epoc32/include/uri16.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- a/epoc32/include/uri16.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/uri16.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,216 @@
-uri16.h
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This file contains the API definition for the classes TUriC16 and 
+// CUri16. These classes provide non-modifying (TUriC16) and modifying
+// (CUri16) functionality for the components of a Uri as described in 
+// RFC2396.
+// 
+//
+
+
+
+/**
+ @file Uri16.h
+ @publishedAll
+ @deprecated Deprecated in 9.1
+*/
+
+#ifndef __URI16_H__
+#define __URI16_H__
+
+// System includes
+//
+#include <e32base.h>
+#include <f32file.h> 
+#include <uricommon.h>
+
+
+class TUriC16
+/**
+	Dependencies : TUriComponent.
+	Comments : Provides non-modifying functionality on the components of a uri object as
+	defined in RFC2396. There are 5 components; scheme, authority, path, query and fragment.
+
+The	object holds descriptor pointers to the parsed uri components and a descriptor pointer 
+to the uri. It is non-owning. It uses 16-bit descriptors.
+
+	The functionality provided by this API allows the uri components to be extracted from the 
+	parsed uri, checked for their presence in the uri and be compared with those in another 
+	TUriC16 object.
+	@publishedAll
+	@deprecated Deprecated in 9.1
+	@since 6.0
+*/
+	{
+public:	// Methods
+
+	IMPORT_C HBufC* GetFileNameL() const;
+	IMPORT_C HBufC* GetFileNameL(TUriFileName aType) const;
+	IMPORT_C const TDesC16& Extract(TUriComponent aComponent) const;
+	IMPORT_C void UriWithoutFragment(TPtrC16& aUriNoFrag) const;
+
+	IMPORT_C TBool IsPresent(TUriComponent aComponent) const;
+	IMPORT_C TBool IsSchemeValid() const;
+
+	IMPORT_C TInt Compare(const TUriC16& aUri, TUriComponent aComponent) const;
+
+	IMPORT_C const TDesC16& UriDes() const;
+
+	IMPORT_C TInt Validate() const;
+	IMPORT_C TInt Equivalent(const TUriC16& aUri) const;
+	IMPORT_C HBufC* DisplayFormL(TUriComponent aComponent = EUriComplete) const;
+
+protected:	// Methods
+
+	IMPORT_C TUriC16();
+
+	void Reset();
+	
+private:	// Methods
+	
+	TInt ValidateL() const;
+	TInt EquivalentL(const TDesC16& aUri) const;
+
+protected:	// Attributes
+
+	/** The array of descriptor pointers to the uri components.
+	 */
+	TPtrC16		iComponent[EUriMaxComponents];
+
+	/** The descriptor pointer to the uri.
+	 */
+	TPtrC16		iUriDes;
+
+/**
+	A friend class.
+	@see		CUri16 
+	@since		6.0
+ */
+	friend class CUri16;
+
+/**
+	A friend class used for testing.
+	@see		TUriC16StateAccessor
+	@since		6.0
+	@internalComponent
+ */
+	friend class TUriC16StateAccessor;
+
+	};
+
+/**
+Dependencies : TUriC16
+Comments : Provides functionality to parse a descriptor into the components of a uri as 
+defined in RFC2396. There are 5 components; scheme, authority, path, query and fragment.
+
+It uses 16-bit descriptors.
+
+Format of a uri is; scheme://authority path?query\#fragment
+
+@warning The descriptor that is parsed by an object of this class will be referenced 
+by that object. If the original descriptor is no longer in scope there will be undefined 
+behaviour.
+@publishedAll
+@deprecated Deprecated in 9.1. Use UriUtils::CreateUriL() instead
+@since 6.0
+*/
+class TUriParser16 : public TUriC16
+	{
+public:	// Methods
+
+	IMPORT_C TUriParser16();
+	IMPORT_C TInt Parse(const TDesC16& aUri);
+	};
+
+/**
+	Dependencies : CBase, TUriC16.
+	Comments : Provides modifying functionality on the components of a uri object, as
+	defined in RFC2396. There are 5 components; scheme. authority, path, query and fragment.
+
+	The	object holds parsed uri information. It is owning. It uses 16-bit descriptors.
+
+	The functionality provided by this API allows the uri components to be set or removed 
+	from this parsed uri. Also, it provides a reference to TUriC16 object so that the non-modifying 
+	functionality can be used.
+	@publishedAll
+	@deprecated Deprecated in 9.1
+	@since 6.0
+*/
+class CUri16 : public CBase
+	{
+public: // Methods
+	IMPORT_C static CUri16* CreateFileUriL(const TDesC& aFullFileName, TUint aFlags = 0);
+	IMPORT_C static CUri16* CreatePrivateFileUriL(const TDesC& aRelativeFileName, TDriveNumber aDrive, TInt aFlags = 0);
+
+	IMPORT_C static CUri16* NewL(const TUriC16& aUri);
+	IMPORT_C static CUri16* NewLC(const TUriC16& aUri);
+	IMPORT_C static CUri16* NewL();
+	IMPORT_C static CUri16* NewLC();
+
+	IMPORT_C static CUri16* ResolveL(const TUriC16& aBaseUri, const TUriC16& aRefUri);
+
+	IMPORT_C ~CUri16();
+	IMPORT_C const TUriC16& Uri() const;
+	IMPORT_C void SetComponentL(const TDesC16& aData, TUriComponent aComponent);
+	IMPORT_C void RemoveComponentL(TUriComponent aComponent);
+
+private:	// Methods
+
+	CUri16(const TUriC16& aNewUri);
+	void ConstructL();
+	void FormUriL();
+	void InitializeFileUriComponentsL(const TDesC& aFileName, TDriveNumber aDrive, TUint aFlags);
+
+private:	// Attributes
+
+	/** The descriptor buffer that contains the uri.
+	 */
+	HBufC16*	iUriBuf;
+
+	/** The parsed uri object.
+	 */
+	TUriC16	iUri;
+
+/**
+	A friend class used for testing.
+	@see		TUri16StateAccessor
+	@since		6.0
+	@internalComponent
+ */
+	friend class TUri16StateAccessor;
+
+	};
+
+/** 	
+Do not use. Use TUriC8 instead
+@publishedAll
+@deprecated Deprecated in 9.1 
+ */
+typedef TUriC16			TUriC;
+
+/** 
+Do not use. Use TUriParser8 instead
+@publishedAll
+@deprecated Deprecated in 9.1 
+ */
+typedef TUriParser16	TUriParser;
+
+/** 
+Do not use. Use CUri8 instead
+@publishedAll
+@deprecated Deprecated in 9.1 
+ */
+typedef CUri16			CUri;
+
+#endif	// __URI16_H__