|
1 // Copyright (c) 2001-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 "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 /** |
|
17 @file |
|
18 @warning : This file contains Rose Model ID comments - please do not delete |
|
19 */ |
|
20 |
|
21 #ifndef __RHTTPCONNECTIONINFO_H__ |
|
22 #define __RHTTPCONNECTIONINFO_H__ |
|
23 |
|
24 // System includes |
|
25 #include <e32std.h> |
|
26 #include <stringpool.h> |
|
27 #include <http/rhttppropertyset.h> |
|
28 |
|
29 //##ModelId=3C4C187A01CA |
|
30 class RHTTPConnectionInfo : public RHTTPPropertySet |
|
31 /** |
|
32 The RHTTPConnectionInfo is used for setting/getting |
|
33 values used for setting up a connection over a protocol. All methods are inherited |
|
34 directly from RHTTPPropertySet. |
|
35 |
|
36 To lookup/change any of the following properties, use |
|
37 RHTTPPropertySet::Property(...) and RHTTPPropertySet::SetPropertyL(...) |
|
38 |
|
39 To remove properties, use RHTTPPropertySet::RemoveProperty(...) for a named property, |
|
40 or RHTTPPropertySet::RemoveAllProperties() for all. |
|
41 |
|
42 The following values are currently defined. Note that new values |
|
43 could be added by individual filters. In general, properties |
|
44 should be defined before the first transaction is created; filters |
|
45 are not obliged to check with the connection info if the values |
|
46 have changed after this point. |
|
47 |
|
48 HTTP::EProxyUsage (default HTTP::EDoNotUseProxy) (HTTP::EDoNotUseProxy | HTTP::EUseProxy) |
|
49 |
|
50 HTTP::EProxyAddress (A Uri for the Proxy server. Should include the port number |
|
51 if it is not the default of 8080) |
|
52 |
|
53 HTTP::EMaxNumTransportHandlers (default 4) |
|
54 |
|
55 HTTP::EMaxNumTransPerTranspHndlr (default 5) |
|
56 |
|
57 HTTP::EHTTPVersion (default HTTP::EHttp11) (HTTP::EHttp11 | HTTP::EHttp10) |
|
58 |
|
59 HTTP::EProtocol (default, and currently only defined value is HTTP::EHTTP) |
|
60 |
|
61 HTTP::EHttpBatching (default HTTP::EDoNotEnableBatching) (HTTP::EDoNotEnableBatching | HTTP::EEnableBatching) |
|
62 |
|
63 HTTP::EBatchingBufferSize (default 1400) |
|
64 |
|
65 HTTP Client can create a connection and set its own preferences, instead of using the |
|
66 default connection preferences specified in COMMS Database. In such cases, the client |
|
67 is responsible for creating the RSocketServ session and RConnection using |
|
68 RSocketServ::Connect(..) and RConnection::Open(..). |
|
69 Client must also start the connection using RConnection::Start(..) and pass the |
|
70 connection preferences to the function using TConnPref. |
|
71 The following session properties should then be set by the client. |
|
72 |
|
73 HTTP::EHttpSocketServ (Handle to RSocketServ session, which is the value obtained |
|
74 by calling RSocketServ::Handle()) |
|
75 |
|
76 HTTP::EHttpSocketConnection (Reference to the RConnection object, obtained from |
|
77 reinterpret_cast(TInt, &connection)) |
|
78 |
|
79 The HTTP Client can also specify what action should be take if during a secure |
|
80 handshakes the server cert cannot be trusted. The choice is for the handshake |
|
81 to automatically cancelled or for a dialog to be raised and the user given the |
|
82 option of continuing with the handshake or cancelling it. The following session |
|
83 property should be used to specify the behaviour. |
|
84 |
|
85 HTTP::ESecureDialog (default HTTP::EDialogPrompt) (HTTP::EDialogPrompt | EDialogNoPrompt) |
|
86 |
|
87 The HTTP Client can specify the socket shutdown mode when the session is closing. At the time |
|
88 of closing the session, any outstanding transactions on open sockets can specify that the |
|
89 socket shutdown mode be set to immediate. The following property can be used to enable this |
|
90 behaviour. |
|
91 |
|
92 HTTP::ESocketShutdownMode (default HTTP::ESocketShutdownNormal) (HTTP::ESocketShutdownNormal | HTTP::ESocketShutdownImmediate |
|
93 |
|
94 The HTTP Client can limit the number of transactions that it will send down one connection when |
|
95 using pipelining. The following value should be set to an integer. When set any outstanding transaction |
|
96 that exceed this number will either be sent separately down a different connection or will |
|
97 be queued until a space becomes available. |
|
98 |
|
99 HTTP::EMaxNumTransactionsToPipeline (default KMaxTInt) (Integer) |
|
100 |
|
101 The session ID is an optional non-negative integer which is attached to the session and any sockets |
|
102 it creates. The session ID will be set on any sockets created by using RSocket::SetOpt() with |
|
103 the level KSOLHttpSessionInfo and the name KSOHttpSessionId (defined in httpsocketconstants.h). |
|
104 The session ID can be retrieved in a Flow Hook by implementing MIp6Hook::SetFlowOption() to |
|
105 look for the aforementioned option level and name. |
|
106 @see MIp6Hook |
|
107 |
|
108 HTTP::ESessionId (no default) (Integer) |
|
109 |
|
110 |
|
111 @publishedAll |
|
112 @released |
|
113 */ |
|
114 { |
|
115 }; |
|
116 |
|
117 #endif // __RHTTPCONNECTIONINFO_H__ |