--- a/pushmtm/Plugins/PushContentHandler/PushMtmFetchOperation.h Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: Declaration of CPushMtmFetchOperation.
-*
-*/
-
-
-
-#ifndef PUSHMTMFETCHOPERATION_H
-#define PUSHMTMFETCHOPERATION_H
-
-// INCLUDE FILES
-
-#include <e32std.h>
-#include <e32base.h>
-#include <http.h>
-#include <stringpool.h>
-#include <apmstd.h>
-#include <es_sock.h>
-#include "httpcachemanager.h"
-#include "PushMtmCacheSupply.h"
-
-// FORWARD DECLARATIONS
-
-class CMsvEntry;
-
-// CLASS DECLARATION
-
-/**
-* Asynchronous fetch operation that downloads the service indicated by an SL
-* pushed service message.
-*
-* The operation can run in silent mode without requiring any user intervention.
-*/
-class CPushMtmFetchOperation : public CActive,
- public MHTTPTransactionCallback,
- public MCacheSupplyCallbacks
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor. Leaves on failure.
- * @param aRequestedUrl The requested URL.
- * @param aObserverRequestStatus Observer's status.
- * @return The constructed operation.
- */
- static CPushMtmFetchOperation* NewL
- (
- const TDesC& aRequestedUrl,
- TRequestStatus& aObserverRequestStatus
- );
-
- /**
- * Destructor.
- */
- virtual ~CPushMtmFetchOperation();
-
- public: // Functions from base classes
-
- /**
- * Start or restart the operation.
- */
- void StartL();
-
- RHTTPTransaction* Transaction(){ return &iHttpTrans; }
- void HandleEventL(THTTPEvent aEvent) { MHFRunL(iHttpTrans, aEvent); }
-
- protected: // Constructors
-
- /**
- * Constructor.
- * @param aObserverRequestStatus Observer's status.
- */
- CPushMtmFetchOperation( TRequestStatus& aObserverRequestStatus );
-
- /**
- * Second phase constructor.
- * @param aRequestedUrl The requested URL.
- * @return None.
- */
- void ConstructL( const TDesC& aRequestedUrl );
-
- protected: // New functions
-
- /**
- * Get the ID of the defauld internet access point set in the Browser
- * Preferences that is used for connection creation.
- * @param aIapId The ID of the access point, if found. The value of
- * this variable is not changed if no default ap can be found.
- * @return Indicate if default ap could be found.
- */
- TBool GetDefaultInetAccessPointL( TUint32& aIapId ) const;
-
- protected: // state machine parts
-
- /**
- * Initiate connecting.
- */
- void InitializeL();
-
- /**
- * StartRequestL
- */
- void StartRequestL();
-
- /**
- * CheckCacheL
- */
- void CheckCacheL();
-
- /**
- * Initiate connecting.
- */
- void RequestL();
-
- /**
- * Clean up and notify parent.
- */
- void Done();
-
- /**
- * Create transaction, set request headers (and body for POST request).
- */
- void CreateTransactionL();
-
- /**
- * Submit the transaction (make the HTTP request).
- */
- void SubmitTransactionL();
-
- /**
- * Handle response from server.
- * @param aResponse Response from server.
- */
- void HandleResponseHeadersL( RHTTPResponse aResponse );
-
- /**
- * HTTP Version Not Supported. Resubmit transaction using HTTP/1.0.
- * @return ETrue if transaction was resubmitted, EFalse if not (i.e
- * we already use HTTP/1.0).
- */
- TBool VersionRetryL();
-
- /**
- * Append a new chunk of response data to the reponse buffer.
- * @return KErrNone or KErrNoMemory.
- */
- TInt AppendResponse( const TDesC8& aDataChunk );
-
- protected: // helpers
-
- /**
- * Helper function to set a header.
- * @param aHeaders Set the header to this header set.
- * @param aHdrField Header field name.
- * @param aHdrValue Header value.
- */
- void SetHeaderL
- (
- RHTTPHeaders aHeaders,
- HTTP::TStrings aHdrField,
- const TDesC8& aHdrValue
- );
-
- /**
- * Helper function to set a header.
- * @param aHeaders Set the header to this header set.
- * @param aHdrField Header field name.
- * @param aHdrValue Header value.
- */
- void SetHeaderL
- (
- RHTTPHeaders aHeaders,
- HTTP::TStrings aHdrField,
- HTTP::TStrings aHdrValue
- );
-
- /**
- * Helper function to set a header.
- * @param aHeaders Set the header to this header set.
- * @param aHdrField Header field name.
- * @param aHdrValue Header value.
- */
- void SetHeaderL
- (
- RHTTPHeaders aHeaders,
- HTTP::TStrings aHdrField,
- const RStringF aHdrValue
- );
-
- /**
- * Helper function to get the Content-Type header value.
- * @param aHeaders HTTP header set.
- * @return Content-Type header value.
- */
- const TDesC8& GetContentTypeL( RHTTPHeaders aHeaders );
-
- /**
- * Helper function to get the source URI of a transaction.
- * @param aTransaction Transaction.
- * @return Source URI.
- */
- const TDesC8& GetSourceUriL( RHTTPTransaction aTransaction );
-
- /**
- * Get a shared string from the session stringpool.
- * @param aId Id of string.
- * @return Shared string from HTTP string table. No need to close.
- */
- inline RStringF StringF( HTTP::TStrings aId );
-
- protected: // debug utilities
-
- /**
- * In debug build, log headers. In release build, do nothing.
- * @param aHeaders Headers to log.
- */
- void LogHeadersL( RHTTPHeaders aHeaders );
-
- protected: // Functions from base classes
-
- /**
- * Cancel fetching.
- * @return None.
- */
- void DoCancel();
-
- /**
- * Start fetching and make an entry into the operation mapper.
- * @return None.
- */
- void RunL();
-
- /**
- * Leave handler protocol implementation: it is called when
- * RunL leaves.
- */
- TInt RunError( TInt aError );
-
- protected: // from MHTTPTransactionCallback
-
- /**
- * Handle transaction event.
- * @param aTransaction The transaction that the event has occurred on.
- * @param aEvent The event that has occurred.
- */
- void MHFRunL( RHTTPTransaction aTransaction,
- const THTTPEvent& aEvent );
-
- /**
- * Handle errors occured in MHFRunL().
- * @param aError The leave code that RunL left with.
- * @param aTransaction The transaction that was being processed.
- * @param aEvent The Event that was being processed.
- * @return KErrNone.
- */
- TInt MHFRunError( TInt aError,
- RHTTPTransaction aTransaction,
- const THTTPEvent& aEvent );
-
- protected: // Data
-
- TRequestStatus& iObserver; ///< Observer's status.
- HBufC8* iRequestedUrl; ///< Request URI or NULL. Owned.
-
- enum TState ///< State.
- {
- EInit, ///< Initial state.
- EStartRequest, ///< Create HTTP session & request
- ECheckCache, ///< Check if content is in cache
- ERequest, ///< HTTP request.
- EDone
- };
-
- TState iState; ///< Current state.
- TInt iResult; ///< Resulting error code.
-
- RSocketServ iSockServ; ///< Socket Server session handle.
- RConnection iConn; ///< Connection handle.
-
- CHttpCacheManager* iCacheMgr;///< Cache Manager. Owned.
-
- RHTTPSession iHttpSess; ///< HTTP session. Owned.
- RHTTPTransaction iHttpTrans;///< Transaction. Owned.
-
- HBufC8* iSourceUri; ///< Source URI. Owned.
- HBufC8* iBody; ///< Response body. Owned.
- TDataType iDataType; ///< Data type.
- THttpCacheEntry iCacheEntry;///< Holds the cache entry
- CPushMtmCacheSupply* iCacheSupply;
- TBool iCachedResponse;
- };
-
-#include "PushMtmFetchOperation.inl"
-
-#endif // PUSHMTMFETCHOPERATION_H
-
-// End of file.