epoc32/include/authority8.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// 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
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// This file contains the API definition for the classes TAuthorityC8 and
williamr@2
    15
// CAuthority8. These classes provide non-modifying (TAuthorityC8) and 
williamr@2
    16
// modifying (CAuthority8) functionality for the components of an
williamr@2
    17
// Authority as described in RFC2396.
williamr@2
    18
// 
williamr@2
    19
//
williamr@2
    20
williamr@2
    21
williamr@2
    22
williamr@2
    23
/**
williamr@2
    24
 @file Authority8.h
williamr@2
    25
 @publishedAll
williamr@2
    26
 @released
williamr@2
    27
*/
williamr@2
    28
williamr@2
    29
#ifndef __AUTHORITY8_H__
williamr@2
    30
#define __AUTHORITY8_H__
williamr@2
    31
williamr@2
    32
// System includes
williamr@2
    33
//
williamr@2
    34
#include <e32base.h>
williamr@2
    35
#include <authoritycommon.h>
williamr@2
    36
williamr@2
    37
williamr@2
    38
/**
williamr@2
    39
Dependencies : TAuthorityComponent.
williamr@2
    40
Comments : Provides non-modifying functionality on the components of an authority 
williamr@2
    41
object as defined in RFC2396. There are 3 components; userinfo, host and port.
williamr@2
    42
williamr@2
    43
The	object holds descriptor pointers to the parsed authority components and a descriptor 
williamr@2
    44
pointer to the authority. It is non-owning. It uses 8-bit descriptors.
williamr@2
    45
williamr@2
    46
The functionality provided by this API allows the authority components to be extracted
williamr@2
    47
from the parsed authority, checked for their presence in the authority and be compared 
williamr@2
    48
with those in another TAuthorityC8 object.
williamr@2
    49
@publishedAll
williamr@2
    50
@released
williamr@2
    51
@since 6.0
williamr@2
    52
*/
williamr@2
    53
class TAuthorityC8
williamr@2
    54
	{
williamr@2
    55
public:	// Methods
williamr@2
    56
williamr@2
    57
	IMPORT_C const TDesC8& Extract(TAuthorityComponent aComponent) const;
williamr@2
    58
	IMPORT_C TBool IsPresent(TAuthorityComponent aComponent) const;
williamr@2
    59
	IMPORT_C TInt Compare(const TAuthorityC8& aAuthority, TAuthorityComponent aComponent) const;
williamr@2
    60
	IMPORT_C const TDesC8& AuthorityDes() const;
williamr@2
    61
	IMPORT_C HBufC* DisplayFormL(TAuthorityComponent aComponent = EAuthorityComplete ) const;
williamr@2
    62
williamr@2
    63
protected:	// Methods
williamr@2
    64
williamr@2
    65
	IMPORT_C TAuthorityC8();
williamr@2
    66
	void Reset();
williamr@2
    67
williamr@2
    68
protected:	// Attributes
williamr@2
    69
williamr@2
    70
	/** 
williamr@2
    71
		The array of descriptor pointers to the authority components.
williamr@2
    72
	 */
williamr@2
    73
	TPtrC8	iComponent[EAuthorityMaxComponents];
williamr@2
    74
williamr@2
    75
	/** 
williamr@2
    76
		The descriptor pointer to the authority.
williamr@2
    77
	 */
williamr@2
    78
	TPtrC8	iAuthorityDes;
williamr@2
    79
williamr@2
    80
/**
williamr@2
    81
	A friend class.
williamr@2
    82
	@see		CAuthority8
williamr@2
    83
	@since		6.0
williamr@2
    84
 */
williamr@2
    85
	friend class CAuthority8;
williamr@2
    86
williamr@2
    87
/**
williamr@2
    88
	A friend class used for testing.
williamr@2
    89
	@see		TAuthorityC8StateAccessor
williamr@2
    90
	@since		6.0
williamr@2
    91
 */
williamr@2
    92
	friend class TAuthorityC8StateAccessor;	
williamr@2
    93
williamr@2
    94
	};
williamr@2
    95
williamr@2
    96
