diff -r 000000000000 -r b16258d2340f applayerprotocols/httpexamples/nwsswsptrhnd/CNwssWspTransportHandler.cpp --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 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& CNwssWspTransportHandler::GetWtlsCipherSuites() + { + return iDefSecPolCipherSuites; + } + +const TDesC8& +CNwssWspTransportHandler::GetTlsCipherSuites() + { + return KNullDesC8(); + } + +const RArray& 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); + } +