--- /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<const TDesC> aFmt, ... );
+ void Log(TRefByValue<const TDesC> 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
+//-----------------------------------------------------------------------------
+