epoc32/include/mw/httperr.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
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@4
     4
// under the terms of "Eclipse Public License v1.0"
williamr@2
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.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
//
williamr@2
    15
williamr@2
    16
/**
williamr@2
    17
 @file httperr.h
williamr@2
    18
 @warning : This file contains Rose Model ID comments - please do not delete
williamr@2
    19
*/
williamr@2
    20
williamr@2
    21
#ifndef __HTTPERR_H__
williamr@2
    22
#define __HTTPERR_H__
williamr@2
    23
williamr@2
    24
// System includes
williamr@2
    25
#include <e32std.h>
williamr@2
    26
williamr@2
    27
//##ModelId=3C4C18750141
williamr@2
    28
class HTTPStatus
williamr@2
    29
/** 
williamr@2
    30
The complete set of HTTP Status codes, as defined in RFC2616.
williamr@2
    31
@publishedAll
williamr@2
    32
@released
williamr@2
    33
*/
williamr@2
    34
	{
williamr@2
    35
public:
williamr@2
    36
	enum 
williamr@2
    37
		{
williamr@2
    38
		/** 'Informational' range of codes 1xx 
williamr@2
    39
		*/ 
williamr@2
    40
		/** Continue.
williamr@2
    41
		*/
williamr@2
    42
		EContinue						= 100, 
williamr@2
    43
		/** Switching Protocols.
williamr@2
    44
		*/
williamr@2
    45
		ESwitchingProtocols				= 101,  
williamr@2
    46
		/** 'Successful' range of codes 2xx 
williamr@2
    47
		*/
williamr@2
    48
		/** Ok.
williamr@2
    49
		*/
williamr@2
    50
		EOk								= 200,
williamr@2
    51
		/** Created.
williamr@2
    52
		*/
williamr@2
    53
		ECreated						= 201,  
williamr@2
    54
		/** The entry has been accepted.
williamr@2
    55
		*/
williamr@2
    56
		EAccepted						= 202,
williamr@2
    57
		/** Non-Authoritative Information.
williamr@2
    58
		*/
williamr@2
    59
		ENonAuthoritativeInfo			= 203,
williamr@2
    60
		/** No Content.
williamr@2
    61
		*/
williamr@2
    62
		ENoContent						= 204,
williamr@2
    63
		/** Reset Content.
williamr@2
    64
		*/
williamr@2
    65
		EResetContent					= 205, 
williamr@2
    66
		/** Partial Content.
williamr@2
    67
		*/
williamr@2
    68
		EPartialContent					= 206,
williamr@2
    69
		/** 'Redirection' range of codes 3xx 
williamr@2
    70
		*/
williamr@2
    71
		/** Multiple Choices.
williamr@2
    72
		*/
williamr@2
    73
		EMultipleChoices				= 300, 
williamr@2
    74
		/** Moved Permanently.
williamr@2
    75
		*/
williamr@2
    76
		EMovedPermanently				= 301,
williamr@2
    77
		/** Found.
williamr@2
    78
		Note, this is deprecated in HTTP/1.1 - 307 will be used instead
williamr@2
    79
		*/
williamr@2
    80
		EFound							= 302,  
williamr@2
    81
		/** See Other.
williamr@2
    82
		*/
williamr@2
    83
		ESeeOther						= 303,
williamr@2
    84
		/** Not Modified.
williamr@2
    85
		*/
williamr@2
    86
		ENotModified					= 304,
williamr@2
    87
		/** Use Proxy.
williamr@2
    88
		*/
williamr@2
    89
		EUseProxy						= 305,
williamr@2
    90
		/** Unused.
williamr@2
    91
		*/
williamr@2
    92
		EUnused							= 306,
williamr@2
    93
		/** Temporary Redirect.
williamr@2
    94
		*/
williamr@2
    95
		ETemporaryRedirect				= 307,
williamr@2
    96
		/** 'Client Error' range of codes 4xx 
williamr@2
    97
		*/
williamr@2
    98
		/** Bad Request.
williamr@2
    99
		*/
williamr@2
   100
		EBadRequest						= 400,
williamr@2
   101
		/** Unauthorized.
williamr@2
   102
		*/
williamr@2
   103
		EUnauthorized					= 401,
williamr@2
   104
		/** Payment Required. Note, this is reserved in HTTP/1.1
williamr@2
   105
		*/
williamr@2
   106
		EPaymentRequired				= 402, 
williamr@2
   107
		/** Forbidden.
williamr@2
   108
		*/
williamr@2
   109
		EForbidden						= 403,
williamr@2
   110
		/** Not Found.
williamr@2
   111
		*/
williamr@2
   112
		ENotFound						= 404,
williamr@2
   113
		/** Method Not Allowed.
williamr@2
   114
		*/
williamr@2
   115
		EMethodNotAllowed				= 405,
williamr@2
   116
		/** Not Acceptable.
williamr@2
   117
		*/
williamr@2
   118
		ENotAcceptable					= 406,
williamr@2
   119
		/** Proxy Authentication Required.
williamr@2
   120
		*/
williamr@2
   121
		EProxyAuthenticationRequired	= 407,
williamr@2
   122
		/** Request Timeout.
williamr@2
   123
		*/
williamr@2
   124
		ERequestTimeout					= 408,
williamr@2
   125
		/** Conflict.
williamr@2
   126
		*/
williamr@2
   127
		EConflict						= 409,
williamr@2
   128
		/** Gone.
williamr@2
   129
		*/
williamr@2
   130
		EGone							= 410,
williamr@2
   131
		/** Length Required.
williamr@2
   132
		*/
williamr@2
   133
		ELengthRequired					= 411,
williamr@2
   134
		/** Precondition Failed.
williamr@2
   135
		*/
williamr@2
   136
		EPreconditionFailed				= 412,
williamr@2
   137
		/** Request Entity Too Large. 
williamr@2
   138
		*/
williamr@2
   139
		ERequestEntityTooLarge			= 413,
williamr@2
   140
		/** Request-URI Too Long.
williamr@2
   141
		*/
williamr@2
   142
		ERequestURITooLong				= 414,
williamr@2
   143
		/** Unsupported Media Type.
williamr@2
   144
		*/
williamr@2
   145
		EUnsupportedMediaType			= 415,
williamr@2
   146
		/** Requested Range Not Satisfiable.
williamr@2
   147
		*/
williamr@2
   148
		ERequestedRangeNotSatisfiable	= 416,
williamr@2
   149
		/** Expectation Failed.
williamr@2
   150
		*/
williamr@2
   151
		EExpectationFailed				= 417,
williamr@2
   152
		/** 'Server Error' range of codes 5xx 
williamr@2
   153
		*/
williamr@2
   154
		/** Internal Server Error.
williamr@2
   155
		*/
williamr@2
   156
		EInternalServerError			= 500,
williamr@2
   157
		/** Not Implemented.
williamr@2
   158
		*/
williamr@2
   159
		ENotImplemented					= 501,
williamr@2
   160
		/** Bad Gateway.
williamr@2
   161
		*/
williamr@2
   162
		EBadGateway						= 502,
williamr@2
   163
		/** Service Unavailable.
williamr@2
   164
		*/
williamr@2
   165
		EServiceUnavailable				= 503, 
williamr@2
   166
		/** Gateway Timeout.
williamr@2
   167
		*/
williamr@2
   168
		EGatewayTimeout					= 504,
williamr@2
   169
		/** HTTP Version Not Supported.
williamr@2
   170
		*/
williamr@2
   171
		EHTTPVersionNotSupported		= 505
williamr@2
   172
		};
williamr@2
   173
williamr@2
   174
		/** Is the supplied status code in the 1xx Informational range?
williamr@2
   175
		@param aStatus Is the supplied status code in the 1xx Informational range?
williamr@2
   176
		@return ETrue if the specified status code is in the 1xx Informational range.
williamr@2
   177
		##ModelId=3C4C18750162
williamr@2
   178
		*/
williamr@2
   179
		inline static TBool IsInformational(TInt aStatus);
williamr@2
   180
		
williamr@2
   181
		
williamr@2
   182
		/** Is the supplied status code in the 2xx Successful range?
williamr@2
   183
		@param aStatus Is the supplied status code in the 2xx Successful range?
williamr@2
   184
		@return ETrue if the specified status code is in the 2xx Successful range
williamr@2
   185
		##ModelId=3C4C18750160
williamr@2
   186
		*/
williamr@2
   187
		inline static TBool IsSuccessful(TInt aStatus);
williamr@2
   188
williamr@2
   189
		/** Is the supplied status code in the 3xx Redirection range? 
williamr@2
   190
		@param aStatus Is the supplied status code in the 3xx Redirection range?
williamr@2
   191
		@return	ETrue if the specified status code is in the 3xx Redirection range.
williamr@2
   192
		##ModelId=3C4C18750159
williamr@2
   193
		*/
williamr@2
   194
		inline static TBool IsRedirection(TInt aStatus);
williamr@2
   195
williamr@2
   196
		/** Is the supplied status code in the 4xx Client Error range? 
williamr@2
   197
		@param aStatus Is the supplied status code in the 4xx Client Error range?
williamr@2
   198
		@return ETrue if the specified status code is in the 4xx Client Error range.
williamr@2
   199
		##ModelId=3C4C18750157
williamr@2
   200
		*/
williamr@2
   201
		inline static TBool IsClientError(TInt aStatus);
williamr@2
   202
williamr@2
   203
		/** Is the supplied status code in the 5xx Server Error range? 
williamr@2
   204
		@param aStatus Is the supplied status code in the 5xx Server Error range?
williamr@2
   205
		@return ETrue if the specified status code is in the 5xx Server Error range.
williamr@2
   206
		##ModelId=3C4C18750155
williamr@2
   207
		*/
williamr@2
   208
		inline static TBool IsServerError(TInt aStatus);
williamr@2
   209
	};
