diff -r 000000000000 -r b16258d2340f applayerprotocols/httptransportfw/Test/T_HttpIntegration/httptransaction.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerprotocols/httptransportfw/Test/T_HttpIntegration/httptransaction.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,153 @@ +// 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: +// $Header$ +// The header file introducing the collection of HTTP command classes +// of the Integration Harness framework. +// on: aug 2002, +// +// + +#ifndef __HTTPTRANSACTION_H__ +#define __HTTPTRANSACTION_H__ + +//----------------------------------------------------------------------------- + +class CTestTransaction : public CBase, + public MHTTPDataSupplier, + public MHTTPTransactionCallback + +{ +public: + + static CTestTransaction *NewL ( RHTTPSession& aSession, + HTTP::TStrings aTransactiontype, + const TDesC& aUri, + const TDesC &aFilename, + const TDesC &aTransactionName, + CTEngine *aTestMachine); + + static CTestTransaction *NewLC ( RHTTPSession& aSession, + HTTP::TStrings aTransactiontype, + const TDesC& aUri, + const TDesC &aFilename, + const TDesC &aTransactionName, + CTEngine *aTestMachine); + + virtual ~CTestTransaction(); + virtual void MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent); + virtual TInt MHFRunError(TInt aError,RHTTPTransaction aTransaction, const THTTPEvent& aEvent); + + // helper defs and methods for Transaction processing + enum TestTransactionStates + { + EUnInitialised, + EActive, + EClosed + }; + + void SubmitL(); + TInt SetFileNameL(const TDesC &aName) ; + void CloseTransaction(); + + + // from DataSupplier + TBool GetNextDataPart(TPtrC8 &aDataPart); + TInt OverallDataSize(); + void ReleaseData(); + TInt Reset(); + + // Set command family (the known commands). +// inline void SetTransaction(RHTTPTransaction &); + TBuf<32> TransactionName() const {return iTransactionName;} + const TDesC8& Uri() const {return iUri;} + + void SetTransaction(RHTTPTransaction &); +// inline const RHTTPTransaction &Transaction() const; + const RHTTPTransaction &Transaction() const; + TestTransactionStates State() {return iState;} + +private: + + void ConstructL( RHTTPSession& aSession); + + CTestTransaction( HTTP::TStrings aTransactiontype, + const TDesC& aUri, + const TDesC &aFilename, + const TDesC &aTransactionName, + CTEngine *aTestMachine); + + inline CTEngine* Machine() ; + TInt Error( TInt aError, TRefByValue aFmt, ... ); + void Log(TRefByValue aFmt, ... ); + void WriteDateStamp(); + void WriteDateStamp(const TDateTime &aDate); + TBool AddRequestBodyL(RHTTPHeaders &aHeaders, RStringPool &aStrPool); + TBool AddAcceptHeaderL(RHTTPHeaders &aHeaders, RStringPool &aStrPool); + TBool AcceptCharSetL(RHTTPHeaders &aHeaders, RStringPool &aStrPool); + TBool AcceptEncodingL(RHTTPHeaders &aHeaders, RStringPool &aStrPool); + TBool SetUserAgentL(RHTTPHeaders &aHeaders, RStringPool &aStrPool); + TBool SetContentLengthL(RHTTPHeaders &aHeaders, RStringPool &aStrPool); + void DoneWaitEvents(); + void DumpResponseBody(RHTTPTransaction &aTrans); + void DumpRespHeaders(RHTTPTransaction &aTrans); + +private: + enum TransactionFilePanics + { + EBufferPanic, + EBufferNotAllocated, + EInvalidFileSizeError + }; + + RHTTPTransaction iTransaction ; + + TBuf<32> iTransactionName; + TBuf8<256> iUri; + TBuf<256> iFilename; + CTEngine* iEngine; + HTTP::TStrings iTransactionType; + + RFile iReqFile; + HBufC8 *iFileBuffer; + TPtr8 iFileBufferPtr; + TInt iDataChunkCount; + TBool iReleaseData; + + TestTransactionStates iState; +}; + +/* +inline const RHTTPTransaction &CTestTransaction::Transaction() const + { + return (iTransaction); + } + */ +/* +inline void CTestTransaction::SetTransaction(RHTTPTransaction &aTransaction) + { + iTransaction = aTransaction; + } +*/ +inline CTEngine* CTestTransaction::Machine() + { + return iEngine ; + } + + +#endif // __HTTPTRANSACTION_H__ + +//----------------------------------------------------------------------------- +// End of File +//----------------------------------------------------------------------------- +