diff -r 000000000000 -r b16258d2340f applayerprotocols/httpexamples/TestWebBrowser/inc/browsertransaction.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerprotocols/httpexamples/TestWebBrowser/inc/browsertransaction.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,97 @@ +// Copyright (c) 2005-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: +// + +#ifndef _HTTPTRANSACTION_H +#define _HTTPTRANSACTION_H + +#include + +class CHttpExampleUtils; +class CBrowserTransaction; +class CHtmlHandler; + +class MBrowserTransactionObserver + { + public: + virtual void OnTransactionCreateL ( const TDesC8& aUri, TBool aParseHtml ) = 0; + virtual void OnTransactionClose ( CBrowserTransaction* aTrans ) = 0; + }; + +// ------------------------------------------------------------------- +class CBrowserTransaction : public CBase, public MHTTPTransactionCallback + { + public: + + enum TMimeType + { + eXml, + eHtml, + eUnknown + }; + + virtual ~CBrowserTransaction(); + + static CBrowserTransaction* NewLC ( RHTTPSession& aSession, + CHttpExampleUtils& aTestUtils, + MBrowserTransactionObserver* aObserver, + const TDesC& aFilePath, + TBool aParseHtml = EFalse ); + + static CBrowserTransaction* NewL ( RHTTPSession& aSession, + CHttpExampleUtils& aTestUtils, + MBrowserTransactionObserver* aObserver, + const TDesC& aFilePath, + TBool aParseHtml = EFalse ); + + void CreateTransactionL ( const TDesC8& aUri ); + void StartTransactionL (); + + // + // methods from MHTTPTransactionCallback + // + virtual void MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent); + virtual TInt MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent& aEvent); + + protected: + CBrowserTransaction( RHTTPSession& aSession, CHttpExampleUtils& aTestUtils, MBrowserTransactionObserver* aObserver, TBool aParseHtml = EFalse ); + void ConstructL ( const TDesC& aFilePath ); + + private: + void ExtractContentTypeL ( RHTTPResponse& aResponse, RStringF& aContentTypeValue ); + void LoadPluginL ( TMimeType aType ); + void SetAcceptHdrL (); + TMimeType GetMimeType ( const RStringF& aType ); + private: + RHTTPTransaction iTransaction; + + RHTTPSession& iSession; + MBrowserTransactionObserver* iTransObserver; + CHttpExampleUtils& iTestUtils; + + HBufC* iFilePath; + + RFs iFileServer; + RFile iRespBodyFile; + MHTTPDataSupplier* iRespBody; + + CHtmlHandler *iHtmlHandler; + + TBool iParseHtml; + + TBool iSavingBody; + + }; + +#endif // _HTTPTRANSACTION_H \ No newline at end of file