williamr@2
   210
williamr@2
   211
//
williamr@2
   212
// HTTP Panic codes
williamr@2
   213
//
williamr@2
   214
williamr@2
   215
#include <e32base.h>
williamr@2
   216
williamr@2
   217
// HTTPPanic::Panic(HTTPPanic:: )
williamr@2
   218
williamr@2
   219
//##ModelId=3C4C18740352
williamr@2
   220
class HTTPPanic
williamr@2
   221
/**
williamr@2
   222
HTTP panic codes
williamr@2
   223
@publishedAll
williamr@2
   224
@released
williamr@2
   225
*/
williamr@2
   226
	{
williamr@2
   227
public:
williamr@2
   228
	enum THTTPPanic
williamr@2
   229
		{
williamr@2
   230
		/** RHTTPSession session is already open. ( Panic HTTP-CORE 0 )
williamr@2
   231
		*/
williamr@2
   232
		ESessionAlreadyOpen,
williamr@2
   233
		/** Specified field is missing. ( Panic HTTP-CORE 1 )
williamr@2
   234
		*/
williamr@2
   235
		EHeaderFieldMissing,
williamr@2
   236
		/** Unused. ( Panic HTTP-CORE 2 )
williamr@2
   237
		*/
williamr@2
   238
		EHeaderParamMissing,
williamr@4
   239
		/** Unused. ( Panic HTTP-CORE 3 )
williamr@2
   240
		*/
williamr@2
   241
		EHeaderInvalidPart,
williamr@2
   242
		/** Mismatch between header's type and its attempted use. ( Panic HTTP-CORE 4 )
williamr@2
   243
		*/
williamr@2
   244
		EHeaderInvalidType,
williamr@2
   245
		/** Unused. ( Panic HTTP-CORE 5 )
williamr@2
   246
		*/
williamr@2
   247
		ETransactionEventOutstanding,
williamr@2
   248
		/** A transaction error occurred, and the MHFRunError() in use didn't handle it. ( Panic HTTP-CORE 6 )
williamr@2
   249
		*/
williamr@2
   250
		ETransactionUnhandledError,
williamr@4
   251
		/** Attempted to add a filter while there is a transaction outstanding. ( Panic HTTP-CORE 7 )
williamr@2
   252
		*/
williamr@2
   253
		EAddingFilterWithOutstandingTransactions,
williamr@2
   254
		/** Attempted to add a filter at a position not between the protocol handler and the client. ( Panic HTTP-CORE 8 )
williamr@2
   255
		*/
williamr@2
   256
		EFilterInvalidPosition,
williamr@2
   257
		/** CHTTPEncoder object destroyed without its data being released. ( Panic HTTP-CORE 9 )
williamr@2
   258
		*/
williamr@2
   259
		EHTTPFormDataUnreleased,
williamr@2
   260
		/** CHTTPEncoder object at the wrong state for adding data. ( Panic HTTP-CORE 10 ) 
williamr@2
   261
		*/
williamr@2
   262
		EHTTPFormSupplyingData,
williamr@2
   263
		/** Unused. ( Panic HTTP-CORE 11 )
williamr@2
   264
		*/
williamr@2
   265
		EValidationFilterFailure,
williamr@2
   266
		/** Invalid request data. ( Panic HTTP-CORE 12 )
williamr@2
   267
		*/
williamr@2
   268
		EInvalidTxData,
williamr@2
   269
		/** Invalid response data. ( Panic HTTP-CORE 13 )
williamr@2
   270
		*/
williamr@2
   271
		EInvalidRxData,
williamr@2
   272
		/** Unused. ( Panic HTTP-CORE 14 )
williamr@2
   273
		*/
williamr@2
   274
		ENoTransportHandlerSet,
williamr@2
   275
		/** Unused. ( Panic HTTP-CORE 15 )
williamr@2
   276
		*/
williamr@2
   277
		EAuthenticationFilterBadState,
williamr@2
   278
		/** An invalid filter handle was specified. ( Panic HTTP-CORE 16 )
williamr@2
   279
		*/
williamr@4
   280
		EInvalidFilterHandle,
williamr@4
   281
		/** An invalid event ( Panic HTTP-CORE 17 )
williamr@4
   282
		*/
williamr@4
   283
		EInvalidEvent
williamr@2
   284
		};
williamr@2
   285
williamr@2
   286
	//##ModelId=3C4C18740366
williamr@2
   287
	static void Panic(THTTPPanic aPanic);
williamr@2
   288
	};
