applayerprotocols/httptransportfw/Test/T_HttpIntegration/CCmdFamily.h
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/Test/T_HttpIntegration/CCmdFamily.h	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,128 @@
+// 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$
+// GT0149 Applications Protocol Integration Test Harness
+// blank application
+// This module implements the CCmdFamily class: a generic collection of
+// registered CCmdBase class derived commands.
+// Include Files  
+// 
+//
+
+#ifndef __CMDFAMILY_H__
+#define __CMDFAMILY_H__
+
+//----------------------------------------------------------------------------
+//	Forward declarations
+
+class CTEngine;
+class CCmdBase;
+
+//----------------------------------------------------------------------------
+//  Definitions
+
+class CCmdFamily : public CBase
+{
+
+public:     // Data types
+
+	// Switches. Please, see the iSwitch.
+	enum TSwitch
+		{
+		EParseOnly,		// Parse only
+		ESwitch2,			// For future use
+		ESwitch3,
+		ESwitch4,
+		ESwitch5,
+		ESwitch6,
+		ESwitch7,
+		ESwitch8,
+		EMaxSwitches
+		};
+
+public:     // Constructors and destructors
+
+	// Constructors.
+	static CCmdFamily* NewL ( );
+	static CCmdFamily* NewLC( );
+
+	//  Destructor.
+	~CCmdFamily();
+
+private:
+
+	// Local Constructor.
+	void ConstructL( );
+
+protected:
+
+	// No default constructor.
+	CCmdFamily( ) {};
+
+public:     // New functions
+
+	// Set and Get Test Machine context.
+	void SetMachine(CTEngine *aTestMachine );
+	CTEngine * Machine( );
+
+	// Register a Command.
+	void RegisterL ( CCmdBase* aCommand );
+
+	// Get Count of Commands.
+	TInt Count( ) const;
+
+	// Get i'th Command. Warning: legal index is a must.
+	CCmdBase*  At( TInt aIndex ) const;
+	CCmdBase*  operator[]( TInt aIndex ) const;
+
+	// Get Command by command id (NULL if was not found).
+	CCmdBase* Command(TInt aCommandId);
+
+	// Get Command by command string (NULL if not found).
+	CCmdBase* Recognize(const TDesC& aCommand);
+
+	// Set a Get a switch.
+	TBool Switch(const TSwitch &);
+	void  SetSwitch(const TSwitch &aSwitch, TBool aBoolean = ETrue);
+
+	// Set and Get the StepOver flag.
+	void  SetStepOver(const TBool &aBoolean = ETrue);
+	TBool StepOver( );
+
+	//	List all the commands out
+	void ListAll(CConsoleBase *);
+
+private:    // Data
+
+	// Tester Context.
+	CTEngine *iMachine;
+
+	// Registered Commands.
+	CArrayPtrSeg<CCmdBase>* iCommands;
+
+	// Switches. Must be long enough for all TSwitch values.
+	TBool iSwitch[EMaxSwitches];
+
+	// Step over us.
+	TBool iStepOver;
+
+};
+
+//----------------------------------------------------------------------------
+
+#endif  // __CMDFAMILY_H__  
+
+//----------------------------------------------------------------------------
+// End of File
+//----------------------------------------------------------------------------