diff -r 000000000000 -r b16258d2340f applayerprotocols/httptransportfw/Test/T_HttpIntegration/CCmdFamily.h --- /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* iCommands; + + // Switches. Must be long enough for all TSwitch values. + TBool iSwitch[EMaxSwitches]; + + // Step over us. + TBool iStepOver; + +}; + +//---------------------------------------------------------------------------- + +#endif // __CMDFAMILY_H__ + +//---------------------------------------------------------------------------- +// End of File +//----------------------------------------------------------------------------