epoc32/include/obexconstants.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
     1.1 --- a/epoc32/include/obexconstants.h	Tue Nov 24 13:55:44 2009 +0000
     1.2 +++ b/epoc32/include/obexconstants.h	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -1,1 +1,689 @@
     1.4 -obexconstants.h
     1.5 +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +// All rights reserved.
     1.7 +// This component and the accompanying materials are made available
     1.8 +// 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
     1.9 +// which accompanies this distribution, and is available
    1.10 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.11 +//
    1.12 +// Initial Contributors:
    1.13 +// Nokia Corporation - initial contribution.
    1.14 +//
    1.15 +// Contributors:
    1.16 +//
    1.17 +// Description:
    1.18 +//
    1.19 +
    1.20 +
    1.21 +
    1.22 +/**
    1.23 + @file
    1.24 + @publishedAll
    1.25 + @released
    1.26 +*/
    1.27 +
    1.28 +#ifndef __OBEXCONSTANTS_H
    1.29 +#define __OBEXCONSTANTS_H
    1.30 +
    1.31 +#include <e32std.h>
    1.32 +#include <es_sock.h>
    1.33 +#include <ir_sock.h>
    1.34 +#include <bt_sock.h>
    1.35 +#include <obexpanics.h>
    1.36 +
    1.37 +//common to request & resp digests
    1.38 +
    1.39 +/** @internalComponent */
    1.40 +const TInt KChallResponseSize = 58;
    1.41 +/** @internalComponent */
    1.42 +const TInt KMinChallResponseSize = 18; //Nonce(16) + tag(1) + size(1)
    1.43 +/** @internalComponent */
    1.44 +const TInt KObexNonceSize = 16;
    1.45 +/** @internalComponent */
    1.46 +const TUint8 KObexRequireUID = 0x01;
    1.47 +
    1.48 +//request or chall
    1.49 +/** @internalComponent */
    1.50 +const TUint KObexChallNonceTag = 0;
    1.51 +/** @internalComponent */
    1.52 +const TUint8 KObexChallOptionsTag = 0x01;
    1.53 +/** @internalComponent */
    1.54 +const TUint8 KObexChallRealmTag = 0x02;
    1.55 +/** @internalComponent */
    1.56 +const TInt KObexChallOptionSize = 1; //this can't be changed from one without making
    1.57 +/** @internalComponent */
    1.58 +const TUint KObexChallHeaderSize = 23; //assuming no Realm data
    1.59 +
    1.60 +//response
    1.61 +/** @internalComponent */
    1.62 +const TUint KObexRespTag = 0;
    1.63 +/** @internalComponent */
    1.64 +const TInt KObexRespSize = 16;
    1.65 +/** @internalComponent */
    1.66 +const TUint8 KObexRespUserIDTag = 0x01;
    1.67 +/** @internalComponent */
    1.68 +const TUint8 KObexRespNonceTag = 0x02;
    1.69 +
    1.70 +/** @internalComponent */
    1.71 +const TUint8 KObexHeaderTypeMask = 0xc0;
    1.72 +/** @internalComponent */
    1.73 +const TUint8 KObexHeaderTypeOffset = 6;
    1.74 +
    1.75 +#ifdef _UNICODE
    1.76 +/** @internalComponent */
    1.77 +const TInt KUidOBEXTransportModule = 0x10003d56;
    1.78 +#else
    1.79 +/** @internalComponent */
    1.80 +const TInt KUidOBEXTransportModule = 0x1000169c;
    1.81 +#endif
    1.82 +
    1.83 +/** @internalComponent */
    1.84 +const TInt KUsbIntStringDescLength = 30;
    1.85 +
    1.86 +/** @internalComponent */
    1.87 +const TUint8 KFourByteTimeHeaderAddress = 0xc4;
    1.88 +
    1.89 +// Header mask definitions.
    1.90 +// Old style accessor for which headers are present or
    1.91 +// should be sent by an object.  Now deprecated, use the
    1.92 +// header iterator instead.
    1.93 +/** @internalComponent */
    1.94 +const TUint16 KObexHdrName				= 0x0001;
    1.95 +/** @internalComponent */
    1.96 +const TUint16 KObexHdrType				= 0x0002;
    1.97 +/** @internalComponent */
    1.98 +const TUint16 KObexHdrLength			= 0x0004;
    1.99 +/** @internalComponent */
   1.100 +const TUint16 KObexHdrTime				= 0x0008;
   1.101 +/** @internalComponent */
   1.102 +const TUint16 KObexHdrDescription		= 0x0010;
   1.103 +/** @internalComponent */
   1.104 +const TUint16 KObexHdrTarget			= 0x0020;
   1.105 +/** @internalComponent */
   1.106 +const TUint16 KObexHdrConnectionID		= 0x0040;
   1.107 +/** @internalComponent */
   1.108 +const TUint16 KObexHdrBody				= 0x0080;
   1.109 +/** @internalComponent */
   1.110 +const TUint16 KObexHdrEndOfBody			= 0x0100;
   1.111 +/** @internalComponent */
   1.112 +const TUint16 KObexHdrHttp				= 0x0200;
   1.113 +/** @internalComponent */
   1.114 +const TUint16 KObexHdrAppParam			= 0x0400;
   1.115 +/** @internalComponent */
   1.116 +const TUint16 KObexHdrUserDefined		= 0x0800;
   1.117 +/** @internalComponent */
   1.118 +const TUint16 KObexHdrCount				= 0x1000;
   1.119 +/** @internalComponent */
   1.120 +const TUint16 KObexHdrCreatorID			= 0x2000;
   1.121 +/** @internalComponent */
   1.122 +const TUint16 KObexHdrWanUUID			= 0x4000;
   1.123 +/** @internalComponent */
   1.124 +const TUint16 KObexHdrObjectClass		= 0x8000;
   1.125 +
   1.126 +/** @internalComponent */
   1.127 +const TUint8  KObexUserDefinedHdrAddrMin	 = 0x30; //start of user defined header address range
   1.128 +/** @internalComponent */
   1.129 +const TUint8  KObexUserDefinedHdrAddrMax	 = 0x3F; //end of user defined header address range
   1.130 +
   1.131 +/** @internalComponent */
   1.132 +const TUint8 KObexVersion           	= 0x10;		///< Version 1.0 (still correct for Obex spec v 1.2)
   1.133 +
   1.134 +/** @internalComponent */
   1.135 +const TUint8 KObexObjectFieldSize   	= 127;
   1.136 +/** @internalComponent */
   1.137 +const TUint8 KObexObjectDescriptionSize = 255;
   1.138 +
   1.139 +// Extended errors for IrObex
   1.140 +
   1.141 +/** Must not use as not in the allocated range */
   1.142 +const TInt KErrIrObexRespBase			= - 5500; 
   1.143 +
   1.144 +/** Extended error for IrObex - No other infrared device found */
   1.145 +const TInt KErrIrObexClientNoDevicesFound = -5501;
   1.146 +
   1.147 +/** Extended error for IrObex - Other IR device cannot handle IrObex */
   1.148 +const TInt KErrIrObexClientPeerDoesNotHaveObex = -5502;
   1.149 +
   1.150 +/** Extended error for IrObex - Other IR device aborted the transfer */
   1.151 +const TInt KErrIrObexClientPutPeerAborted	= -5503;
   1.152 +
   1.153 +/** Extended error for IrObex - Peer device aborted data transmission/obex sending */
   1.154 +const TInt KErrIrObexServerPutPeerAborted = -5507;
   1.155 +
   1.156 +/** Extended error for IrObex - Cannot authorise the challenge so link dropped */
   1.157 +const TInt KErrIrObexConnectChallRejected = -5512;
   1.158 +
   1.159 +// Other Obex errors defined in the system but no longer used
   1.160 +// Do not reuse the number!
   1.161 +// KErrIrObexClientPutPeerCannotHandleObject -5504
   1.162 +// KErrIrObexServerPutFileWriteError		-5509
   1.163 +// KErrIrObexClientFirstPutFailed			-5510
   1.164 +// KErrIrObexClientSubsequentPutFailed		-5511
   1.165 +
   1.166 +/** Unexpected event for the given state */
   1.167 +const TInt KErrIrObexBadEvent = -5513;
   1.168 +
   1.169 +/** Event occurred while Server is stopped */
   1.170 +const TInt KErrIrObexServerStopped = -5514;
   1.171 +
   1.172 +/** Packet received while state machine is in a wait state */
   1.173 +const TInt KErrIrObexPacketDuringWait = -5515;
   1.174 +
   1.175 +// There are other error codes defined at the end of this file,
   1.176 +// which are a direct mapping of specific Obex error codes and
   1.177 +// are returned by the client.
   1.178 +
   1.179 +
   1.180 +// Flags used by Connect
   1.181 +// ...None in OBEX 1.0
   1.182 +
   1.183 +// Flags used by SetPath
   1.184 +/** @internalComponent */
   1.185 +const TUint8 KObexSetPathParent	= 0x01;
   1.186 +
   1.187 +/**
   1.188 +Version number for TObexTransportInfo and derived classes.  
   1.189 +When iVersion is set to this value the following fields of TObexTransportInfo  
   1.190 +must be set:
   1.191 +iTransportName, 
   1.192 +iReceiveMtu
   1.193 +iTransmitMtu
   1.194 +The iVersion member variable must be set to this value. If in future any of the 
   1.195 +iFuture variables are used a new version constant will be created.
   1.196 +
   1.197 +@see TObexTransportInfo
   1.198 +@publishedAll
   1.199 +@released
   1.200 +*/
   1.201 +const TInt KObexTransportInfoVersion0 = 0;	
   1.202 +
   1.203 +/**
   1.204 +Default for the receive and transmit MTU sizes
   1.205 +Use this default value for setting the iReceiveMtu or iTransmitMtu in TObexTransportInfo
   1.206 +objects or derived classes.
   1.207 +
   1.208 +@see TObexTransportInfo
   1.209 +@publishedAll
   1.210 +@released
   1.211 +*/
   1.212 +const TInt KObexDefaultMtuSize = 4000;
   1.213 +
   1.214 +/**
   1.215 +Default value for the number of discovery slots to use.  Use this value as a default 
   1.216 +for iDiscoverySlots in TObexIrdaV2TransportInfo.  
   1.217 +
   1.218 +@see TObexIrdaV2TransportInfo
   1.219 +@publishedAll
   1.220 +@released
   1.221 +*/
   1.222 +const TUint KObexIrdaDefaultDiscoverySlotsToUse = 1;
   1.223 +
   1.224 +/**
   1.225 +Default value for the number of discovery attempts made.  Use this value as a default for iDiscoveryAttempts
   1.226 +in TObexIrdaV2TransportInfo.  
   1.227 +@see TObexIrdaV2TransportInfo
   1.228 +@publishedAll
   1.229 +@released
   1.230 +*/
   1.231 +const TUint KObexIrdaDefaultDiscoveryAttempts = 4;
   1.232 +
   1.233 +// Constants used to define which transport Obex will run over.
   1.234 +// Used in TObexTransportInfo and TObexProtocolInfo's iTransport member.
   1.235 +
   1.236 +/**
   1.237 +Protocol string when running over IrDA
   1.238 +@see TObexIrProtocolInfo
   1.239 +@see TObexTransportInfo
   1.240 +@publishedAll
   1.241 +@released
   1.242 +*/
   1.243 +_LIT(KObexIrTTPProtocol, "IrTinyTP");
   1.244 +
   1.245 +/**
   1.246 +Protocol string when running over IrDA
   1.247 +Using this version indicates that the configuration object contains discovery parameters.
   1.248 +@see TObexIrProtocolInfo
   1.249 +@publishedAll
   1.250 +@released
   1.251 +*/
   1.252 +_LIT(KObexIrTTPProtocolV2, "IrTinyTP-V2");
   1.253 +
   1.254 +/**
   1.255 +Protocol string when running over IrDA
   1.256 +Using this version indicates that the configuration object contains the device nickname.
   1.257 +@see TObexIrProtocolInfo
   1.258 +@publishedAll
   1.259 +
   1.260 +@capability WriteDeviceData If the TObexIrV3TransportInfo is passed as the argument
   1.261 +                            to CObexServer::NewL or CObexClient::NewL and the associated 
   1.262 +                            name is valid.
   1.263 +@released
   1.264 +*/
   1.265 +_LIT(KObexIrTTPProtocolV3, "IrTinyTP-V3");
   1.266 +
   1.267 +/**
   1.268 +Protocol string when running over Bluetooth
   1.269 +@see TObexBluetoothProtocolInfo
   1.270 +@see TObexTransportInfo
   1.271 +@publishedAll
   1.272 +@released
   1.273 +*/
   1.274 +_LIT(KObexRfcommProtocol, "RFCOMM");
   1.275 +
   1.276 +/**
   1.277 +Protocol string when running over USB
   1.278 +@see TObexUsbProtocolInfo
   1.279 +@see TObexTransportInfo
   1.280 +@publishedAll
   1.281 +@released
   1.282 +*/
   1.283 +_LIT(KObexUsbProtocol, "USB");
   1.284 +
   1.285 +/**
   1.286 +Place holder for...
   1.287 +protocol string that should be used 
   1.288 +if a Win32 emulator USB transport were 
   1.289 +to be created for testing.
   1.290 +@see TObexUsbProtocolInfo
   1.291 +@see TObexTransportInfo
   1.292 +@publishedAll
   1.293 +@released
   1.294 +*/
   1.295 +_LIT(KObexWin32UsbProtocol, "Win32Usb");
   1.296 +
   1.297 +/**
   1.298 +Protocol string when running over USB using client driver extensions
   1.299 +@see TObexUsbProtocolInfoV2
   1.300 +@see TObexTransportInfo
   1.301 +@publishedAll
   1.302 +@released
   1.303 +*/
   1.304 +_LIT(KObexUsbProtocolV2, "USB-V2");
   1.305 +
   1.306 +/** 
   1.307 +This class is derived for each underlying transport protocol OBEX 
   1.308 +runs over.
   1.309 +
   1.310 +The iTransport member holds the unique name for the transport. For example for
   1.311 +infra-red (TinyTP) this is "IrTinyTP" or KObexIrTTPProtocol.
   1.312 +
   1.313 +@see TObexIrProtocolInfo for running over TinyTP
   1.314 +@see TObexBluetoothProtocolInfo for running over Rfcomm
   1.315 +@see TObexUsbProtocolInfo for running over USB
   1.316 +@see TObexUsbProtocolInfoV2 for running over USB using client driver extensions
   1.317 +
   1.318 +@see KObexIrTTPProtocol
   1.319 +@see KObexIrTTPProtocolV2
   1.320 +@see KObexRfcommProtocol
   1.321 +@see KObexUsbProtocol
   1.322 +@see KObexUsbProtocolV2
   1.323 +
   1.324 +@publishedAll
   1.325 +@released
   1.326 +*/
   1.327 +NONSHARABLE_CLASS(TObexProtocolInfo)
   1.328 +	{
   1.329 +public:
   1.330 +	/** Holds the unique name for the transport. */
   1.331 +	TBuf<60> iTransport;
   1.332 +private:
   1.333 +	// This data padding has been added to help prevent future binary compatibility breaks	
   1.334 +	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   1.335 +	TUint32     iPadding1; 
   1.336 +	TUint32     iPadding2; 		
   1.337 +	};
   1.338 +
   1.339 +/** 
   1.340 +Used to describe IrDA specific protocol information
   1.341 +	
   1.342 +To access the default OBEX server, the IAS class value should be "OBEX"
   1.343 +and the IAS attribute name "IrDA:TinyTP:LsapSel". 
   1.344 +
   1.345 +@publishedAll
   1.346 +@released
   1.347 +*/
   1.348 +NONSHARABLE_CLASS(TObexIrProtocolInfo) : public TObexProtocolInfo
   1.349 +	{
   1.350 +public:
   1.351 +	/** IrDA address information for this connection, as used in the IrDA sockets interface.
   1.352 +	Refer to the SDK for more information about this.
   1.353 +	Its main use is for setting the port that the local machine will listen on. */
   1.354 +	TIrdaSockAddr iAddr;
   1.355 +	/** The IAS class value that the OBEX session will register its listener port,
   1.356 +	or request remote port with. */
   1.357 +	TBuf8<KIASClassNameMax> iClassName;
   1.358 +	/** The IAS attribute value that the OBEX session will register its listener port,
   1.359 +	or request remote port with. */
   1.360 +	TBuf8<KIASAttributeNameMax> iAttributeName;
   1.361 +	/** The number of discovery slots to use. */
   1.362 +	TUint8 iDiscoverySlots;
   1.363 +	/** The number of discovery attempts to make. */
   1.364 +	TUint8 iDiscoveryAttempts;
   1.365 +
   1.366 +private:
   1.367 +	// This data padding has been added to help prevent future binary compatibility breaks	
   1.368 +	// None of these padding variables have been zero'd because they are currently not used
   1.369 +	TUint16     iPadding1; 
   1.370 +	TUint32     iPadding2; 		
   1.371 +	TUint32     iPadding3; 
   1.372 +	TUint32     iPadding4; 	
   1.373 +	};
   1.374 +
   1.375 +/** 
   1.376 +Used to describe Bluetooth specific protocol information
   1.377 +	
   1.378 +@publishedAll
   1.379 +@released
   1.380 +*/
   1.381 +NONSHARABLE_CLASS(TObexBluetoothProtocolInfo) : public TObexProtocolInfo
   1.382 +	{
   1.383 +public:
   1.384 +	/** 
   1.385 +	For OBEX servers:
   1.386 +	This defines the server channel on which the OBEX server listens 
   1.387 +	for connections. The server channel is set using SetPort on the 
   1.388 +	TRfcommSockAddr.
   1.389 +	Note:
   1.390 +	1) Unless the channel is defined as KRfcommPassiveAutoBind 
   1.391 +	it may be in use when the obex server attempts to 'bind' to it
   1.392 +	2) If the channel is defined as KRfcommPassiveAutoBind 
   1.393 +	then when the server is FIRST started it will attempt 
   1.394 +	to find a free RFComm channel. If this is successful 
   1.395 +	that free channel will be used as the server channel 
   1.396 +	for the life time of the obex server including
   1.397 +	when it is 'stopped' and re-'started'.
   1.398 +	3) When the obex server is stopped, and very
   1.399 +	briefly when a bluetooth connection comes down, the
   1.400 +	obex server releases its server channel. It is possible
   1.401 +	therefore that during this time another application might bind
   1.402 +	to it. This will cause an error when the obex server tries
   1.403 +	to re-bind.
   1.404 +
   1.405 +	Also note that a Bluetooth OBEX server will itself set the Object Transfer
   1.406 +	bit in the Service Class as required by the Generic Object Exchange
   1.407 +	Profile so the user need not do this.	
   1.408 +	@see CObexServer
   1.409 +	
   1.410 +	For OBEX clients:
   1.411 +	This defines the server channel and the 
   1.412 +	device address to connect to. The server channel 
   1.413 +	and device address are set respectively using SetPort 
   1.414 +	and SetBTAddr on the TRfcommSockAddr.
   1.415 +	*/
   1.416 +	TRfcommSockAddr iAddr;
   1.417 +	
   1.418 +private:
   1.419 +	// This data padding has been added to help prevent future binary compatibility breaks	
   1.420 +	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   1.421 +	TUint32     iPadding1; 
   1.422 +	TUint32     iPadding2; 	
   1.423 +	};
   1.424 +
   1.425 +/** 
   1.426 +Used to describe USB specific protocol information
   1.427 +	
   1.428 +@publishedAll
   1.429 +@released
   1.430 +*/
   1.431 +NONSHARABLE_CLASS(TObexUsbProtocolInfo) : public TObexProtocolInfo
   1.432 +	{
   1.433 +public:
   1.434 +	/** Provides a string to be attached to the Obex function's Communication Class interface,
   1.435 +	which may be used to identify the Obex service. */
   1.436 +	TBuf16<KUsbIntStringDescLength> iInterfaceStringDescriptor;
   1.437 +	};
   1.438 +
   1.439 +/** 
   1.440 +Used to set options used by the extended USB client driver for improved performance
   1.441 +	
   1.442 +@see TObexUsbProtocolInfo
   1.443 +@see RDevUsbcClient
   1.444 +@publishedAll
   1.445 +@released
   1.446 +*/
   1.447 +NONSHARABLE_CLASS(TObexUsbProtocolInfoV2) : public TObexUsbProtocolInfo
   1.448 +	{
   1.449 +public:
   1.450 +	/** Bitmap containing the bandwidth priorities to use on IN and OUT endpoints
   1.451 +	@see TUsbcBandwidthPriority
   1.452 +	*/
   1.453 +	TInt iBandwidthPriority;
   1.454 +	/** Specifies whether to use DMA on the bulk OUT endpoint */
   1.455 +	TBool iDmaOnOutEndpoint;
   1.456 +	/** Specifies whether to use DMA on the bulk IN endpoint */
   1.457 +	TBool iDmaOnInEndpoint;
   1.458 +	
   1.459 +private:
   1.460 +	// This data padding has been added to help prevent future binary compatibility breaks	
   1.461 +	// None of these padding variables have been zero'd because they are currently not used
   1.462 +	TUint32     iPadding1; 
   1.463 +	TUint32     iPadding2; 		
   1.464 +	TUint32     iPadding3; 
   1.465 +	TUint32     iPadding4; 	
   1.466 +	};
   1.467 +
   1.468 +/**
   1.469 +Contains information about OBEX packet sizing policy, defining the
   1.470 +maximum buffer size for receive and transmit packets
   1.471 +*/
   1.472 +NONSHARABLE_CLASS(TObexProtocolPolicy)
   1.473 +	{
   1.474 +public:
   1.475 +	IMPORT_C TObexProtocolPolicy ();	// Sets version and default values
   1.476 +
   1.477 +	IMPORT_C TInt SetReceiveMtu ( TUint16 aReceiveMtu );
   1.478 +	IMPORT_C TInt SetTransmitMtu ( TUint16 aTransmitMtu );
   1.479 +	IMPORT_C TUint16 Version () const;
   1.480 +	IMPORT_C TUint16 ReceiveMtu () const;
   1.481 +	IMPORT_C TUint16 TransmitMtu () const;
   1.482 +
   1.483 +private:
   1.484 +	TUint16 iVersion;
   1.485 +	TUint16 iReceiveMtu;
   1.486 +	TUint16 iTransmitMtu;
   1.487 +
   1.488 +	// This data padding has been added to help prevent future binary compatibility breaks	
   1.489 +	// None of these padding variables have been zero'd because they are currently not used
   1.490 +	TUint32     iPadding1; 
   1.491 +	TUint32     iPadding2; 		
   1.492 +	TUint32     iPadding3; 
   1.493 +	TUint32     iPadding4; 	
   1.494 +	};
   1.495 +
   1.496 +struct TObexConnectionInfo;
   1.497 +
   1.498 +/**
   1.499 +TObexConnectInfo
   1.500 +This structure contains information used during OBEX connection. iVersion
   1.501 +holds the encoded OBEX version of the machine, use @c VersionMajor() and
   1.502 +@c VersionMinor() to extract the parts of the version number (each having a
   1.503 +value from 0 to 15). @c iFlags holds OBEX connection flags. @c iWho holds 
   1.504 +the Who attribute from the connect packet, if any was specified, or 
   1.505 +otherwise has a length of 0. 
   1.506 +It is recommended that this class is only ever allocated on the heap as it is quite big.
   1.507 +*/
   1.508 +NONSHARABLE_CLASS(TObexConnectInfo)
   1.509 +	{
   1.510 +public:
   1.511 +	IMPORT_C TObexConnectInfo();
   1.512 +	IMPORT_C TUint8 VersionMajor() const;
   1.513 +	IMPORT_C TUint8 VersionMinor() const;
   1.514 +public:
   1.515 +	TUint8 iVersion; /** Encoded OBEX version of the machine*/
   1.516 +	TUint8 iFlags; /** iFlags holds OBEX connection flags*/
   1.517 +	TBuf8<KObexObjectDescriptionSize> iWho; /** the Who attribute from the connect packet, if any was specified */
   1.518 +	TBuf8<KObexObjectDescriptionSize> iTargetHeader; /** the Target header from the connect packet, if any was specified */
   1.519 +	
   1.520 +private:
   1.521 +	// This data padding has been added to help prevent future binary compatibility breaks	
   1.522 +	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   1.523 +	TUint32     iPadding1; 
   1.524 +	TUint32     iPadding2; 	
   1.525 +	};
   1.526 +
   1.527 +
   1.528 +
   1.529 +//if these codes are extended due to a IRObex spec update ensure 
   1.530 +//that the TInt immediately below are updated 
   1.531 +//and the default in the method IrOBEXUtil::ObexResponse is also updated
   1.532 +enum TObexResponse  
   1.533 +	{ 
   1.534 +/** Response is "Continue" */	
   1.535 +	ERespContinue			= 0x10,
   1.536 +	
   1.537 +/** Response is "Success" */		
   1.538 +	ERespSuccess			= 0x20,
   1.539 +	
   1.540 +/** Response is "Created" */		
   1.541 +	ERespCreated			= 0x21,
   1.542 +	
   1.543 +/** Response is "Accepted" */		
   1.544 +	ERespAccepted			= 0x22,
   1.545 +	
   1.546 +/** Response is "Non-Authenticated Information" */		
   1.547 +	ERespNonAuthInfo		= 0x23,
   1.548 +	
   1.549 +/** Response is "No Content" */			
   1.550 +	ERespNoContent			= 0x24,
   1.551 +	
   1.552 +/** Response is "Reset Content" */				
   1.553 +	ERespResetContent		= 0x25,
   1.554 +	
   1.555 +/** Response is "Partial Content" */					
   1.556 +	ERespPartialContent		= 0x26,
   1.557 +	
   1.558 +/** Response is "Multiple Choices" */						
   1.559 +	ERespMultipleChoices	= 0x30,
   1.560 +	
   1.561 +/** Response is "Moved Permanently" */						
   1.562 +	ERespMovedPerm			= 0x31,
   1.563 +	
   1.564 +/** Response is "Moved Temporarily" */							
   1.565 +	ERespMovedTemp			= 0x32,
   1.566 +
   1.567 +/** Response is "See Other" */								
   1.568 +	ERespSeeOther			= 0x33,
   1.569 +
   1.570 +/** Response is "Not Modified" */									
   1.571 +	ERespNotModified		= 0x34,
   1.572 +
   1.573 +/** Response is "Use Proxy" */									
   1.574 +	ERespUseProxy			= 0x35,
   1.575 +
   1.576 +/** Response is "Bad Request" */									
   1.577 +	ERespBadRequest			= 0x40,
   1.578 +
   1.579 +/** Response is "Unauthorized" */									
   1.580 +	ERespUnauthorized		= 0x41,
   1.581 +
   1.582 +/** Response is "Payment Required" */									
   1.583 +	ERespPaymentRequired	= 0x42,
   1.584 +
   1.585 +/** Response is "Forbidden" */									
   1.586 +	ERespForbidden			= 0x43,
   1.587 +
   1.588 +/** Response is "Not Found" */										
   1.589 +	ERespNotFound			= 0x44,
   1.590 +
   1.591 +/** Response is "Method Not Allowed" */										
   1.592 +	ERespMethodNotAllowed	= 0x45,
   1.593 +
   1.594 +/** Response is "Not Acceptable" */									
   1.595 +	ERespNotAcceptable		= 0x46,
   1.596 +
   1.597 +/** Response is "Proxy Authentication is Required" */										
   1.598 +	ERespProxyAuthenReqd	= 0x47,
   1.599 +
   1.600 +/** Response is "Timed Out" */										
   1.601 +	ERespTimedOut			= 0x48,
   1.602 +
   1.603 +/** Response is "Conflict" */										
   1.604 +	ERespConflict			= 0x49,
   1.605 +
   1.606 +/** Response is "Gone" */										
   1.607 +	ERespGone				= 0x4A,
   1.608 +
   1.609 +/** Response is "Length Required" */										
   1.610 +	ERespLengthReqd			= 0x4B,
   1.611 +
   1.612 +/** Response is "Precondition Failed" */											
   1.613 +	ERespPreCondFailed		= 0x4C,
   1.614 +
   1.615 +/** Response is "Required Entity is Too Large" */											
   1.616 +	ERespReqEntityTooLarge	= 0x4D,
   1.617 +
   1.618 +/** Response is "Required URL is Too Large" */											
   1.619 +	ERespReqURLTooLarge		= 0x4E,
   1.620 +
   1.621 +/** Response is "Unsupported Media Type" */											
   1.622 +	ERespUnsupMediaType		= 0x4F,
   1.623 +
   1.624 +/** Response is "Internal Error" */											
   1.625 +	ERespInternalError		= 0x50,
   1.626 +
   1.627 +/** Response is "Not Implemented" */											
   1.628 +	ERespNotImplemented		= 0x51,
   1.629 +
   1.630 +/** Response is "Bad Gateway" */											
   1.631 +	ERespBadGateway			= 0x52,
   1.632 +
   1.633 +/** Response is "Service Unavailable" */											
   1.634 +	ERespServiceUnavail		= 0x53,
   1.635 +
   1.636 +/** Response is "Gateway Timeout" */											
   1.637 +	ERespGatewayTimeout		= 0x54,
   1.638 +
   1.639 +/** Response is "HTTP Version is Not Supported" */											
   1.640 +	ERespHTTPVerNotSupp		= 0x55,
   1.641 +
   1.642 +/** Response is "Database is Full" */											
   1.643 +	ERespDatabaseFull		= 0x60,
   1.644 +
   1.645 +/** Response is "Database is Locked" */											
   1.646 +	ERespDatabaseLocked		= 0x61,
   1.647 +
   1.648 +/** Response is "Service is Unavailable" */											
   1.649 +	ERespServiceUnavailable = 0xD3,
   1.650 +	};
   1.651 +
   1.652 +
   1.653 +//some error codes to be used specifically by the client
   1.654 +//these shall, be mapped directly to OBEX defined error codes.
   1.655 +const TInt KErrIrObexRespSuccess		= KErrIrObexRespBase - ERespSuccess;			//-5532 returns 0x20 (0xA0)
   1.656 +const TInt KErrIrObexRespCreated		= KErrIrObexRespBase - ERespCreated;			//-5533 returns 0x21 (0xA1)
   1.657 +const TInt KErrIrObexRespAccepted		= KErrIrObexRespBase - ERespAccepted;			//-5534 returns 0x22 (0xA2)
   1.658 +const TInt KErrIrObexRespNonAuthInfo	= KErrIrObexRespBase - ERespNonAuthInfo;		//-5535 returns 0x23 (0xA3)
   1.659 +const TInt KErrIrObexRespNoContent		= KErrIrObexRespBase - ERespNoContent;			//-5536 returns 0x24 (0xA4)
   1.660 +const TInt KErrIrObexRespResetContent	= KErrIrObexRespBase - ERespResetContent;		//-5537 returns 0x25 (0xA5)
   1.661 +const TInt KErrIrObexRespPartialContent = KErrIrObexRespBase - ERespPartialContent;		//-5538 returns 0x26 (0xA6)
   1.662 +const TInt KErrIrObexRespMultipleChoices = KErrIrObexRespBase - ERespMultipleChoices;	//-5548 returns 0x30 (0xB0)
   1.663 +const TInt KErrIrObexRespMovedPerm		= KErrIrObexRespBase - ERespMovedPerm;			//-5549 returns 0x31 (0xB1)
   1.664 +const TInt KErrIrObexRespMovedTemp		= KErrIrObexRespBase - ERespMovedTemp;			//-5550 returns 0x32 (0xB2)
   1.665 +const TInt KErrIrObexRespSeeOther		= KErrIrObexRespBase - ERespSeeOther;			//-5551 returns 0x33 (0xB3)
   1.666 +const TInt KErrIrObexRespNotModified	= KErrIrObexRespBase - ERespNotModified;		//-5552 returns 0x34 (0xB4)
   1.667 +const TInt KErrIrObexRespUseProxy		= KErrIrObexRespBase - ERespUseProxy;			//-5553 returns 0x35 (0xB5)
   1.668 +const TInt KErrIrObexRespBadRequest		= KErrIrObexRespBase - ERespBadRequest;			//-5564 returns 0x40 (0xC0)
   1.669 +const TInt KErrIrObexRespUnauthorized	= KErrIrObexRespBase - ERespUnauthorized;		//-5565 returns 0x41 (0xC1)
   1.670 +const TInt KErrIrObexRespPaymentRequired = KErrIrObexRespBase - ERespPaymentRequired;	//-5566 returns 0x42 (0xC2)
   1.671 +const TInt KErrIrObexRespForbidden		= KErrIrObexRespBase - ERespForbidden;			//-5567 returns 0x43 (0xC3)
   1.672 +const TInt KErrIrObexRespNotFound		= KErrIrObexRespBase - ERespNotFound;			//-5568 returns 0x44 (0xC4)
   1.673 +const TInt KErrIrObexRespMethodNotAllowed = KErrIrObexRespBase - ERespMethodNotAllowed;	//-5569 returns 0x45 (0xC5)
   1.674 +const TInt KErrIrObexRespNotAcceptable	= KErrIrObexRespBase - ERespNotAcceptable;		//-5570 returns 0x46 (0xC6)
   1.675 +const TInt KErrIrObexRespProxyAuthenReqd = KErrIrObexRespBase - ERespProxyAuthenReqd;	//-5571 returns 0x47 (0xC7)
   1.676 +const TInt KErrIrObexRespTimedOut		= KErrIrObexRespBase - ERespTimedOut;			//-5572 returns 0x48 (0xC8)
   1.677 +const TInt KErrIrObexRespConflict		= KErrIrObexRespBase - ERespConflict;			//-5573 returns 0x49 (0xC9)
   1.678 +const TInt KErrIrObexRespGone			= KErrIrObexRespBase - ERespGone;				//-5574 returns 0x4A (0xCA)
   1.679 +const TInt KErrIrObexRespLengthReqd		= KErrIrObexRespBase - ERespLengthReqd;			//-5575 returns 0x4B (0xCB)
   1.680 +const TInt KErrIrObexRespPreCondFailed	= KErrIrObexRespBase - ERespPreCondFailed;		//-5576 returns 0x4C (0xCC)
   1.681 +const TInt KErrIrObexRespReqEntityTooLarge = KErrIrObexRespBase - ERespReqEntityTooLarge;//-5577 returns 0x4D (0xCD)
   1.682 +const TInt KErrIrObexRespReqURLTooLarge	= KErrIrObexRespBase - ERespReqURLTooLarge;		//-5578 returns 0x4E (0xCE)
   1.683 +const TInt KErrIrObexRespUnsupMediaType = KErrIrObexRespBase - ERespUnsupMediaType;		//-5579 returns 0x4F (0xCF)
   1.684 +const TInt KErrIrObexRespInternalError	= KErrIrObexRespBase - ERespInternalError;		//-5580 returns 0x50 (0xD0)
   1.685 +const TInt KErrIrObexRespNotImplemented = KErrIrObexRespBase - ERespNotImplemented;		//-5581 returns 0x51 (0xD1)
   1.686 +const TInt KErrIrObexRespBadGateway		= KErrIrObexRespBase - ERespBadGateway;			//-5582 returns 0x52 (0xD2)
   1.687 +const TInt KErrIrObexRespServiceUnavail = KErrIrObexRespBase - ERespServiceUnavail;		//-5583 returns 0x53 (0xD3)
   1.688 +const TInt KErrIrObexRespGatewayTimeout = KErrIrObexRespBase - ERespGatewayTimeout;		//-5584 returns 0x54 (0xD4)
   1.689 +const TInt KErrIrObexRespHTTPVerNotSupp = KErrIrObexRespBase - ERespHTTPVerNotSupp;		//-5585 returns 0x55 (0xD5)
   1.690 +const TInt KErrIrObexRespDatabaseFull	= KErrIrObexRespBase - ERespDatabaseFull;		//-5596 returns 0x60 (0xE0)
   1.691 +const TInt KErrIrObexRespDatabaseLocked = KErrIrObexRespBase - ERespDatabaseLocked;		//-5597 returns 0x61 (0xE1)
   1.692 +
   1.693 +#endif // __OBEXCONSTANTS_H