applayerprotocols/httpexamples/nwsswsptrhnd/CNwssWspTransportHandler.cpp
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httpexamples/nwsswsptrhnd/CNwssWspTransportHandler.cpp	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,187 @@
+// Copyright (c) 2002-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 <wsp/mwspcosessioncallback.h>
+#include <wsp/mwspcomethodcallback.h>
+#include <wsp/mwspproxyinfoprovider.h>
+#include <wsp/mwspsessionheadersprovider.h>
+#include <wsp/mwspcapabilityprovider.h>
+#include <wsp/mwspcapabilityviewer.h>
+#include <wsp/mwspcapabilitysetter.h>
+#include <wsp/mwspextendedmethods.h>
+#include <wsp/mwspheadercodepages.h>
+#include <wsp/mwspaliasaddresses.h>
+#include <wsp/mwspunknowncapabilities.h>
+#include <http/mhttpdatasupplier.h>
+#include <uri8.h>
+
+// Local includes
+//
+#include "tnwsswsptrhndpanic.h"
+#include "testoom.h"
+
+// Class signature
+//
+#include "CNwssWspTransportHandler.h"
+
+
+// Constants used in this file
+//
+
+
+//
+// Implementation of class  'CNwssWspTransportHandler'
+//
+
+CNwssWspTransportHandler* CNwssWspTransportHandler::NewL(TAny* aInstantiationParams)
+	{
+	CNwssWspTransportHandler* me = new(ELeave)CNwssWspTransportHandler(aInstantiationParams);
+	CleanupStack::PushL(me);
+	me->ConstructL();
+	CleanupStack::Pop(me);
+	return me;
+	}
+
+CNwssWspTransportHandler::CNwssWspTransportHandler(TAny* aInstantiationParams)
+: CWspTransportHandler(*(REINTERPRET_CAST(CWspTransportHandler::SInstantiationParams*, aInstantiationParams)->iStringPool),
+					    (REINTERPRET_CAST(CWspTransportHandler::SInstantiationParams*, aInstantiationParams)->iSecurityPolicy),
+					   *(REINTERPRET_CAST(CWspTransportHandler::SInstantiationParams*, aInstantiationParams)->iSessionCB),
+					   *(REINTERPRET_CAST(CWspTransportHandler::SInstantiationParams*, aInstantiationParams)->iProxyInfoProv),
+					   *(REINTERPRET_CAST(CWspTransportHandler::SInstantiationParams*, aInstantiationParams)->iCapProv),
+					   *(REINTERPRET_CAST(CWspTransportHandler::SInstantiationParams*, aInstantiationParams)->iSessHdrProv))
+	{
+	}
+
+CNwssWspTransportHandler::~CNwssWspTransportHandler()
+	{
+	delete iWspCOSession;
+	iWapStackHnd.Close();
+	}
+
+CWspTransportHandler::TWspSupportedServices CNwssWspTransportHandler::SupportedServices() const
+	{
+	// report what this plug-in can support
+	return CWspTransportHandler::ECOSessionService | CWspTransportHandler::ECOMethodInvocationService;
+	}
+
+void CNwssWspTransportHandler::ConstructL()
+	{
+	// Create a Connection-Oriented session handler
+	MSecurityPolicy* secPol = (iSecurityPolicy? iSecurityPolicy : this);
+	iWspCOSession = CNwssWspCOSession::NewL(iStringPool, *this, *this, *secPol, iSessionCB);
+
+	// Connect to the WAP Stack server.  Leave if this fails.
+	__TESTOOMD(stkErr, iWapStackHnd.Connect());
+	User::LeaveIfError(stkErr);
+	}
+
+MWspCOSessionInvoker& CNwssWspTransportHandler::COSessionInvoker()
+	{
+	return *iWspCOSession;
+	}
+
+MWspCOMethodInvoker& CNwssWspTransportHandler::COTransactionInvoker()
+	{
+	return *iWspCOSession;
+	}
+
+MWspCOPushInvoker& CNwssWspTransportHandler::COPushInvoker()
+	{
+	TNwssWspTrHndPanic::Panic(TNwssWspTrHndPanic::ECOPushNotSupported);
+	return (MWspCOPushInvoker&)(*(MWspCOSessionInvoker*)NULL);
+	}
+
+MWspCLMethodInvoker& CNwssWspTransportHandler::CLMethodInvoker()
+	{
+	TNwssWspTrHndPanic::Panic(TNwssWspTrHndPanic::EConnectionLessNotSupported);
+	return (MWspCLMethodInvoker&)(*(MWspCOSessionInvoker*)NULL);
+	}
+
+MWspCLPushInvoker& CNwssWspTransportHandler::CLPushInvoker()
+	{
+	TNwssWspTrHndPanic::Panic(TNwssWspTrHndPanic::EConnectionLessNotSupported);
+	return (MWspCLPushInvoker&)(*(MWspCOSessionInvoker*)NULL);
+	}
+
+RWAPServ& CNwssWspTransportHandler::WapStack()
+	{
+	return iWapStackHnd;
+	}
+
+MWspProxyInfoProvider& CNwssWspTransportHandler::ProxyInfoProvider() const
+	{
+	return iProxyInfoProv;
+	}
+
+MWspCapabilityProvider& CNwssWspTransportHandler::CapabilityProvider() const
+	{
+	return iCapProv;
+	}
+
+MWspSessionHeadersProvider& CNwssWspTransportHandler::SessionHeadersProvider() const
+	{
+	return iSessHdrProv;
+	}
+
+void
+CNwssWspTransportHandler::ValidateUntrustedServerCert(TCertInfo& /*aServerCert*/,
+													  TRequestStatus& aStatus) const
+	{
+	TRequestStatus* stat = &aStatus;
+	User::RequestComplete(stat, KErrNone);
+	}
+
+void CNwssWspTransportHandler::CancelValidateUntrustedServerCert()
+	{
+	}
+
+const RArray<TWtlsCipherSuite>& CNwssWspTransportHandler::GetWtlsCipherSuites()
+	{
+	return iDefSecPolCipherSuites;
+	}
+
+const TDesC8&
+CNwssWspTransportHandler::GetTlsCipherSuites()
+	{
+	return KNullDesC8();
+	}
+
+const RArray<TWtlsKeyExchangeSuite>& CNwssWspTransportHandler::GetWtlsKeyExchangeSuites()
+	{
+	return iDefSecPolKeyExchSuite;
+	}
+
+TInt
+CNwssWspTransportHandler::GetNamedPolicyProperty(RStringF /*aPropertyName*/, RString& /*aPropertyValue*/)
+	{
+	return KErrNotFound;
+	}
+
+void CNwssWspTransportHandler::Reserved1()
+	{
+	}
+
+void CNwssWspTransportHandler::Reserved2()
+	{
+	}
+
+TInt CNwssWspTransportHandler::ServerCert(TCertInfo& aCertInfo) const
+	{
+	return iWspCOSession->ServerCert(aCertInfo);
+	}
+