williamr@2
   289
williamr@2
   290
// HTTP external errors/leave codes. Add new sub-ranges at the end; do not insert between the sub-ranges that
williamr@2
   291
// are already here.  This is to allow a client to reasonably check for errors between two adjacent range
williamr@2
   292
// base values rather than check for individual codes.
williamr@2
   293
williamr@2
   294
/**
williamr@2
   295
Base value for the HTTP error code range (-7200 to -7399)
williamr@2
   296
@publishedAll
williamr@2
   297
@released
williamr@2
   298
*/
williamr@2
   299
const TInt KHttpErrorBase = -7200;
williamr@2
   300
williamr@2
   301
//
williamr@2
   302
// Text mode HTTP protocol handler
williamr@2
   303
//
williamr@2
   304
williamr@2
   305
/**
williamr@2
   306
Codec encoding errors for HTTP headers
williamr@2
   307
@publishedAll
williamr@2
   308
@released
williamr@2
   309
*/
williamr@2
   310
const TInt KHttpHeaderEncodeErrorBase = KHttpErrorBase;
williamr@2
   311
williamr@2
   312
/**
williamr@2
   313
Error making a default encoding of unrecognised headers
williamr@2
   314
@publishedAll
williamr@2
   315
@released
williamr@2
   316
*/
williamr@2
   317
const TInt KErrHttpEncodeDefault			= KHttpHeaderEncodeErrorBase;
williamr@2
   318
/**
williamr@2
   319
Error encoding the Accept field
williamr@2
   320
@publishedAll
williamr@2
   321
@released
williamr@2
   322
*/
williamr@2
   323
const TInt KErrHttpEncodeAccept				= KHttpHeaderEncodeErrorBase - 1; 
williamr@2
   324
/**
williamr@2
   325
Error encoding the Accept-Charset field
williamr@2
   326
@publishedAll
williamr@2
   327
@released
williamr@2
   328
*/
williamr@2
   329
const TInt KErrHttpEncodeAcceptCharset		= KHttpHeaderEncodeErrorBase - 2; 
williamr@2
   330
/**
williamr@2
   331
Error encoding a q-value parameter
williamr@2
   332
@publishedAll
williamr@2
   333
@released
williamr@2
   334
*/
williamr@2
   335
const TInt KErrHttpEncodeQValue				= KHttpHeaderEncodeErrorBase - 3; 
williamr@2
   336
/**
williamr@2
   337
Error encoding the Authorization field
williamr@2
   338
@publishedAll
williamr@2
   339
@released
williamr@2
   340
*/
williamr@2
   341
const TInt KErrHttpEncodeAuthorization		= KHttpHeaderEncodeErrorBase - 4; 
williamr@2
   342
/**
williamr@2
   343
Error encoding Basic credentials
williamr@2
   344
@publishedAll
williamr@2
   345
@released
williamr@2
   346
*/
williamr@2
   347
const TInt KErrHttpEncodeBasicAuth			= KHttpHeaderEncodeErrorBase - 5; 
williamr@2
   348
/**
williamr@2
   349
Error encoding Digest credentials
williamr@2
   350
@publishedAll
williamr@2
   351
@released
williamr@2
   352
*/
williamr@2
   353
const TInt KErrHttpEncodeDigestAuth			= KHttpHeaderEncodeErrorBase - 6; 
williamr@2
   354
/**
williamr@2
   355
Error encoding the Connection field
williamr@2
   356
@publishedAll
williamr@2
   357
@released
williamr@2
   358
*/
williamr@2
   359
const TInt KErrHttpEncodeConnection			= KHttpHeaderEncodeErrorBase - 7; 
williamr@2
   360
/**
williamr@2
   361
Error encoding the Content-Length field
williamr@2
   362
@publishedAll
williamr@2
   363
@released
williamr@2
   364
*/
williamr@2
   365
const TInt KErrHttpEncodeContentLength		= KHttpHeaderEncodeErrorBase - 8; 
williamr@2
   366
/**
williamr@2
   367
Error encoding the Content-Type field
williamr@2
   368
@publishedAll
williamr@2
   369
@released
williamr@2
   370
*/
williamr@2
   371
const TInt KErrHttpEncodeContentType		= KHttpHeaderEncodeErrorBase - 9; 
williamr@2
   372