/**
williamr@2
    97
Dependencies : TAuthorityC8
williamr@2
    98
Comments : Provides functionality to parse a descriptor into the components of an 
williamr@2
    99
authority as defined in RFC2396. There are 3 components; userinfo, host and port.
williamr@2
   100
williamr@2
   101
This uses 8-bit descriptors.
williamr@2
   102
williamr@2
   103
williamr@2
   104
Format of an authority is; [userinfo@]host[:port]
williamr@2
   105
williamr@2
   106
@warning The descriptor that is parsed by an object of this class will be referenced 
williamr@2
   107
by that object. If the original descriptor is no longer in scope there will be undefined 
williamr@2
   108
behaviour.
williamr@2
   109
@publishedAll
williamr@2
   110
@released
williamr@2
   111
@since 6.0
williamr@2
   112
*/
williamr@2
   113
class TAuthorityParser8 : public TAuthorityC8
williamr@2
   114
	{
williamr@2
   115
public:	// Methods
williamr@2
   116
williamr@2
   117
	IMPORT_C TAuthorityParser8();
williamr@2
   118
	IMPORT_C TInt Parse(const TDesC8& aAuthority);
williamr@2
   119
williamr@2
   120
	};
williamr@2
   121
williamr@2
   122
/**
williamr@2
   123
Dependencies : CBase, TAuthorityC8.
williamr@2
   124
Comments : Provides modifying functionality on the components of an authority object, as
williamr@2
   125
defined in RFC2396. There are 3 components; userinfo, host and port.
williamr@2
   126
williamr@2
   127
The	object holds parsed authority information. It is owning. It uses 8-bit descriptors.
williamr@2
   128
williamr@2
   129
The functionality provided by this API allows the authority components to be set or removed 
williamr@2
   130
from this parsed authority. Also, it provides a reference to TAuthorityC8 object so that 
williamr@2
   131
the non-modifying functionality can be used.
williamr@2
   132
@publishedAll
williamr@2
   133
@released
williamr@2
   134
@since 6.0
williamr@2
   135
*/
williamr@2
   136
class CAuthority8 : public CBase
williamr@2
   137
	{
williamr@2
   138
public: // Methods
williamr@2
   139
williamr@2
   140
	IMPORT_C static CAuthority8* NewL(const TAuthorityC8& aAuthority);
williamr@2
   141
	IMPORT_C static CAuthority8* NewLC(const TAuthorityC8& aAuthority);
williamr@2
   142
	IMPORT_C static CAuthority8* NewL();
williamr@2
   143
	IMPORT_C static CAuthority8* NewLC();
williamr@2
   144
	IMPORT_C ~CAuthority8();
williamr@2
   145
williamr@2
   146
	IMPORT_C const TAuthorityC8& Authority() const;
williamr@2
   147
	IMPORT_C void SetComponentL(const TDesC8& aData, TAuthorityComponent aComponent);
williamr@2
   148
	IMPORT_C void SetAndEscapeComponentL(const TDesC8& aData, TAuthorityComponent aComponent);
williamr@2
   149
	IMPORT_C void RemoveComponentL(TAuthorityComponent aComponent);
williamr@2
   150
williamr@2
   151
private:	// Methods
williamr@2
   152
williamr@2
   153
	CAuthority8(const TAuthorityC8& aAuthority);
williamr@2
   154
	void ConstructL();
williamr@2
   155
	void FormAuthorityL();
williamr@2
   156
williamr@2
   157
private:	// Attributes
williamr@2
   158
williamr@2
   159
	/** 
williamr@2
   160
		The descriptor buffer that contains the authority.
williamr@2
   161
	 */
williamr@2
   162
	HBufC8*			iAuthorityBuf;
williamr@2
   163
williamr@2
   164
	/** 
williamr@2
   165
		The parsed authority object.
williamr@2
   166
	 */
williamr@2
   167
	TAuthorityC8	iAuthority;
williamr@2
   168
williamr@2
   169
/**
williamr@2
   170
	A friend class used for testing.
williamr@2
   171
	@see		TAuthority8StateAccessor
williamr@2
   172
	@since		6.0
williamr@2
   173
 */
williamr@2
   174
	friend class TAuthority8StateAccessor;
williamr@2
   175
williamr@2
   176
	};
williamr@2
   177
williamr@2
   178
#endif	// __AUTHORITY8_H__