williamr@2: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // This file contains the API definition for the classes TAuthorityC16 and williamr@2: // CAuthority16. These classes provide non-modifying (TAuthorityC16) and williamr@2: // modifying (CAuthority16) functionality for the components of an williamr@2: // Authority as described in RFC2396. williamr@2: // williamr@2: // williamr@2: williamr@2: /** williamr@2: @file Authority16.h williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1 williamr@2: */ williamr@2: williamr@2: #ifndef __AUTHORITY16_H__ williamr@2: #define __AUTHORITY16_H__ williamr@2: williamr@2: // System includes williamr@2: // williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: /** williamr@2: Dependencies : TAuthorityComponent. williamr@2: Comments : Provides non-modifying functionality on the components of an authority williamr@2: object as defined in RFC2396. There are 3 components; userinfo, host and port. williamr@2: williamr@2: The object holds descriptor pointers to the parsed authority components and a descriptor williamr@2: pointer to the authority. It is non-owning. It uses 16-bit descriptors. williamr@2: williamr@2: The functionality provided by this API allows the authority components to be extracted williamr@2: from the parsed authority, checked for their presence in the authority and be compared williamr@2: with those in another TAuthorityC16 object. williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1 williamr@2: @since 6.0 williamr@2: */ williamr@2: class TAuthorityC16 williamr@2: { williamr@2: public: // Methods williamr@2: williamr@2: IMPORT_C const TDesC16& Extract(TAuthorityComponent aComponent) const; williamr@2: IMPORT_C TBool IsPresent(TAuthorityComponent aComponent) const; williamr@2: IMPORT_C TInt Compare(const TAuthorityC16& aAuthority, TAuthorityComponent aComponent) const; williamr@2: IMPORT_C const TDesC16& AuthorityDes() const; williamr@2: IMPORT_C HBufC* DisplayFormL(TAuthorityComponent aComponent = EAuthorityComplete ) const; williamr@2: williamr@2: protected: // Methods williamr@2: williamr@2: williamr@2: IMPORT_C TAuthorityC16(); williamr@2: williamr@2: void Reset(); williamr@2: williamr@2: protected: // Attributes williamr@2: williamr@2: /** williamr@2: The array of descriptor pointers to the authority components. williamr@2: */ williamr@2: TPtrC16 iComponent[EAuthorityMaxComponents]; williamr@2: williamr@2: /** williamr@2: The descriptor pointer to the authority. williamr@2: */ williamr@2: TPtrC16 iAuthorityDes; williamr@2: williamr@2: /** williamr@2: A friend class. williamr@2: @see CAuthority16 williamr@2: @since 6.0 williamr@2: */ williamr@2: friend class CAuthority16; williamr@2: williamr@2: /** williamr@2: A friend class used for testing. williamr@2: @see TAuthorityC16StateAccessor williamr@2: @since 6.0 williamr@2: */ williamr@2: friend class TAuthorityC16StateAccessor; williamr@2: williamr@2: }; williamr@2: williamr@2: /** williamr@2: Dependencies : TAuthorityC16 williamr@2: Comments : Provides functionality to parse a descriptor into the components of an williamr@2: authority as defined in RFC2396. There are 3 components; userinfo, host and port. williamr@2: williamr@2: This uses 16-bit descriptors. williamr@2: williamr@2: Format of an authority is; [userinfo@]host[:port] williamr@2: williamr@2: @warning The descriptor that is parsed by an object of this class will be referenced williamr@2: by that object. If the original descriptor is no longer in scope there will be undefined williamr@2: behaviour. williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1. Use UriUtils::CreateAuthorityL() instead williamr@2: @since 6.0 williamr@2: */ williamr@2: class TAuthorityParser16 : public TAuthorityC16 williamr@2: { williamr@2: public: // Methods williamr@2: williamr@2: IMPORT_C TAuthorityParser16(); williamr@2: IMPORT_C TInt Parse(const TDesC16& aAuthority); williamr@2: williamr@2: }; williamr@2: williamr@2: /** williamr@2: Dependencies : CBase, TAuthorityC16. williamr@2: Comments : Provides modifying functionality on the components of an authority object, as williamr@2: defined in RFC2396. There are 3 components; userinfo, host and port. williamr@2: williamr@2: The object holds parsed authority information. It is owning. It uses 16-bit descriptors. williamr@2: williamr@2: The functionality provided by this API allows the authority components to be set or removed williamr@2: from this parsed authority. Also, it provides a reference to TAuthorityC16 object so that williamr@2: the non-modifying functionality can be used. williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1 williamr@2: @since 6.0 williamr@2: */ williamr@2: class CAuthority16 : public CBase williamr@2: { williamr@2: public: // Methods williamr@2: williamr@2: IMPORT_C static CAuthority16* NewL(const TAuthorityC16& aAuthority); williamr@2: IMPORT_C static CAuthority16* NewLC(const TAuthorityC16& aAuthority); williamr@2: IMPORT_C static CAuthority16* NewL(); williamr@2: IMPORT_C static CAuthority16* NewLC(); williamr@2: IMPORT_C ~CAuthority16(); williamr@2: williamr@2: IMPORT_C const TAuthorityC16& Authority() const; williamr@2: IMPORT_C void SetComponentL(const TDesC16& aData, TAuthorityComponent aComponent); williamr@2: IMPORT_C void SetAndEscapeComponentL(const TDesC16& aData, TAuthorityComponent aComponent); williamr@2: IMPORT_C void RemoveComponentL(TAuthorityComponent aComponent); williamr@2: williamr@2: private: // Methods williamr@2: williamr@2: CAuthority16(const TAuthorityC16& aAuthority); williamr@2: williamr@2: void ConstructL(); williamr@2: williamr@2: void FormAuthorityL(); williamr@2: williamr@2: private: // Attributes williamr@2: williamr@2: /** williamr@2: The descriptor buffer that contains the authority. williamr@2: */ williamr@2: HBufC16* iAuthorityBuf; williamr@2: williamr@2: /** williamr@2: The parsed authority object. williamr@2: */ williamr@2: TAuthorityC16 iAuthority; williamr@2: williamr@2: /** williamr@2: A friend class used for testing. williamr@2: @see TAuthority16StateAccessor williamr@2: @since 6.0 williamr@2: */ williamr@2: friend class TAuthority16StateAccessor; williamr@2: williamr@2: }; williamr@2: /** williamr@2: Do not use. Use TAuthorityC8 instead williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1 williamr@2: */ williamr@2: typedef TAuthorityC16 TAuthorityC; williamr@2: williamr@2: /** williamr@2: Do not use. Use TAuthorityParser8 instead williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1 williamr@2: */ williamr@2: typedef TAuthorityParser16 TAuthorityParser; williamr@2: williamr@2: /** williamr@2: Do not use. Use CAuthority8 instead williamr@2: @publishedAll williamr@2: @deprecated Deprecated in 9.1 williamr@2: */ williamr@2: typedef CAuthority16 CAuthority; williamr@2: williamr@2: #endif // __AUTHORITY16_H__