/**
williamr@2
   373
Error encoding the Host field
williamr@2
   374
@publishedAll
williamr@2
   375
@released
williamr@2
   376
*/
williamr@2
   377
const TInt KErrHttpEncodeHost				= KHttpHeaderEncodeErrorBase - 10;
williamr@2
   378
/**
williamr@2
   379
Error encoding the Host field's port parameter
williamr@2
   380
@publishedAll
williamr@2
   381
@released
williamr@2
   382
*/
williamr@2
   383
const TInt KErrHttpEncodeHostPort			= KHttpHeaderEncodeErrorBase - 11;
williamr@2
   384
/**
williamr@2
   385
Error encoding the Transfer-Encoding field
williamr@2
   386
@publishedAll
williamr@2
   387
@released
williamr@2
   388
*/
williamr@2
   389
const TInt KErrHttpEncodeTransferEncoding	= KHttpHeaderEncodeErrorBase - 12;
williamr@2
   390
/**
williamr@2
   391
Error encoding the User-Agent field
williamr@2
   392
@publishedAll
williamr@2
   393
@released
williamr@2
   394
*/
williamr@2
   395
const TInt KErrHttpEncodeUserAgent			= KHttpHeaderEncodeErrorBase - 13;
williamr@2
   396
/**
williamr@2
   397
Error encoding the Date field
williamr@2
   398
@publishedAll
williamr@2
   399
@released
williamr@2
   400
*/
williamr@2
   401
const TInt KErrHttpEncodeDate				= KHttpHeaderEncodeErrorBase - 14;
williamr@2
   402
/**
williamr@2
   403
Error encoding the Cookie field 
williamr@2
   404
@publishedAll
williamr@2
   405
@released
williamr@2
   406
*/
williamr@2
   407
const TInt KErrHttpEncodeCookie				= KHttpHeaderEncodeErrorBase - 15;
williamr@2
   408
/**
williamr@2
   409
Error encoding the Cache-Control field
williamr@2
   410
@publishedAll
williamr@2
   411
@released
williamr@2
   412
*/
williamr@2
   413
const TInt KErrHttpEncodeCacheControl		= KHttpHeaderEncodeErrorBase - 16; 
williamr@2
   414
/**
williamr@2
   415
Error encoding the Pragma field 
williamr@2
   416
@publishedAll
williamr@2
   417
@released
williamr@2
   418
*/
williamr@2
   419
const TInt KErrHttpEncodePragma				= KHttpHeaderEncodeErrorBase - 17;
williamr@2
   420
/**
williamr@2
   421
Error encoding the if match field
williamr@2
   422
@publishedAll
williamr@2
   423
@released
williamr@2
   424
*/
williamr@2
   425
const TInt KErrHttpEncodeIfMatch			= KHttpHeaderEncodeErrorBase - 18; 
williamr@2
   426
/**
williamr@2
   427
Error encoding the if none match field 
williamr@2
   428
@publishedAll
williamr@2
   429
@released
williamr@2
   430
*/
williamr@2
   431
const TInt KErrHttpEncodeIfNoneMatch		= KHttpHeaderEncodeErrorBase - 19;
williamr@2
   432
/**
williamr@2
   433
Error encoding the if modified since field 
williamr@2
   434
@publishedAll
williamr@2
   435
@released
williamr@2
   436
*/
williamr@2
   437
const TInt KErrHttpEncodeIfModifiedSince	= KHttpHeaderEncodeErrorBase - 20;
williamr@2
   438
/**
williamr@2
   439
Error encoding the if unmodified since field 
williamr@2
   440
@publishedAll
williamr@2
   441
@released
williamr@2
   442
*/
williamr@2
   443
const TInt KErrHttpEncodeIfUnmodifiedSince	= KHttpHeaderEncodeErrorBase - 21;
williamr@2
   444
/**
williamr@2
   445
Error encoding the Cookie2 field 
williamr@2
   446
@publishedAll
williamr@2
   447
@released
williamr@2
   448
*/
williamr@2
   449
const TInt KErrHttpEncodeCookie2			= KHttpHeaderEncodeErrorBase - 22;
williamr@2
   450
/**
williamr@2
   451
Error encoding the Content-Language field
williamr@2
   452
@publishedAll
williamr@2
   453
@released
williamr@2
   454
*/
williamr@2
   455
const TInt KErrHttpEncodeContentLanguage	= KHttpHeaderEncodeErrorBase - 23;
williamr@2
   456
/**
williamr@2
   457
Error encoding the WWWAuthenticate field
williamr@2
   458
@publishedAll
williamr@2
   459
@released
williamr@2
   460
*/
williamr@2
   461
const TInt KErrHttpEncodeDoWWWAuthenticate	= KHttpHeaderEncodeErrorBase - 24;
williamr@2
   462
/**
williamr@2
   463
Error encoding the Age field
williamr@2
   464
@publishedAll
williamr@2
   465
@released
williamr@2
   466
*/
williamr@2
   467
const TInt KErrHttpEncodeDoAge				= KHttpHeaderEncodeErrorBase - 25;
williamr@2
   468
/**
williamr@2
   469
Error encoding the Vary field
williamr@2
   470
@publishedAll
williamr@2
   471
@released
williamr@2
   472
*/
williamr@2
   473
const TInt KErrHttpEncodeDoVary				= KHttpHeaderEncodeErrorBase - 26;
williamr@2
   474
/**
williamr@2
   475
Error encoding the Content-Language field
williamr@2
   476
@publishedAll
williamr@2
   477
@released
williamr@2
   478
*/
williamr@2
   479
const TInt KErrHttpEncodeDoContentLanguage	= KHttpHeaderEncodeErrorBase - 27;
williamr@2
   480
/**
williamr@2
   481
Error encoding the Content-Encoding field
williamr@2
   482
@publishedAll
williamr@2
   483
@released
williamr@2
   484
*/
williamr@2
   485
const TInt KErrHttpEncodeContentEncoding	= KHttpHeaderEncodeErrorBase - 28;
williamr@2
   486
/**
williamr@2
   487
Error encoding the Content-Location field
williamr@2
   488
@publishedAll
williamr@2
   489
@released
williamr@2
   490
*/
williamr@2
   491
