epoc32/include/obexconstants.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     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
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 
    18 /**
    19  @file
    20  @publishedAll
    21  @released
    22 */
    23 
    24 #ifndef __OBEXCONSTANTS_H
    25 #define __OBEXCONSTANTS_H
    26 
    27 #include <e32std.h>
    28 #include <es_sock.h>
    29 #include <ir_sock.h>
    30 #include <bt_sock.h>
    31 #include <obexpanics.h>
    32 
    33 //common to request & resp digests
    34 
    35 /** @internalComponent */
    36 const TInt KChallResponseSize = 58;
    37 /** @internalComponent */
    38 const TInt KMinChallResponseSize = 18; //Nonce(16) + tag(1) + size(1)
    39 /** @internalComponent */
    40 const TInt KObexNonceSize = 16;
    41 /** @internalComponent */
    42 const TUint8 KObexRequireUID = 0x01;
    43 
    44 //request or chall
    45 /** @internalComponent */
    46 const TUint KObexChallNonceTag = 0;
    47 /** @internalComponent */
    48 const TUint8 KObexChallOptionsTag = 0x01;
    49 /** @internalComponent */
    50 const TUint8 KObexChallRealmTag = 0x02;
    51 /** @internalComponent */
    52 const TInt KObexChallOptionSize = 1; //this can't be changed from one without making
    53 /** @internalComponent */
    54 const TUint KObexChallHeaderSize = 23; //assuming no Realm data
    55 
    56 //response
    57 /** @internalComponent */
    58 const TUint KObexRespTag = 0;
    59 /** @internalComponent */
    60 const TInt KObexRespSize = 16;
    61 /** @internalComponent */
    62 const TUint8 KObexRespUserIDTag = 0x01;
    63 /** @internalComponent */
    64 const TUint8 KObexRespNonceTag = 0x02;
    65 
    66 /** @internalComponent */
    67 const TUint8 KObexHeaderTypeMask = 0xc0;
    68 /** @internalComponent */
    69 const TUint8 KObexHeaderTypeOffset = 6;
    70 
    71 #ifdef _UNICODE
    72 /** @internalComponent */
    73 const TInt KUidOBEXTransportModule = 0x10003d56;
    74 #else
    75 /** @internalComponent */
    76 const TInt KUidOBEXTransportModule = 0x1000169c;
    77 #endif
    78 
    79 /** @internalComponent */
    80 const TInt KUsbIntStringDescLength = 30;
    81 
    82 /** @internalComponent */
    83 const TUint8 KFourByteTimeHeaderAddress = 0xc4;
    84 
    85 // Header mask definitions.
    86 // Old style accessor for which headers are present or
    87 // should be sent by an object.  Now deprecated, use the
    88 // header iterator instead.
    89 /** @internalComponent */
    90 const TUint16 KObexHdrName				= 0x0001;
    91 /** @internalComponent */
    92 const TUint16 KObexHdrType				= 0x0002;
    93 /** @internalComponent */
    94 const TUint16 KObexHdrLength			= 0x0004;
    95 /** @internalComponent */
    96 const TUint16 KObexHdrTime				= 0x0008;
    97 /** @internalComponent */
    98 const TUint16 KObexHdrDescription		= 0x0010;
    99 /** @internalComponent */
   100 const TUint16 KObexHdrTarget			= 0x0020;
   101 /** @internalComponent */
   102 const TUint16 KObexHdrConnectionID		= 0x0040;
   103 /** @internalComponent */
   104 const TUint16 KObexHdrBody				= 0x0080;
   105 /** @internalComponent */
   106 const TUint16 KObexHdrEndOfBody			= 0x0100;
   107 /** @internalComponent */
   108 const TUint16 KObexHdrHttp				= 0x0200;
   109 /** @internalComponent */
   110 const TUint16 KObexHdrAppParam			= 0x0400;
   111 /** @internalComponent */
   112 const TUint16 KObexHdrUserDefined		= 0x0800;
   113 /** @internalComponent */
   114 const TUint16 KObexHdrCount				= 0x1000;
   115 /** @internalComponent */
   116 const TUint16 KObexHdrCreatorID			= 0x2000;
   117 /** @internalComponent */
   118 const TUint16 KObexHdrWanUUID			= 0x4000;
   119 /** @internalComponent */
   120 const TUint16 KObexHdrObjectClass		= 0x8000;
   121 
   122 /** @internalComponent */
   123 const TUint8  KObexUserDefinedHdrAddrMin	 = 0x30; //start of user defined header address range
   124 /** @internalComponent */
   125 const TUint8  KObexUserDefinedHdrAddrMax	 = 0x3F; //end of user defined header address range
   126 
   127 /** @internalComponent */
   128 const TUint8 KObexVersion           	= 0x10;		///< Version 1.0 (still correct for Obex spec v 1.2)
   129 
   130 /** @internalComponent */
   131 const TUint8 KObexObjectFieldSize   	= 127;
   132 /** @internalComponent */
   133 const TUint8 KObexObjectDescriptionSize = 255;
   134 
   135 // Extended errors for IrObex
   136 
   137 /** Must not use as not in the allocated range */
   138 const TInt KErrIrObexRespBase			= - 5500; 
   139 
   140 /** Extended error for IrObex - No other infrared device found */
   141 const TInt KErrIrObexClientNoDevicesFound = -5501;
   142 
   143 /** Extended error for IrObex - Other IR device cannot handle IrObex */
   144 const TInt KErrIrObexClientPeerDoesNotHaveObex = -5502;
   145 
   146 /** Extended error for IrObex - Other IR device aborted the transfer */
   147 const TInt KErrIrObexClientPutPeerAborted	= -5503;
   148 
   149 /** Extended error for IrObex - Peer device aborted data transmission/obex sending */
   150 const TInt KErrIrObexServerPutPeerAborted = -5507;
   151 
   152 /** Extended error for IrObex - Cannot authorise the challenge so link dropped */
   153 const TInt KErrIrObexConnectChallRejected = -5512;
   154 
   155 // Other Obex errors defined in the system but no longer used
   156 // Do not reuse the number!
   157 // KErrIrObexClientPutPeerCannotHandleObject -5504
   158 // KErrIrObexServerPutFileWriteError		-5509
   159 // KErrIrObexClientFirstPutFailed			-5510
   160 // KErrIrObexClientSubsequentPutFailed		-5511
   161 
   162 /** Unexpected event for the given state */
   163 const TInt KErrIrObexBadEvent = -5513;
   164 
   165 /** Event occurred while Server is stopped */
   166 const TInt KErrIrObexServerStopped = -5514;
   167 
   168 /** Packet received while state machine is in a wait state */
   169 const TInt KErrIrObexPacketDuringWait = -5515;
   170 
   171 // There are other error codes defined at the end of this file,
   172 // which are a direct mapping of specific Obex error codes and
   173 // are returned by the client.
   174 
   175 
   176 // Flags used by Connect
   177 // ...None in OBEX 1.0
   178 
   179 // Flags used by SetPath
   180 /** @internalComponent */
   181 const TUint8 KObexSetPathParent	= 0x01;
   182 
   183 /**
   184 Version number for TObexTransportInfo and derived classes.  
   185 When iVersion is set to this value the following fields of TObexTransportInfo  
   186 must be set:
   187 iTransportName, 
   188 iReceiveMtu
   189 iTransmitMtu
   190 The iVersion member variable must be set to this value. If in future any of the 
   191 iFuture variables are used a new version constant will be created.
   192 
   193 @see TObexTransportInfo
   194 @publishedAll
   195 @released
   196 */
   197 const TInt KObexTransportInfoVersion0 = 0;	
   198 
   199 /**
   200 Default for the receive and transmit MTU sizes
   201 Use this default value for setting the iReceiveMtu or iTransmitMtu in TObexTransportInfo
   202 objects or derived classes.
   203 
   204 @see TObexTransportInfo
   205 @publishedAll
   206 @released
   207 */
   208 const TInt KObexDefaultMtuSize = 4000;
   209 
   210 /**
   211 Default value for the number of discovery slots to use.  Use this value as a default 
   212 for iDiscoverySlots in TObexIrdaV2TransportInfo.  
   213 
   214 @see TObexIrdaV2TransportInfo
   215 @publishedAll
   216 @released
   217 */
   218 const TUint KObexIrdaDefaultDiscoverySlotsToUse = 1;
   219 
   220 /**
   221 Default value for the number of discovery attempts made.  Use this value as a default for iDiscoveryAttempts
   222 in TObexIrdaV2TransportInfo.  
   223 @see TObexIrdaV2TransportInfo
   224 @publishedAll
   225 @released
   226 */
   227 const TUint KObexIrdaDefaultDiscoveryAttempts = 4;
   228 
   229 // Constants used to define which transport Obex will run over.
   230 // Used in TObexTransportInfo and TObexProtocolInfo's iTransport member.
   231 
   232 /**
   233 Protocol string when running over IrDA
   234 @see TObexIrProtocolInfo
   235 @see TObexTransportInfo
   236 @publishedAll
   237 @released
   238 */
   239 _LIT(KObexIrTTPProtocol, "IrTinyTP");
   240 
   241 /**
   242 Protocol string when running over IrDA
   243 Using this version indicates that the configuration object contains discovery parameters.
   244 @see TObexIrProtocolInfo
   245 @publishedAll
   246 @released
   247 */
   248 _LIT(KObexIrTTPProtocolV2, "IrTinyTP-V2");
   249 
   250 /**
   251 Protocol string when running over IrDA
   252 Using this version indicates that the configuration object contains the device nickname.
   253 @see TObexIrProtocolInfo
   254 @publishedAll
   255 
   256 @capability WriteDeviceData If the TObexIrV3TransportInfo is passed as the argument
   257                             to CObexServer::NewL or CObexClient::NewL and the associated 
   258                             name is valid.
   259 @released
   260 */
   261 _LIT(KObexIrTTPProtocolV3, "IrTinyTP-V3");
   262 
   263 /**
   264 Protocol string when running over Bluetooth
   265 @see TObexBluetoothProtocolInfo
   266 @see TObexTransportInfo
   267 @publishedAll
   268 @released
   269 */
   270 _LIT(KObexRfcommProtocol, "RFCOMM");
   271 
   272 /**
   273 Protocol string when running over USB
   274 @see TObexUsbProtocolInfo
   275 @see TObexTransportInfo
   276 @publishedAll
   277 @released
   278 */
   279 _LIT(KObexUsbProtocol, "USB");
   280 
   281 /**
   282 Place holder for...
   283 protocol string that should be used 
   284 if a Win32 emulator USB transport were 
   285 to be created for testing.
   286 @see TObexUsbProtocolInfo
   287 @see TObexTransportInfo
   288 @publishedAll
   289 @released
   290 */
   291 _LIT(KObexWin32UsbProtocol, "Win32Usb");
   292 
   293 /**
   294 Protocol string when running over USB using client driver extensions
   295 @see TObexUsbProtocolInfoV2
   296 @see TObexTransportInfo
   297 @publishedAll
   298 @released
   299 */
   300 _LIT(KObexUsbProtocolV2, "USB-V2");
   301 
   302 /** 
   303 This class is derived for each underlying transport protocol OBEX 
   304 runs over.
   305 
   306 The iTransport member holds the unique name for the transport. For example for
   307 infra-red (TinyTP) this is "IrTinyTP" or KObexIrTTPProtocol.
   308 
   309 @see TObexIrProtocolInfo for running over TinyTP
   310 @see TObexBluetoothProtocolInfo for running over Rfcomm
   311 @see TObexUsbProtocolInfo for running over USB
   312 @see TObexUsbProtocolInfoV2 for running over USB using client driver extensions
   313 
   314 @see KObexIrTTPProtocol
   315 @see KObexIrTTPProtocolV2
   316 @see KObexRfcommProtocol
   317 @see KObexUsbProtocol
   318 @see KObexUsbProtocolV2
   319 
   320 @publishedAll
   321 @released
   322 */
   323 NONSHARABLE_CLASS(TObexProtocolInfo)
   324 	{
   325 public:
   326 	/** Holds the unique name for the transport. */
   327 	TBuf<60> iTransport;
   328 private:
   329 	// This data padding has been added to help prevent future binary compatibility breaks	
   330 	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   331 	TUint32     iPadding1; 
   332 	TUint32     iPadding2; 		
   333 	};
   334 
   335 /** 
   336 Used to describe IrDA specific protocol information
   337 	
   338 To access the default OBEX server, the IAS class value should be "OBEX"
   339 and the IAS attribute name "IrDA:TinyTP:LsapSel". 
   340 
   341 @publishedAll
   342 @released
   343 */
   344 NONSHARABLE_CLASS(TObexIrProtocolInfo) : public TObexProtocolInfo
   345 	{
   346 public:
   347 	/** IrDA address information for this connection, as used in the IrDA sockets interface.
   348 	Refer to the SDK for more information about this.
   349 	Its main use is for setting the port that the local machine will listen on. */
   350 	TIrdaSockAddr iAddr;
   351 	/** The IAS class value that the OBEX session will register its listener port,
   352 	or request remote port with. */
   353 	TBuf8<KIASClassNameMax> iClassName;
   354 	/** The IAS attribute value that the OBEX session will register its listener port,
   355 	or request remote port with. */
   356 	TBuf8<KIASAttributeNameMax> iAttributeName;
   357 	/** The number of discovery slots to use. */
   358 	TUint8 iDiscoverySlots;
   359 	/** The number of discovery attempts to make. */
   360 	TUint8 iDiscoveryAttempts;
   361 
   362 private:
   363 	// This data padding has been added to help prevent future binary compatibility breaks	
   364 	// None of these padding variables have been zero'd because they are currently not used
   365 	TUint16     iPadding1; 
   366 	TUint32     iPadding2; 		
   367 	TUint32     iPadding3; 
   368 	TUint32     iPadding4; 	
   369 	};
   370 
   371 /** 
   372 Used to describe Bluetooth specific protocol information
   373 	
   374 @publishedAll
   375 @released
   376 */
   377 NONSHARABLE_CLASS(TObexBluetoothProtocolInfo) : public TObexProtocolInfo
   378 	{
   379 public:
   380 	/** 
   381 	For OBEX servers:
   382 	This defines the server channel on which the OBEX server listens 
   383 	for connections. The server channel is set using SetPort on the 
   384 	TRfcommSockAddr.
   385 	Note:
   386 	1) Unless the channel is defined as KRfcommPassiveAutoBind 
   387 	it may be in use when the obex server attempts to 'bind' to it
   388 	2) If the channel is defined as KRfcommPassiveAutoBind 
   389 	then when the server is FIRST started it will attempt 
   390 	to find a free RFComm channel. If this is successful 
   391 	that free channel will be used as the server channel 
   392 	for the life time of the obex server including
   393 	when it is 'stopped' and re-'started'.
   394 	3) When the obex server is stopped, and very
   395 	briefly when a bluetooth connection comes down, the
   396 	obex server releases its server channel. It is possible
   397 	therefore that during this time another application might bind
   398 	to it. This will cause an error when the obex server tries
   399 	to re-bind.
   400 
   401 	Also note that a Bluetooth OBEX server will itself set the Object Transfer
   402 	bit in the Service Class as required by the Generic Object Exchange
   403 	Profile so the user need not do this.	
   404 	@see CObexServer
   405 	
   406 	For OBEX clients:
   407 	This defines the server channel and the 
   408 	device address to connect to. The server channel 
   409 	and device address are set respectively using SetPort 
   410 	and SetBTAddr on the TRfcommSockAddr.
   411 	*/
   412 	TRfcommSockAddr iAddr;
   413 	
   414 private:
   415 	// This data padding has been added to help prevent future binary compatibility breaks	
   416 	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   417 	TUint32     iPadding1; 
   418 	TUint32     iPadding2; 	
   419 	};
   420 
   421 /** 
   422 Used to describe USB specific protocol information
   423 	
   424 @publishedAll
   425 @released
   426 */
   427 NONSHARABLE_CLASS(TObexUsbProtocolInfo) : public TObexProtocolInfo
   428 	{
   429 public:
   430 	/** Provides a string to be attached to the Obex function's Communication Class interface,
   431 	which may be used to identify the Obex service. */
   432 	TBuf16<KUsbIntStringDescLength> iInterfaceStringDescriptor;
   433 	};
   434 
   435 /** 
   436 Used to set options used by the extended USB client driver for improved performance
   437 	
   438 @see TObexUsbProtocolInfo
   439 @see RDevUsbcClient
   440 @publishedAll
   441 @released
   442 */
   443 NONSHARABLE_CLASS(TObexUsbProtocolInfoV2) : public TObexUsbProtocolInfo
   444 	{
   445 public:
   446 	/** Bitmap containing the bandwidth priorities to use on IN and OUT endpoints
   447 	@see TUsbcBandwidthPriority
   448 	*/
   449 	TInt iBandwidthPriority;
   450 	/** Specifies whether to use DMA on the bulk OUT endpoint */
   451 	TBool iDmaOnOutEndpoint;
   452 	/** Specifies whether to use DMA on the bulk IN endpoint */
   453 	TBool iDmaOnInEndpoint;
   454 	
   455 private:
   456 	// This data padding has been added to help prevent future binary compatibility breaks	
   457 	// None of these padding variables have been zero'd because they are currently not used
   458 	TUint32     iPadding1; 
   459 	TUint32     iPadding2; 		
   460 	TUint32     iPadding3; 
   461 	TUint32     iPadding4; 	
   462 	};
   463 
   464 /**
   465 Contains information about OBEX packet sizing policy, defining the
   466 maximum buffer size for receive and transmit packets
   467 */
   468 NONSHARABLE_CLASS(TObexProtocolPolicy)
   469 	{
   470 public:
   471 	IMPORT_C TObexProtocolPolicy ();	// Sets version and default values
   472 
   473 	IMPORT_C TInt SetReceiveMtu ( TUint16 aReceiveMtu );
   474 	IMPORT_C TInt SetTransmitMtu ( TUint16 aTransmitMtu );
   475 	IMPORT_C TUint16 Version () const;
   476 	IMPORT_C TUint16 ReceiveMtu () const;
   477 	IMPORT_C TUint16 TransmitMtu () const;
   478 
   479 private:
   480 	TUint16 iVersion;
   481 	TUint16 iReceiveMtu;
   482 	TUint16 iTransmitMtu;
   483 
   484 	// This data padding has been added to help prevent future binary compatibility breaks	
   485 	// None of these padding variables have been zero'd because they are currently not used
   486 	TUint32     iPadding1; 
   487 	TUint32     iPadding2; 		
   488 	TUint32     iPadding3; 
   489 	TUint32     iPadding4; 	
   490 	};
   491 
   492 struct TObexConnectionInfo;
   493 
   494 /**
   495 TObexConnectInfo
   496 This structure contains information used during OBEX connection. iVersion
   497 holds the encoded OBEX version of the machine, use @c VersionMajor() and
   498 @c VersionMinor() to extract the parts of the version number (each having a
   499 value from 0 to 15). @c iFlags holds OBEX connection flags. @c iWho holds 
   500 the Who attribute from the connect packet, if any was specified, or 
   501 otherwise has a length of 0. 
   502 It is recommended that this class is only ever allocated on the heap as it is quite big.
   503 */
   504 NONSHARABLE_CLASS(TObexConnectInfo)
   505 	{
   506 public:
   507 	IMPORT_C TObexConnectInfo();
   508 	IMPORT_C TUint8 VersionMajor() const;
   509 	IMPORT_C TUint8 VersionMinor() const;
   510 public:
   511 	TUint8 iVersion; /** Encoded OBEX version of the machine*/
   512 	TUint8 iFlags; /** iFlags holds OBEX connection flags*/
   513 	TBuf8<KObexObjectDescriptionSize> iWho; /** the Who attribute from the connect packet, if any was specified */
   514 	TBuf8<KObexObjectDescriptionSize> iTargetHeader; /** the Target header from the connect packet, if any was specified */
   515 	
   516 private:
   517 	// This data padding has been added to help prevent future binary compatibility breaks	
   518 	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   519 	TUint32     iPadding1; 
   520 	TUint32     iPadding2; 	
   521 	};
   522 
   523 
   524 
   525 //if these codes are extended due to a IRObex spec update ensure 
   526 //that the TInt immediately below are updated 
   527 //and the default in the method IrOBEXUtil::ObexResponse is also updated
   528 enum TObexResponse  
   529 	{ 
   530 /** Response is "Continue" */	
   531 	ERespContinue			= 0x10,
   532 	
   533 /** Response is "Success" */		
   534 	ERespSuccess			= 0x20,
   535 	
   536 /** Response is "Created" */		
   537 	ERespCreated			= 0x21,
   538 	
   539 /** Response is "Accepted" */		
   540 	ERespAccepted			= 0x22,
   541 	
   542 /** Response is "Non-Authenticated Information" */		
   543 	ERespNonAuthInfo		= 0x23,
   544 	
   545 /** Response is "No Content" */			
   546 	ERespNoContent			= 0x24,
   547 	
   548 /** Response is "Reset Content" */				
   549 	ERespResetContent		= 0x25,
   550 	
   551 /** Response is "Partial Content" */					
   552 	ERespPartialContent		= 0x26,
   553 	
   554 /** Response is "Multiple Choices" */						
   555 	ERespMultipleChoices	= 0x30,
   556 	
   557 /** Response is "Moved Permanently" */						
   558 	ERespMovedPerm			= 0x31,
   559 	
   560 /** Response is "Moved Temporarily" */							
   561 	ERespMovedTemp			= 0x32,
   562 
   563 /** Response is "See Other" */								
   564 	ERespSeeOther			= 0x33,
   565 
   566 /** Response is "Not Modified" */									
   567 	ERespNotModified		= 0x34,
   568 
   569 /** Response is "Use Proxy" */									
   570 	ERespUseProxy			= 0x35,
   571 
   572 /** Response is "Bad Request" */									
   573 	ERespBadRequest			= 0x40,
   574 
   575 /** Response is "Unauthorized" */									
   576 	ERespUnauthorized		= 0x41,
   577 
   578 /** Response is "Payment Required" */									
   579 	ERespPaymentRequired	= 0x42,
   580 
   581 /** Response is "Forbidden" */									
   582 	ERespForbidden			= 0x43,
   583 
   584 /** Response is "Not Found" */										
   585 	ERespNotFound			= 0x44,
   586 
   587 /** Response is "Method Not Allowed" */										
   588 	ERespMethodNotAllowed	= 0x45,
   589 
   590 /** Response is "Not Acceptable" */									
   591 	ERespNotAcceptable		= 0x46,
   592 
   593 /** Response is "Proxy Authentication is Required" */										
   594 	ERespProxyAuthenReqd	= 0x47,
   595 
   596 /** Response is "Timed Out" */										
   597 	ERespTimedOut			= 0x48,
   598 
   599 /** Response is "Conflict" */										
   600 	ERespConflict			= 0x49,
   601 
   602 /** Response is "Gone" */										
   603 	ERespGone				= 0x4A,
   604 
   605 /** Response is "Length Required" */										
   606 	ERespLengthReqd			= 0x4B,
   607 
   608 /** Response is "Precondition Failed" */											
   609 	ERespPreCondFailed		= 0x4C,
   610 
   611 /** Response is "Required Entity is Too Large" */											
   612 	ERespReqEntityTooLarge	= 0x4D,
   613 
   614 /** Response is "Required URL is Too Large" */											
   615 	ERespReqURLTooLarge		= 0x4E,
   616 
   617 /** Response is "Unsupported Media Type" */											
   618 	ERespUnsupMediaType		= 0x4F,
   619 
   620 /** Response is "Internal Error" */											
   621 	ERespInternalError		= 0x50,
   622 
   623 /** Response is "Not Implemented" */											
   624 	ERespNotImplemented		= 0x51,
   625 
   626 /** Response is "Bad Gateway" */											
   627 	ERespBadGateway			= 0x52,
   628 
   629 /** Response is "Service Unavailable" */											
   630 	ERespServiceUnavail		= 0x53,
   631 
   632 /** Response is "Gateway Timeout" */											
   633 	ERespGatewayTimeout		= 0x54,
   634 
   635 /** Response is "HTTP Version is Not Supported" */											
   636 	ERespHTTPVerNotSupp		= 0x55,
   637 
   638 /** Response is "Database is Full" */											
   639 	ERespDatabaseFull		= 0x60,
   640 
   641 /** Response is "Database is Locked" */											
   642 	ERespDatabaseLocked		= 0x61,
   643 
   644 /** Response is "Service is Unavailable" */											
   645 	ERespServiceUnavailable = 0xD3,
   646 	};
   647 
   648 
   649 //some error codes to be used specifically by the client
   650 //these shall, be mapped directly to OBEX defined error codes.
   651 const TInt KErrIrObexRespSuccess		= KErrIrObexRespBase - ERespSuccess;			//-5532 returns 0x20 (0xA0)
   652 const TInt KErrIrObexRespCreated		= KErrIrObexRespBase - ERespCreated;			//-5533 returns 0x21 (0xA1)
   653 const TInt KErrIrObexRespAccepted		= KErrIrObexRespBase - ERespAccepted;			//-5534 returns 0x22 (0xA2)
   654 const TInt KErrIrObexRespNonAuthInfo	= KErrIrObexRespBase - ERespNonAuthInfo;		//-5535 returns 0x23 (0xA3)
   655 const TInt KErrIrObexRespNoContent		= KErrIrObexRespBase - ERespNoContent;			//-5536 returns 0x24 (0xA4)
   656 const TInt KErrIrObexRespResetContent	= KErrIrObexRespBase - ERespResetContent;		//-5537 returns 0x25 (0xA5)
   657 const TInt KErrIrObexRespPartialContent = KErrIrObexRespBase - ERespPartialContent;		//-5538 returns 0x26 (0xA6)
   658 const TInt KErrIrObexRespMultipleChoices = KErrIrObexRespBase - ERespMultipleChoices;	//-5548 returns 0x30 (0xB0)
   659 const TInt KErrIrObexRespMovedPerm		= KErrIrObexRespBase - ERespMovedPerm;			//-5549 returns 0x31 (0xB1)
   660 const TInt KErrIrObexRespMovedTemp		= KErrIrObexRespBase - ERespMovedTemp;			//-5550 returns 0x32 (0xB2)
   661 const TInt KErrIrObexRespSeeOther		= KErrIrObexRespBase - ERespSeeOther;			//-5551 returns 0x33 (0xB3)
   662 const TInt KErrIrObexRespNotModified	= KErrIrObexRespBase - ERespNotModified;		//-5552 returns 0x34 (0xB4)
   663 const TInt KErrIrObexRespUseProxy		= KErrIrObexRespBase - ERespUseProxy;			//-5553 returns 0x35 (0xB5)
   664 const TInt KErrIrObexRespBadRequest		= KErrIrObexRespBase - ERespBadRequest;			//-5564 returns 0x40 (0xC0)
   665 const TInt KErrIrObexRespUnauthorized	= KErrIrObexRespBase - ERespUnauthorized;		//-5565 returns 0x41 (0xC1)
   666 const TInt KErrIrObexRespPaymentRequired = KErrIrObexRespBase - ERespPaymentRequired;	//-5566 returns 0x42 (0xC2)
   667 const TInt KErrIrObexRespForbidden		= KErrIrObexRespBase - ERespForbidden;			//-5567 returns 0x43 (0xC3)
   668 const TInt KErrIrObexRespNotFound		= KErrIrObexRespBase - ERespNotFound;			//-5568 returns 0x44 (0xC4)
   669 const TInt KErrIrObexRespMethodNotAllowed = KErrIrObexRespBase - ERespMethodNotAllowed;	//-5569 returns 0x45 (0xC5)
   670 const TInt KErrIrObexRespNotAcceptable	= KErrIrObexRespBase - ERespNotAcceptable;		//-5570 returns 0x46 (0xC6)
   671 const TInt KErrIrObexRespProxyAuthenReqd = KErrIrObexRespBase - ERespProxyAuthenReqd;	//-5571 returns 0x47 (0xC7)
   672 const TInt KErrIrObexRespTimedOut		= KErrIrObexRespBase - ERespTimedOut;			//-5572 returns 0x48 (0xC8)
   673 const TInt KErrIrObexRespConflict		= KErrIrObexRespBase - ERespConflict;			//-5573 returns 0x49 (0xC9)
   674 const TInt KErrIrObexRespGone			= KErrIrObexRespBase - ERespGone;				//-5574 returns 0x4A (0xCA)
   675 const TInt KErrIrObexRespLengthReqd		= KErrIrObexRespBase - ERespLengthReqd;			//-5575 returns 0x4B (0xCB)
   676 const TInt KErrIrObexRespPreCondFailed	= KErrIrObexRespBase - ERespPreCondFailed;		//-5576 returns 0x4C (0xCC)
   677 const TInt KErrIrObexRespReqEntityTooLarge = KErrIrObexRespBase - ERespReqEntityTooLarge;//-5577 returns 0x4D (0xCD)
   678 const TInt KErrIrObexRespReqURLTooLarge	= KErrIrObexRespBase - ERespReqURLTooLarge;		//-5578 returns 0x4E (0xCE)
   679 const TInt KErrIrObexRespUnsupMediaType = KErrIrObexRespBase - ERespUnsupMediaType;		//-5579 returns 0x4F (0xCF)
   680 const TInt KErrIrObexRespInternalError	= KErrIrObexRespBase - ERespInternalError;		//-5580 returns 0x50 (0xD0)
   681 const TInt KErrIrObexRespNotImplemented = KErrIrObexRespBase - ERespNotImplemented;		//-5581 returns 0x51 (0xD1)
   682 const TInt KErrIrObexRespBadGateway		= KErrIrObexRespBase - ERespBadGateway;			//-5582 returns 0x52 (0xD2)
   683 const TInt KErrIrObexRespServiceUnavail = KErrIrObexRespBase - ERespServiceUnavail;		//-5583 returns 0x53 (0xD3)
   684 const TInt KErrIrObexRespGatewayTimeout = KErrIrObexRespBase - ERespGatewayTimeout;		//-5584 returns 0x54 (0xD4)
   685 const TInt KErrIrObexRespHTTPVerNotSupp = KErrIrObexRespBase - ERespHTTPVerNotSupp;		//-5585 returns 0x55 (0xD5)
   686 const TInt KErrIrObexRespDatabaseFull	= KErrIrObexRespBase - ERespDatabaseFull;		//-5596 returns 0x60 (0xE0)
   687 const TInt KErrIrObexRespDatabaseLocked = KErrIrObexRespBase - ERespDatabaseLocked;		//-5597 returns 0x61 (0xE1)
   688 
   689 #endif // __OBEXCONSTANTS_H