cryptomgmtlibs/securityutils/inc/explicit_http_session.h
author asimpson@symbian.org
Thu, 15 Oct 2009 17:48:29 +0100
branchRCL_1
changeset 13 e60b2dbc57a0
parent 0 2c201484c85f
permissions -rw-r--r--
Added tag PDK_2.0.0 for changeset 1d329321bec7

/*
* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/




/**
 @file
 @publishedPartner
*/

#ifndef EXPLICITHTTPSESSION_H
#define EXPLICITHTTPSESSION_H

#include <http.h>
#include <es_sock.h>

class RExplicitHTTPSession
	{
public:
	IMPORT_C RExplicitHTTPSession();
	IMPORT_C void OpenL(const TUriC8& aUri, TUint32 aIapNumber = 0, TBool aStartConnection = ETrue);
	IMPORT_C void Close();

	IMPORT_C void StartConnection(TRequestStatus& aStatus);
	IMPORT_C void CancelStart();

	IMPORT_C RHTTPSession& HTTPSession();
	inline RHTTPSession& operator()();

private:
	void BindConnectionL(TUint32 aIap, TBool aStartConnection);
	// Returns ETrue if there is a proxy to use for the given scheme; 
	// aProxyServer gets set
	TBool UseProxyL(const TDesC8& aScheme, HBufC8*& aProxyServer);
	
private:
	RSocketServ iSocketServ;
	RConnection iConnection;
	RHTTPSession iHTTPSession;
	TUint32 iIap;
	};

// inline methods
inline RHTTPSession& RExplicitHTTPSession::operator()()
	{
	return HTTPSession();
	}

#endif