const TInt KErrHttpEncodeContentLocation	= KHttpHeaderEncodeErrorBase - 29;
williamr@2
   492
/**
williamr@2
   493
Error encoding the Content-MD5 field
williamr@2
   494
@publishedAll
williamr@2
   495
@released
williamr@2
   496
*/
williamr@2
   497
const TInt KErrHttpEncodeContentMD5			= KHttpHeaderEncodeErrorBase - 30;
williamr@2
   498
/**
williamr@2
   499
Error encoding the Accept-Encoding field
williamr@2
   500
@publishedAll
williamr@2
   501
@released
williamr@2
   502
*/
williamr@2
   503
const TInt KErrHttpEncodeAcceptLanguage		= KHttpHeaderEncodeErrorBase - 31;
williamr@2
   504
/**
williamr@2
   505
Error encoding the Accept-Language field
williamr@2
   506
@publishedAll
williamr@2
   507
@released
williamr@2
   508
*/
williamr@2
   509
const TInt KErrHttpEncodeAcceptEncoding		= KHttpHeaderEncodeErrorBase - 32;
williamr@2
   510
/**
williamr@2
   511
Error encoding the TE field
williamr@2
   512
@publishedAll
williamr@2
   513
@released
williamr@2
   514
*/
williamr@2
   515
const TInt KErrHttpEncodeTE					= KHttpHeaderEncodeErrorBase - 33;
williamr@2
   516
/**
williamr@2
   517
Error encoding the Upgrade field
williamr@2
   518
@publishedAll
williamr@2
   519
@released
williamr@2
   520
*/
williamr@2
   521
const TInt KErrHttpEncodeUpgrade			= KHttpHeaderEncodeErrorBase - 34;
williamr@4
   522
/**
williamr@4
   523
Error encoding the ST field
williamr@4
   524
@publishedAll
williamr@4
   525
@released
williamr@4
   526
*/
williamr@4
   527
const TInt KErrHttpEncodeST			= KHttpHeaderEncodeErrorBase - 35;
williamr@4
   528
/**
williamr@4
   529
Error encoding the USN field
williamr@4
   530
@publishedAll
williamr@4
   531
@released
williamr@4
   532
*/
williamr@4
   533
const TInt KErrHttpEncodeUSN			= KHttpHeaderEncodeErrorBase - 36;
williamr@4
   534
/**
williamr@4
   535
Error encoding the Timeout field
williamr@4
   536
@publishedAll
williamr@4
   537
@released
williamr@4
   538
*/
williamr@4
   539
const TInt KErrHttpEncodeTimeout			= KHttpHeaderEncodeErrorBase - 37;
williamr@4
   540
/**
williamr@4
   541
Error encoding the EXT field
williamr@4
   542
@publishedAll
williamr@4
   543
@released
williamr@4
   544
*/
williamr@4
   545
const TInt KErrHttpEncodeExt			= KHttpHeaderEncodeErrorBase - 38;
williamr@4
   546
/**
williamr@4
   547
Error encoding the SID field
williamr@4
   548
@publishedAll
williamr@4
   549
@released
williamr@4
   550
*/
williamr@4
   551
const TInt KErrHttpEncodeSID			= KHttpHeaderEncodeErrorBase - 39;
williamr@4
   552
/**
williamr@4
   553
Error encoding the NTS field
williamr@4
   554
@publishedAll
williamr@4
   555
@released
williamr@4
   556
*/
williamr@4
   557
const TInt KErrHttpEncodeNTS			= KHttpHeaderEncodeErrorBase - 40;
williamr@4
   558
/**
williamr@4
   559
Error encoding the NT field
williamr@4
   560
@publishedAll
williamr@4
   561
@released
williamr@4
   562
*/
williamr@4
   563
const TInt KErrHttpEncodeNT			= KHttpHeaderEncodeErrorBase - 41;
williamr@4
   564
/**
williamr@4
   565
Error encoding the MX field
williamr@4
   566
@publishedAll
williamr@4
   567
@released
williamr@4
   568
*/
williamr@4
   569
const TInt KErrHttpEncodeMX			= KHttpHeaderEncodeErrorBase - 42;
williamr@4
   570
/**
williamr@4
   571
Error encoding the SEQ field
williamr@4
   572
@publishedAll
williamr@4
   573
@released
williamr@4
   574
*/
williamr@4
   575
const TInt KErrHttpEncodeSEQ			= KHttpHeaderEncodeErrorBase - 43;
williamr@4
   576
/**
williamr@4
   577
Error encoding the MAN field
williamr@4
   578
@publishedAll
williamr@4
   579
@released
williamr@4
   580
*/
williamr@4
   581
const TInt KErrHttpEncodeMAN			= KHttpHeaderEncodeErrorBase - 44;
williamr@4
   582
/**
williamr@4
   583
Error encoding the SoapAction field
williamr@4
   584
@publishedAll
williamr@4
   585
@released
williamr@4
   586
*/
williamr@4
   587
const TInt KErrHttpEncodeSoapAction			= KHttpHeaderEncodeErrorBase - 45;
williamr@4
   588
/**
williamr@4
   589
Error encoding the Callback field
williamr@4
   590
@publishedAll
williamr@4
   591
@released
williamr@4
   592
*/
williamr@4
   593
const TInt KErrHttpEncodeCallback			= KHttpHeaderEncodeErrorBase - 46;
williamr@2
   594
williamr@2
   595
/**
williamr@2
   596
Codec decoding errors for values found in HTTP headers
williamr@2
   597
@publishedAll
williamr@2
   598
@released
williamr@2
   599
*/
williamr@2
   600
const TInt KHttpValueDecodeErrorBase = KHttpErrorBase - 60;
williamr@2
   601
williamr@2
   602
/**
williamr@2
   603
General formatting error for date values
williamr@2
   604
@publishedAll
williamr@2
   605
@released
williamr@2
   606
*/
williamr@2
   607
const TInt KErrHttpDecodeMalformedDate		= KHttpValueDecodeErrorBase;	 
williamr@2
   608
/**
williamr@2
   609
Malformed year
williamr@2
   610
@publishedAll
williamr@2
   611
@released
williamr@2
   612
*/
williamr@2
   613
const TInt KErrHttpDecodeMalformedYear 		= KHttpValueDecodeErrorBase - 1; 
williamr@2
   614
