applayerprotocols/httptransportfw/Test/T_HttpPipeliningTest/CPipeliningTestCase.h
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/Test/T_HttpPipeliningTest/CPipeliningTestCase.h	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,96 @@
+// Copyright (c) 2003-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 __CPIPELININGTESTCASE_H__
+#define __CPIPELININGTESTCASE_H__
+
+#include <e32base.h>
+#include <http.h>
+
+#include "MPipeliningTestCase.h"
+
+/*
+The CPipeliningTestCase is a simple class to inherit from MPipeliningTestCase to provide
+default implementations for some of the functions required by MPipeliningTestCase. Many
+methods in this class are sometimes not really required so this is class has been
+introduced to provide some default implementations. All these methods are virtual so that
+any of them can be overriden with new implementations.
+*/
+class CPipeliningTestCase : public CBase,
+							public MPipeliningTestCase
+	{
+public:	
+	~CPipeliningTestCase();
+	
+	
+
+	/*
+	This method should return the number of transactions on a giving connection index. Most
+	test will only require a single connection so this method should return the same value 
+	as MPipeliningTestCase::TotalTransactionCount() so this method will simply call that.
+	*/
+	virtual TInt TransactionCount(TInt aConnectionIndex) const;
+
+	/*
+	This method allows the test case to set an option into how the transactions are
+	submitted. If this method returns ETrue, the transaction will be batched where they are
+	all opened first and then submitted all together, or else return EFalse so transactions
+	are submitted as they are opened. Most test cases will require that transaction are
+	batched so the default implementation is to return ETrue.
+	*/
+	virtual TBool BatchTransactions() const;
+
+	/*
+	When the client receives a transaction event, the error code can be checked to verify
+	what (if any) error code is expected. The transaction is supplied so that the test case
+	can identify the transaction by Id(). Most test cases will not expect an error code so
+	the default implementation is to simply return KErrNone.
+	*/
+	virtual TInt ExpectedError(RHTTPTransaction aTrans);
+
+	/*
+	This method should return the number of connections that is expected to open with the
+	test server in the test case. If the test server is not being used (ie. transactions are
+	going to 'real' servers) then this should return 0. For simplicity, the default
+	implementation is to return 0.
+	*/
+	virtual TInt ConnectionCount() const;
+	
+	/*
+	This method should return the number of expected connections opened with real servers. 
+	This information is stored by the protocol handler in debug mode only and checked.
+	
+	When using the test server this should return the same as ConnectionCount()
+	*/
+	TInt RealExpectedConnectionCount() const;
+
+	/*
+	This method will indicate whether to enable batching (request buffering). Most pipelining
+	test cases do not require batching to be enabled so the default implementation is to return
+	EFalse.
+	*/
+	virtual TBool EnableBatching() const;
+	
+	void ProcessHeadersL(RHTTPTransaction aTrans);
+	
+	virtual TBool TransportHandlerPriority() const;
+
+	
+protected:
+	CPipeliningTestCase();
+
+	};
+	
+#endif // __CPIPELININGTESTCASE_H__