epoc32/include/obexconstants.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
equal deleted inserted replaced
1:666f914201fb 2:2fe1408b6811
     1 obexconstants.h
     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