/**
williamr@2
   615
Malformed short month name
williamr@2
   616
@publishedAll
williamr@2
   617
@released
williamr@2
   618
*/
williamr@2
   619
const TInt KErrHttpDecodeMalformedMonth		= KHttpValueDecodeErrorBase - 2; 
williamr@2
   620
/**
williamr@2
   621
Malformed number of day in month
williamr@2
   622
@publishedAll
williamr@2
   623
@released
williamr@2
   624
*/
williamr@2
   625
const TInt KErrHttpDecodeMalformedDay		= KHttpValueDecodeErrorBase - 3; 
williamr@2
   626
/**
williamr@2
   627
Malformed short day name
williamr@2
   628
@publishedAll
williamr@2
   629
@released
williamr@2
   630
*/
williamr@2
   631
const TInt KErrHttpDecodeMalformedWkDay		= KHttpValueDecodeErrorBase - 4; 
williamr@2
   632
/**
williamr@2
   633
Malformed long day name
williamr@2
   634
@publishedAll
williamr@2
   635
@released
williamr@2
   636
*/
williamr@2
   637
const TInt KErrHttpDecodeMalformedWeekDay	= KHttpValueDecodeErrorBase - 5; 
williamr@2
   638
/**
williamr@2
   639
Malformed integer value
williamr@2
   640
@publishedAll
williamr@2
   641
@released
williamr@2
   642
*/
williamr@2
   643
const TInt KErrHttpDecodeMalformedInteger	= KHttpValueDecodeErrorBase - 6; 
williamr@2
   644
/**
williamr@2
   645
Malformed quoted string
williamr@2
   646
@publishedAll
williamr@2
   647
@released
williamr@2
   648
*/
williamr@2
   649
const TInt KErrHttpDecodeMalformedQuotedStr	= KHttpValueDecodeErrorBase - 7; 
williamr@2
   650
williamr@2
   651
/**
williamr@2
   652
Codec decoding errors for HTTP headers
williamr@2
   653
@publishedAll
williamr@2
   654
@released
williamr@2
   655
*/
williamr@2
   656
const TInt KHttpHeaderDecodeErrorBase = KHttpErrorBase - 70;
williamr@2
   657
williamr@2
   658
/**
williamr@2
   659
Error decoding the Accept field
williamr@2
   660
@publishedAll
williamr@2
   661
@released
williamr@2
   662
*/
williamr@2
   663
const TInt KErrHttpDecodeAccept				= KHttpHeaderDecodeErrorBase;
williamr@2
   664
/**
williamr@2
   665
Error decoding the Connection field
williamr@2
   666
@publishedAll
williamr@2
   667
@released
williamr@2
   668
*/
williamr@2
   669
const TInt KErrHttpDecodeConnection			= KHttpHeaderDecodeErrorBase - 1;
williamr@2
   670
/**
williamr@2
   671
Error decoding the Content-Length field
williamr@2
   672
@publishedAll
williamr@2
   673
@released
williamr@2
   674
*/
williamr@2
   675
const TInt KErrHttpDecodeContentLength		= KHttpHeaderDecodeErrorBase - 2;
williamr@2
   676
/**
williamr@2
   677
Error decoding the Content-Type field
williamr@2
   678
@publishedAll
williamr@2
   679
@released
williamr@2
   680
*/
williamr@2
   681
const TInt KErrHttpDecodeContentType		= KHttpHeaderDecodeErrorBase - 3;
williamr@2
   682
/**
williamr@2
   683
Error decoding the Transfer-Encoding field
williamr@2
   684
@publishedAll
williamr@2
   685
@released
williamr@2
   686
*/
williamr@2
   687
const TInt KErrHttpDecodeTransferEncoding	= KHttpHeaderDecodeErrorBase - 4;
williamr@2
   688
/**
williamr@2
   689
Error decoding the WWWAuthenticate field
williamr@2
   690
@publishedAll
williamr@2
   691
@released
williamr@2
   692
*/
williamr@2
   693
const TInt KErrHttpDecodeWWWAuthenticate	= KHttpHeaderDecodeErrorBase - 5;
williamr@2
   694
/**
williamr@2
   695
The WWWAuthenticate field contained an unrecognised authentication scheme
williamr@2
   696
@publishedAll
williamr@2
   697
@released
williamr@2
   698
*/
williamr@2
   699
const TInt KErrHttpDecodeUnknownAuthScheme	= KHttpHeaderDecodeErrorBase - 6;
williamr@2
   700
/**
williamr@2
   701
Error decoding a Basic WWWAuthenticate challenge
williamr@2
   702
@publishedAll
williamr@2
   703
@released
williamr@2
   704
*/
williamr@2
   705
const TInt KErrHttpDecodeBasicAuth			= KHttpHeaderDecodeErrorBase - 7;
williamr@2
   706
/**
williamr@2
   707
Error decoding a Digest WWWAuthenticate challenge
williamr@2
   708
@publishedAll
williamr@2
   709
@released
williamr@2
   710
*/
williamr@2
   711
const TInt KErrHttpDecodeDigestAuth			= KHttpHeaderDecodeErrorBase - 8;
williamr@2
   712
/**
williamr@2
   713
Error decoding a Set-Cookie field
williamr@2
   714
@publishedAll
williamr@2
   715
@released
williamr@2
   716
*/
williamr@2
   717
const TInt KErrHttpDecodeCookie				= KHttpHeaderDecodeErrorBase - 9;
williamr@2
   718
/**
williamr@2
   719
Error decoding the Authorization field
williamr@2
   720
@publishedAll
williamr@2
   721
@released
williamr@2
   722
*/
williamr@2
   723
const TInt KErrHttpDecodeAuthorization		= KHttpHeaderDecodeErrorBase - 10;
williamr@2
   724
/**
williamr@2
   725
Error decoding the Accept-Charset field
williamr@2
   726
@publishedAll
williamr@2
   727
@released
williamr@2
   728
*/
williamr@2
   729
const TInt KErrHttpDecodeAcceptCharset		= KHttpHeaderDecodeErrorBase - 11;
williamr@2
   730
