diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclientoptimiser.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclientoptimiser.cpp Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,145 @@ +// Copyright (c) 2007-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: +// + +#include "chttpclientoptimiser.h" + +CHttpClientOptimiser* CHttpClientOptimiser::NewL(MOutputStream& aOutputStream, MInputStreamObserver& aInputStreamObserver) + { + CHttpClientOptimiser* me = new(ELeave) CHttpClientOptimiser(aOutputStream, aInputStreamObserver); + return me; + } + +CHttpClientOptimiser::CHttpClientOptimiser(MOutputStream& aOutputStream, MInputStreamObserver& aInputStreamObserver) +:iOutputStream(&aOutputStream), + iInputStreamObserver(&aInputStreamObserver) + { + } + +CHttpClientOptimiser::~CHttpClientOptimiser() + { + delete iDecodedBuffer; + delete iEncodedBuffer; + } + +void CHttpClientOptimiser::BindOptimiser(MHttpDataOptimiser& aOptimiser) + { + iDataOptimiser = &aOptimiser; + } + +// methods from MOutputStream +void CHttpClientOptimiser::SendDataReqL(const TDesC8& aBuffer) + { + delete iEncodedBuffer; + iEncodedBuffer = NULL; + iDataOptimiser->EncodeL(aBuffer, iEncodedBuffer); + __ASSERT_ALWAYS(iEncodedBuffer != NULL, User::Invariant() ); // Need to add panic code + iOutputStream->SendDataReqL(iEncodedBuffer->Des()); // Calls CSocketWriter::SendDataReq() + } + +void CHttpClientOptimiser::Bind(MOutputStreamObserver& aObserver) + { + iOutputStream->Bind(aObserver); + } + +void CHttpClientOptimiser::ShutdownReq() + { + iOutputStream->ShutdownReq(); + } + +void CHttpClientOptimiser::SecureClientReq(const TDesC8& aHostName) + { + __ASSERT_ALWAYS((aHostName.Length() > 0), User::Invariant()); + iOutputStream->SecureClientReq(aHostName); + } + +void CHttpClientOptimiser::Close() + { + iOutputStream->Close(); + } + +const CX509Certificate* CHttpClientOptimiser::ServerCert() + { + return (iOutputStream->ServerCert()); + } + +TInt CHttpClientOptimiser::CipherSuite(TDes8& aCipherSuite) + { + __ASSERT_ALWAYS((aCipherSuite.Length() > 0), User::Invariant()); + return (iOutputStream->CipherSuite(aCipherSuite)); + } + +void CHttpClientOptimiser::Reset () + { + iOutputStream->Reset(); + } + +void CHttpClientOptimiser::MOutputStream_Reserved() + { + User::Invariant(); + } + +// methods from MInputStreamObserver +void CHttpClientOptimiser::ReceivedDataIndL(const TDesC8& aBuffer) + { + delete iDecodedBuffer; + iDecodedBuffer = NULL; + + TBool transFail = EFalse; + iDataOptimiser->DecodeL(aBuffer, iDecodedBuffer, transFail); + + if(transFail) + { + CurrentResponse()->FailTransactionL(); + } + + else + { + __ASSERT_ALWAYS(iDecodedBuffer != NULL, User::Invariant()); + iInputStreamObserver->ReceivedDataIndL(iDecodedBuffer->Des()); + } + } + +void CHttpClientOptimiser::SecureServerCnf() + { + iInputStreamObserver->SecureServerCnf(); + } + +void CHttpClientOptimiser::InputStreamCloseInd(TInt aError) + { + iInputStreamObserver->InputStreamCloseInd(aError); + } + +void CHttpClientOptimiser::MInputStreamObserver_Reserved() + { + User::Invariant(); + } + +void CHttpClientOptimiser::OnReceiveTimeOut() + { + + } +MHttpResponse* CHttpClientOptimiser::CurrentResponse() + { + return (iInputStreamObserver->CurrentResponse()); + } + +void CHttpClientOptimiser::SetTCPCorking(TBool /* aValue */) + { + + } + + + +