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