/**
williamr@2
   731
Error decoding the Accept-Language field
williamr@2
   732
@publishedAll
williamr@2
   733
@released
williamr@2
   734
*/
williamr@2
   735
const TInt KErrHttpDecodeAcceptLanguage		= KHttpHeaderDecodeErrorBase - 12;
williamr@2
   736
/**
williamr@2
   737
Error decoding the Accept-Encoding field
williamr@2
   738
@publishedAll
williamr@2
   739
@released
williamr@2
   740
*/
williamr@2
   741
const TInt KErrHttpDecodeAcceptEncoding		= KHttpHeaderDecodeErrorBase - 13;
williamr@2
   742
/**
williamr@2
   743
Error decoding the TE field
williamr@2
   744
@publishedAll
williamr@2
   745
@released
williamr@2
   746
*/
williamr@2
   747
const TInt KErrHttpDecodeTE					= KHttpHeaderEncodeErrorBase - 14;
williamr@2
   748
/**
williamr@2
   749
Error decoding the Expect field
williamr@2
   750
@publishedAll
williamr@2
   751
@released
williamr@2
   752
*/
williamr@2
   753
const TInt KErrHttpDecodeExpect				= KHttpHeaderEncodeErrorBase - 15;
williamr@2
   754
/**
williamr@2
   755
Error decoding the Content-Disposition field
williamr@2
   756
@publishedAll
williamr@2
   757
@released
williamr@2
   758
*/
williamr@2
   759
const TInt KErrHttpDecodeContentDisposition	= KHttpHeaderDecodeErrorBase - 14;
williamr@2
   760
/**
williamr@4
   761
Error decoding the MAN field.
williamr@4
   762
@publishedAll
williamr@4
   763
@released
williamr@4
   764
*/
williamr@4
   765
const TInt KErrHttpDecodeMAN	=	KHttpHeaderDecodeErrorBase - 15;
williamr@4
   766
/**
williamr@2
   767
Response errors. These represent specific failure cases
williamr@2
   768
@publishedAll
williamr@2
   769
@released
williamr@2
   770
*/
williamr@2
   771
const TInt KErrHttpResponseFailureBase = KHttpErrorBase - 100;
williamr@2
   772
williamr@2
   773
/**
williamr@2
   774
A uri redirected too many times, possibly indicating a circular redirection
williamr@2
   775
@publishedAll
williamr@2
   776
@released
williamr@2
   777
*/
williamr@2
   778
const TInt KErrHttpRedirectExceededLimit		= KErrHttpResponseFailureBase;	  
williamr@2
   779
/**
williamr@2
   780
A server responded that the uri must be fetched via a proxy
williamr@2
   781
@publishedAll
williamr@2
   782
@released
williamr@2
   783
*/
williamr@2
   784
const TInt KErrHttpRedirectUseProxy				= KErrHttpResponseFailureBase - 1;
williamr@2
   785
/**
williamr@2
   786
A server sent a redirection response that did not include a Location header
williamr@2
   787
@publishedAll
williamr@2
   788
@released
williamr@2
   789
*/
williamr@2
   790
const TInt KErrHttpRedirectNoLocationField		= KErrHttpResponseFailureBase - 2;
williamr@2
   791
/**
williamr@2
   792
An error occured in parsing which left the parser in a unknown state
williamr@2
   793
@publishedAll
williamr@2
   794
@released
williamr@2
   795
*/
williamr@2
   796
const TInt KErrHttpUnknownParseState			= KErrHttpResponseFailureBase - 3;
williamr@2
   797
williamr@2
   798
/**
williamr@2
   799
Request building errors: cause the Validation Filter to make a transaction fail and terminate 
williamr@2
   800
@publishedAll
williamr@2
   801
@released
williamr@2
   802
*/
williamr@2
   803
const TInt KErrHttpReqBuildErrorBase = KHttpErrorBase - 130;
williamr@2
   804
williamr@2
   805
/**
williamr@2
   806
A body is provided with a method that doesn't allow bodys to be transmitted
williamr@2
   807
@publishedAll
williamr@2
   808
@released
williamr@2
   809
*/
williamr@2
   810
const TInt KErrHttpRequestHasBody					= KErrHttpReqBuildErrorBase;	
williamr@2
   811
/**
williamr@2
   812
A body is missing from a method that requires it
williamr@2
   813
@publishedAll
williamr@2
   814
@released
williamr@2
   815
*/
williamr@2
   816
const TInt KErrHttpRequestBodyMissing				= KErrHttpReqBuildErrorBase - 1;			
williamr@2
   817
/**
williamr@2
   818
Should contain The Max-Forward header
williamr@2
   819
@publishedAll
williamr@2
   820
@released
williamr@2
   821
*/
williamr@2
   822
const TInt KErrHttpTraceReqWithoutMaxForwardHeader	= KErrHttpReqBuildErrorBase - 2;
williamr@2
   823
/**
williamr@2
   824
Body must NOT be sent chunked if using HTTP/1.0
williamr@2
   825
@publishedAll
williamr@2
   826
@released
williamr@2
   827
*/
williamr@2
   828
const TInt KErrHttpPostReqBodyWithoutSizeOnHTTP10	= KErrHttpReqBuildErrorBase - 3;
williamr@2
   829
/**
williamr@2
   830
Request contained a response header or a entity header but no body
williamr@2
   831
@publishedAll
williamr@2
   832
@released
williamr@2
   833
*/
williamr@2
   834
const TInt KErrHttpInvalidHeaderInRequest	  		= KErrHttpReqBuildErrorBase - 4;
williamr@2
   835
/**
williamr@2
   836
Missing but required header errors
williamr@2
   837
@publishedAll
williamr@2
   838
@released
williamr@2
   839
*/
williamr@2
   840
williamr@2
   841
const TInt KErrHttpMissingHeaderBase = KHttpErrorBase - 160;
williamr@2
   842
/**
williamr@2
   843
A body was provided in the request but no Content-Type header was set
williamr@2
   844
@publishedAll
williamr@2
   845
@released
williamr@2
   846
*/
williamr@2
   847
williamr@2
   848
const TInt KErrHttpEntityHeaderMissingContentType		= KErrHttpMissingHeaderBase;	
williamr@2
   849
