applayerprotocols/httptransportfw/core/rhttpsession.cpp
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/core/rhttpsession.cpp	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,163 @@
+// 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 "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:
+//
+
+// System includes
+#include <e32std.h>
+#include <http/rhttpheaders.h>
+#include <http/mhttpfiltercreationcallback.h>
+#include <httperr.h>
+#include <httpstringconstants.h>
+#include <http/rhttpsession.h>// Class signature
+
+// Local includes
+#include "CHTTPManager.h"
+#include "CTransaction.h"
+#include "CHTTPSession.h"
+
+
+EXPORT_C void RHTTPSession::OpenL()
+	{
+	__ASSERT_DEBUG(iImplementation == 0, 
+				   HTTPPanic::Panic(HTTPPanic::ESessionAlreadyOpen ));
+
+	iImplementation = CHTTPSession::NewL();
+	}
+
+EXPORT_C void RHTTPSession::OpenL(const TDesC8& aProtocol)
+	{
+	__ASSERT_DEBUG(iImplementation == 0, 
+				   HTTPPanic::Panic(HTTPPanic::ESessionAlreadyOpen ));
+
+	iImplementation = CHTTPSession::NewL(aProtocol);
+	}
+
+EXPORT_C void RHTTPSession::OpenL(const TDesC8& aProtocol, MHTTPFilterCreationCallback* aSessionCallback)
+	{
+	__ASSERT_DEBUG(iImplementation == 0, 
+				   HTTPPanic::Panic(HTTPPanic::ESessionAlreadyOpen ));
+
+	iImplementation = CHTTPSession::NewL(aProtocol, aSessionCallback);
+	CleanupClosePushL(*this);
+
+	// If the session callback was supplied, call the callback function passing the filter iterator
+	if( aSessionCallback != NULL )
+		{
+		aSessionCallback->ConfigureSessionFiltersL(iImplementation->FilterConfigIterator());
+		}
+	CleanupStack::Pop(this);
+	}
+
+EXPORT_C void RHTTPSession::ListAvailableProtocolsL(RPointerArray<HBufC8>& aProtocolArray)
+	{
+	CHTTPSession::ListAvailableProtocolsL(aProtocolArray);
+	}
+
+EXPORT_C void RHTTPSession::Close()
+	{
+	delete iImplementation;
+	iImplementation = NULL;
+	}
+
+
+EXPORT_C void RHTTPSession::SetSessionEventCallback(MHTTPSessionEventCallback* aSessionEventCallback)
+	{
+	iImplementation->SetSessionEventCallback(aSessionEventCallback);
+	}
+
+EXPORT_C void RHTTPSession::SendSessionEventL(THTTPSessionEvent aStatus, THTTPSessionEvent::TDirection aDirection, 
+							 THTTPFilterHandle aStart)
+	{
+	iImplementation->SendSessionEventL(aStatus, aDirection, aStart);
+	}
+
+EXPORT_C void RHTTPSession::FailSessionEvent(THTTPFilterHandle aStart)
+	{
+	iImplementation->FailSessionEvent(aStart);
+	}
+
+EXPORT_C RStringPool RHTTPSession::StringPool() const
+	{
+	
+	return iImplementation->Manager().StringPool();
+	}
+
+EXPORT_C RHTTPConnectionInfo RHTTPSession::ConnectionInfo() const
+	{
+	return iImplementation->ConnectionInfo();
+	}
+
+EXPORT_C RHTTPTransaction RHTTPSession::OpenTransactionL(const TUriC8& aURI, 
+									 MHTTPTransactionCallback& aCallback, 
+									 RStringF aMethod)
+	{
+	CTransaction* implementation = CTransaction::NewL(aCallback, aURI,
+													  *iImplementation,
+													  aMethod);
+	return implementation->Handle();
+	};
+
+EXPORT_C RHTTPHeaders RHTTPSession::RequestSessionHeadersL()
+	{
+	return iImplementation->RequestSessionHeadersL();
+	}
+
+EXPORT_C RHTTPHeaders RHTTPSession::ResponseSessionHeadersL()
+	{
+	return iImplementation->ResponseSessionHeadersL();
+	}
+
+
+EXPORT_C const TStringTable& RHTTPSession::GetTable()
+	{
+	return HTTP::Table;
+	}
+
+EXPORT_C TInt RHTTPSession::ServerCert(TCertInfo& aServerCert)
+	{
+	return iImplementation->SessionServerCert(aServerCert);
+	}
+
+EXPORT_C const CCertificate* RHTTPSession::ServerCert()
+	{
+	return iImplementation->SessionServerCert();
+	}	
+
+EXPORT_C void RHTTPSession::ConnectL()
+	{
+	iImplementation->SendSessionEventL(THTTPSessionEvent::EConnect, THTTPSessionEvent::EOutgoing);
+	}
+
+EXPORT_C void RHTTPSession::DisconnectL()
+	{
+	iImplementation->SendSessionEventL(THTTPSessionEvent::EDisconnect, THTTPSessionEvent::EOutgoing);
+	}
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS	
+EXPORT_C void RHTTPSession::SetupDefaultProxyFromCommsDatL()
+	{
+	iImplementation->SetupDefaultProxyFromCommsDatL();
+	}
+#endif	//SYMBIAN_ENABLE_SPLIT_HEADERS
+
+EXPORT_C void RHTTPSession::SetupHttpDataOptimiser(MHttpDataOptimiser& aHttpOptimiser)
+ 	{
+ 	iImplementation->SetupHttpDataOptimiser (aHttpOptimiser);
+ 	}
+ 
+EXPORT_C MHttpDataOptimiser* RHTTPSession::HttpDataOptimiser()
+ 	{
+ 	return iImplementation->HttpDataOptimiser ();
+ 	}
+