diff -r 75a71fdb4c92 -r 7d11f9a6646f pnpmobileservices/pnpms/OnlineSupport/inc/MiniBrowser.h --- a/pnpmobileservices/pnpms/OnlineSupport/inc/MiniBrowser.h Tue Feb 02 00:03:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Header file CMiniBrowser class -* -*/ - - -#ifndef MINI_BROWSER_H -#define MINI_BROWSER_H - -// INCLUDES -#include -#include -#include -#include - - -#include "MiniBrowserObserver.h" -#include "HttpProvStates.h" - -// FORWARD DECLARATIONS -class CNHeadWrapperParser; - -// CLASS DECLARATION - -/** -* CMiniBrowser class -* -* @since 3.1? -*/ -class CMiniBrowser : - public CBase, - public MHTTPTransactionCallback, - public MHTTPDataSupplier - { -public: - enum TContentType - { - EContentTypeUnknown = 0, - EContentTypeTextPlain, - EContentTypeNokiaHeadWrapper - }; - /** - Standard Symbian 2 phase constructor. The returned object is left - to the CleanupStack. - @param aObserver Listens for events/errors - @param aSocketServ RSocketServ. Note! This must be opened until - the CMiniBrowser object has been destroyed. - @param aSocketServ RSocketServ. Note! This must be opened and - started until the CMiniBrowser object has been destroyed. - */ - static CMiniBrowser* NewLC( MMiniBrowserObserver& aObserver, - RSocketServ& aSocketServ, RConnection& aConnection ); - - /** - Standard Symbian 2 phase constructor. - @param aObserver Listens for events/errors - @param aSocketServ RSocketServ. Note! This must be opened until - the CMiniBrowser object has been destroyed. - @param aSocketServ RSocketServ. Note! This must be opened and - started until the CMiniBrowser object has been destroyed. - */ - static CMiniBrowser* NewL( MMiniBrowserObserver& aObserver, RSocketServ& - aSocketServ, RConnection& aConnection ); - - /** - * Destructor. - */ - virtual ~CMiniBrowser(); - - /** - Make a HTTP GET request to the url defined. - Use this override if the AP used does not have proxy defined. - @param aUri - @param aProxyAddress Proxy server address. - @param aProxyPort Port to be used for proxy server - */ - void HttpGetL( const TDesC& aUri ); - - /** - Make a HTTP GET request to the url defined. - Use this override if the AP used has a proxy defined. - @param aUri - @param aProxyAddress Proxy server address. - @param aProxyPort Port to be used for proxy server - */ - void HttpGetL( const TDesC& aUri, const TDesC& aProxyAddress, - const TUint aProxyPort ); - - /** - Returns the report URL that was in the previously received HeadWrapper document. - Leaves with KErrNotFound if there was no valid report url or no HeadWrapper document - has been received. - @return Report Url. Left to CleanupStack. - */ - HBufC* GetReportUrlLC(); - -private: - CMiniBrowser( MMiniBrowserObserver& aObserver ); - void ConstructL( RSocketServ& aSocketServ, RConnection& aConnection ); - - /** - Called from HttpGetL. - @see HttpGetL - */ - void CMiniBrowser::DoHttpGetL( - const TDesC& aUri, - const TBool aUseProxy, - const TDesC& aProxyAddress, - const TUint aProxyPort ); - - -public: // from MHTTPTransactionCallback - - /*! - Called when the filter's registration conditions are satisfied - for events that occur on a transaction. Note that this function - is not allowed to leave if called with certain events - */ - void MHFRunL( RHTTPTransaction aTransaction, const THTTPEvent &aEvent ); - /*! - Called when RunL leaves from a transaction event. This works - in the same way as CActve::RunError; return KErrNone if you - have handled the error. If you don't completely handle the - error, a panic will occur. - */ - TInt MHFRunError( TInt aError, RHTTPTransaction aTransaction, - const THTTPEvent& aEvent ); - -public: // from MHTTPDataSupplier - - /*! - Obtain a data part from the supplier. The data is guaranteed to - survive until a call is made to ReleaseData(). - */ - TBool GetNextDataPart( TPtrC8 &aDataPart ); - - /*! - Release the current data part being held at the data supplier. - This call indicates to the supplier that the part is no longer - needed, and another one can be supplied, if appropriate. - */ - void ReleaseData(); - - /*! - Obtain the overall size of the data being supplied, if known to - the supplier. Where a body of data is supplied in several parts - this size will be the sum of all the part sizes. If the size is - not known, KErrNotFound is returned; in this case the client must - use the return code of GetNextDataPart to find out when the data - is complete. - */ - TInt OverallDataSize(); - - /*! - Reset the data supplier. This indicates to the data supplier that - it should return to the first part of the data. This could be used - in a situation where the data consumer has encountered an error and - needs the data to be supplied afresh. Even if the last part has - been supplied (i.e. GetNextDataPart has returned ETrue), the data - supplier should reset to the first part. - - If the supplier cannot reset it should return an error code; - otherwise it should return KErrNone, where the reset will be - assumed to have succeeded - */ - TInt Reset(); - -private: - /* - @return TInt KErrNone in case everything was Ok. - */ - static TInt TimeOutCallBack( TAny* aMiniBrowser); - /* - Called by TimeOutCallBack - */ - void DoTimeOutCallBackL(); - - /*! - Appends aData to iResponseData. If aData does not fit in, iResponseData - is reallocated. - */ - void AppendResponseDataL( const TDesC8& aData ); - - /*! - Deletes and allocates an empty buffer for iResponseData and iReportUrl. - This is called from DoHttpGetL to prevent using same response data and - report url twice. - */ - void ResetResponseDataL(); - - /** - Currently not supported - Shows the response text (from iResponseData) in a dialog. - */ -// void ShowMessageDialogL( const TDesC8& aMessage ); - - /** - Parses received data and saves provisioned settings if the data is a - HeadWrapper document. - */ - void ParseAndSaveProvisionedSettingsL(); - - /** - Saves provisioned settings. - */ - void SaveProvisionedSettingsL( const TDesC8& aContent ); - - /*! - Get special user agent string for ServiceHelp silent mode. - */ - HBufC8* GetUserAgentStringL(); - - /*! - Get report Url from CNHeadWrapperParser and store it into iReportUrl - buffer for later reference. - */ - void GetReportUrlL( const CNHeadWrapperParser& aNHwrParser ); - -private: - /*! Time-out timer */ - CPeriodic* iPeriodic; - /*! Observer is notified when transaction was successful or failed */ - MMiniBrowserObserver& iObserver; - /*! Internet access point id */ - TInt iIapId; - /*! buffer for URI */ - HBufC8* iUri; - /*! buffer for received data */ - HBufC8* iResponseData; - /*! buffer for report/next url parameter of received HeadWrapper document */ - HBufC8* iReportUrl; - /*! The content type header value of the received data */ - TContentType iContentType; - /*! Http session */ - RHTTPSession iSession; - /*! String pool for http session */ - RStringPool iSessionStringPool; - /*! Http transaction*/ - RHTTPTransaction iTransaction; - /*! The status of last provisioning, default is EStatusUnknown */ - THttpProvStates::TProvisioningStatus iProvisioningStatus; - }; - -#endif // MINI_BROWSER_H - -// End of File