/**
williamr@2
   850
The request URI was relative, but no Host header was set to indicate a server to connect to
williamr@2
   851
@publishedAll
williamr@2
   852
@released
williamr@2
   853
*/
williamr@2
   854
const TInt KErrHttpGeneralHeaderMissingHost				= KErrHttpMissingHeaderBase - 1;
williamr@2
   855
/**
williamr@2
   856
Protocol handler errors
williamr@2
   857
@publishedAll
williamr@2
   858
@released
williamr@2
   859
*/
williamr@2
   860
const TInt KErrHttpProtocolHandlerBase = KHttpErrorBase - 170;
williamr@2
   861
/**
williamr@2
   862
The request body needed to be rewound but the client but it doesn't support 
williamr@2
   863
@publishedAll
williamr@2
   864
@released
williamr@2
   865
*/
williamr@2
   866
const TInt KErrHttpCantResetRequestBody				= KErrHttpProtocolHandlerBase;
williamr@2
   867
/**
williamr@2
   868
The Protocol handler is not initialised
williamr@2
   869
@publishedAll
williamr@2
   870
@released
williamr@2
   871
*/
williamr@2
   872
const TInt KErrHttpProtTransactionNotInitialised	= KErrHttpProtocolHandlerBase -1;
williamr@2
   873
/**
williamr@2
   874
Unable to establish a tunnel.
williamr@2
   875
@publishedAll
williamr@2
   876
@released
williamr@2
   877
*/
williamr@2
   878
const TInt KErrHttpCannotEstablishTunnel			= KErrHttpProtocolHandlerBase -2;
williamr@2
   879
/**
williamr@2
   880
Invalid URI
williamr@2
   881
@publishedAll
williamr@2
   882
@released
williamr@2
   883
*/
williamr@2
   884
const TInt KErrHttpInvalidUri						= KErrHttpProtocolHandlerBase -3;
williamr@2
   885
/**
williamr@2
   886
Protocol handler experienced a non-pipelining error
williamr@2
   887
@publishedAll
williamr@2
   888
@released
williamr@2
   889
*/
williamr@2
   890
const TInt KErrHttpNonPipeliningError				= KErrHttpProtocolHandlerBase -4;
williamr@2
   891
/**
williamr@2
   892
Protocol handler experienced a pipelining error
williamr@2
   893
@publishedAll
williamr@2
   894
@released
williamr@2
   895
*/
williamr@2
   896
const TInt KErrHttpPipeliningError					= KErrHttpProtocolHandlerBase -5;
williamr@2
   897
williamr@2
   898
/**
williamr@2
   899
The request has been not sent for the transaction and connection has been disconnected. 
williamr@2
   900
This error will be propagated to the client only, if the HTTP:ENotifyOnDisconnect property 
williamr@2
   901
is set with a value HTTP::EEnableDisconnectNotification
williamr@2
   902
williamr@2
   903
@publishedAll
williamr@2
   904
@released
williamr@2
   905
*/
williamr@2
   906
const TInt KErrHttpRequestNotSent 					= KErrHttpProtocolHandlerBase -6;
williamr@2
   907
williamr@2
   908
/**
williamr@2
   909
The response has been not received for the transaction and connection has been disconnected. 
williamr@2
   910
This error will be propagated to the client only, if the HTTP:ENotifyOnDisconnect property is 
williamr@2
   911
set with a value HTTP::EEnableDisconnectNotification
williamr@2
   912
williamr@2
   913
@publishedAll
williamr@2
   914
@released
williamr@2
   915
*/
williamr@2
   916
const TInt KErrHttpResponseNotReceived				= KErrHttpProtocolHandlerBase -7;
williamr@2
   917
williamr@2
   918
/**
williamr@2
   919
Partial response has been received and connection has been disconnected. This error will be 
williamr@2
   920
propagated to the client only, if the HTTP:ENotifyOnDisconnect property is set with a value
williamr@2
   921
HTTP::EEnableDisconnectNotification
williamr@2
   922
williamr@2
   923
@publishedAll
williamr@2
   924
@released
williamr@2
   925
*/
williamr@2
   926
const TInt KErrHttpPartialResponseReceived			= KErrHttpProtocolHandlerBase -8;
williamr@2
   927
williamr@2
   928
/**
williamr@2
   929
ClientApplication wants to fail the transaction that was in process by the HTTPMessageParser
williamr@2
   930
@publishedAll
williamr@2
   931
@released
williamr@2
   932
*/
williamr@2
   933
const TInt KErrHttpOptimiserFailsTrans				= KErrHttpProtocolHandlerBase -9;
williamr@2
   934
williamr@2
   935
// end of error codes - maximum error value is -7399 - must not be exceeded!
williamr@2
   936
// Inline methods from HTTPStatus
williamr@2
   937
williamr@2
   938
inline TBool HTTPStatus::IsInformational(TInt aStatus)
williamr@2
   939
	{ 
williamr@2
   940
	return ((aStatus >= HTTPStatus::EContinue) && (aStatus < HTTPStatus::EOk));
williamr@2
   941
	}
williamr@2
   942
inline TBool HTTPStatus::IsSuccessful(TInt aStatus)
williamr@2
   943
	{ 
williamr@2
   944
	return ((aStatus >= HTTPStatus::EOk) && (aStatus < HTTPStatus::EMultipleChoices));
williamr@2
   945
	}
williamr@2
   946
inline TBool HTTPStatus::IsRedirection(TInt aStatus)
williamr@2
   947
	{
williamr@2
   948
	return ((aStatus >= HTTPStatus::EMultipleChoices) && (aStatus < HTTPStatus::EBadRequest));
williamr@2
   949
	}
williamr@2
   950
inline TBool HTTPStatus::IsClientError(TInt aStatus)
williamr@2
   951
	{
williamr@2
   952
	return ((aStatus >= HTTPStatus::EBadRequest) && (aStatus < HTTPStatus::EInternalServerError));
williamr@2
   953
	}
williamr@2
   954
inline TBool HTTPStatus::IsServerError(TInt aStatus)
williamr@2
   955
	{
williamr@2
   956
	return (aStatus >= HTTPStatus::EInternalServerError);
williamr@2
   957
	}
williamr@2
   958
williamr@2
   959
williamr@2
   960
williamr@2
   961
#endif // __HTTPERR_H__