williamr@2: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file RHTTPConnectionInfo.h williamr@2: @warning : This file contains Rose Model ID comments - please do not delete williamr@2: */ williamr@2: williamr@2: #ifndef __RHTTPCONNECTIONINFO_H__ williamr@2: #define __RHTTPCONNECTIONINFO_H__ williamr@2: williamr@2: // System includes williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: //##ModelId=3C4C187A01CA williamr@2: class RHTTPConnectionInfo : public RHTTPPropertySet williamr@2: /** williamr@2: The RHTTPConnectionInfo is used for setting/getting williamr@2: values used for setting up a connection over a protocol. All methods are inherited williamr@2: directly from RHTTPPropertySet. williamr@2: williamr@2: To lookup/change any of the following properties, use williamr@2: RHTTPPropertySet::Property(...) and RHTTPPropertySet::SetPropertyL(...) williamr@2: williamr@2: To remove properties, use RHTTPPropertySet::RemoveProperty(...) for a named property, williamr@2: or RHTTPPropertySet::RemoveAllProperties() for all. williamr@2: williamr@2: The following values are currently defined. Note that new values williamr@2: could be added by individual filters. In general, properties williamr@2: should be defined before the first transaction is created; filters williamr@2: are not obliged to check with the connection info if the values williamr@2: have changed after this point. williamr@2: williamr@2: HTTP::EProxyUsage (default HTTP::EDoNotUseProxy) (HTTP::EDoNotUseProxy | HTTP::EUseProxy) williamr@2: williamr@2: HTTP::EProxyAddress (A Uri for the Proxy server. Should include the port number williamr@2: if it is not the default of 8080) williamr@2: williamr@2: HTTP::EMaxNumTransportHandlers (default 4) williamr@2: williamr@2: HTTP::EMaxNumTransPerTranspHndlr (default 5) williamr@2: williamr@2: HTTP::EHTTPVersion (default HTTP::EHttp11) (HTTP::EHttp11 | HTTP::EHttp10) williamr@2: williamr@2: HTTP::EProtocol (default, and currently only defined value is HTTP::EHTTP) williamr@2: williamr@2: HTTP::EHttpBatching (default HTTP::EDoNotEnableBatching) (HTTP::EDoNotEnableBatching | HTTP::EEnableBatching) williamr@2: williamr@2: HTTP::EBatchingBufferSize (default 1400) williamr@2: williamr@2: HTTP Client can create a connection and set its own preferences, instead of using the williamr@2: default connection preferences specified in COMMS Database. In such cases, the client williamr@2: is responsible for creating the RSocketServ session and RConnection using williamr@2: RSocketServ::Connect(..) and RConnection::Open(..). williamr@2: Client must also start the connection using RConnection::Start(..) and pass the williamr@2: connection preferences to the function using TConnPref. williamr@2: The following session properties should then be set by the client. williamr@2: williamr@2: HTTP::EHttpSocketServ (Handle to RSocketServ session, which is the value obtained williamr@2: by calling RSocketServ::Handle()) williamr@2: williamr@2: HTTP::EHttpSocketConnection (Reference to the RConnection object, obtained from williamr@2: reinterpret_cast(TInt, &connection)) williamr@2: williamr@2: The HTTP Client can also specify what action should be take if during a secure williamr@2: handshakes the server cert cannot be trusted. The choice is for the handshake williamr@2: to automatically cancelled or for a dialog to be raised and the user given the williamr@2: option of continuing with the handshake or cancelling it. The following session williamr@2: property should be used to specify the behaviour. williamr@2: williamr@2: HTTP::ESecureDialog (default HTTP::EDialogPrompt) (HTTP::EDialogPrompt | EDialogNoPrompt) williamr@2: williamr@2: The HTTP Client can specify the socket shutdown mode when the session is closing. At the time williamr@2: of closing the session, any outstanding transactions on open sockets can specify that the williamr@2: socket shutdown mode be set to immediate. The following property can be used to enable this williamr@2: behaviour. williamr@2: williamr@2: HTTP::ESocketShutdownMode (default HTTP::ESocketShutdownNormal) (HTTP::ESocketShutdownNormal | HTTP::ESocketShutdownImmediate williamr@2: williamr@2: The HTTP Client can limit the number of transactions that it will send down one connection when williamr@2: using pipelining. The following value should be set to an integer. When set any outstanding transaction williamr@2: that exceed this number will either be sent separately down a different connection or will williamr@2: be queued until a space becomes available. williamr@2: williamr@2: HTTP::EMaxNumTransactionsToPipeline (default KMaxTInt) (Integer) williamr@2: williamr@2: The session ID is an optional non-negative integer which is attached to the session and any sockets williamr@2: it creates. The session ID will be set on any sockets created by using RSocket::SetOpt() with williamr@2: the level KSOLHttpSessionInfo and the name KSOHttpSessionId (defined in httpsocketconstants.h). williamr@2: The session ID can be retrieved in a Flow Hook by implementing MIp6Hook::SetFlowOption() to williamr@2: look for the aforementioned option level and name. williamr@2: @see MIp6Hook williamr@2: williamr@2: HTTP::ESessionId (no default) (Integer) williamr@2: williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: }; williamr@2: williamr@2: #endif // __RHTTPCONNECTIONINFO_H__